Group CLI examples by task

This commit is contained in:
welsberr 2026-03-20 11:43:43 -04:00
parent 6b028a5671
commit 425e153bee
1 changed files with 75 additions and 47 deletions

View File

@ -15,7 +15,11 @@ cd citegeist
export PYTHONPATH=src export PYTHONPATH=src
``` ```
## Global Option ## Setup
Purpose: point commands at the right database before doing anything else.
### Global Option
Use a non-default database path: Use a non-default database path:
@ -23,7 +27,11 @@ Use a non-default database path:
.venv/bin/python -m citegeist --db library.sqlite3 topics .venv/bin/python -m citegeist --db library.sqlite3 topics
``` ```
## Ingest ## Build And Inspect A Library
Purpose: ingest records, search them, inspect them, and export them.
### Ingest
Basic ingest: Basic ingest:
@ -49,7 +57,7 @@ Use both ingest options together:
.venv/bin/python -m citegeist --db library.sqlite3 ingest references.bib --status draft --source-label "manual-import:artificial-life" .venv/bin/python -m citegeist --db library.sqlite3 ingest references.bib --status draft --source-label "manual-import:artificial-life"
``` ```
## Search ### Search
Basic search: Basic search:
@ -69,7 +77,7 @@ Restrict search to one topic slice:
.venv/bin/python -m citegeist --db library.sqlite3 search "artificial life" --topic artificial-life .venv/bin/python -m citegeist --db library.sqlite3 search "artificial life" --topic artificial-life
``` ```
## Show ### Show
Show one entry: Show one entry:
@ -101,7 +109,7 @@ Use both:
.venv/bin/python -m citegeist --db library.sqlite3 show langton1989artificial1 --provenance --conflicts .venv/bin/python -m citegeist --db library.sqlite3 show langton1989artificial1 --provenance --conflicts
``` ```
## Export ### Export
Export the whole library: Export the whole library:
@ -121,7 +129,11 @@ Write BibTeX to a file:
.venv/bin/python -m citegeist --db library.sqlite3 export --output artificial-life.bib .venv/bin/python -m citegeist --db library.sqlite3 export --output artificial-life.bib
``` ```
## Entry Review ## Review And Clean Metadata
Purpose: inspect merge conflicts, apply corrections, and enrich incomplete records.
### Entry Review
Set review status: Set review status:
@ -147,7 +159,7 @@ Apply the latest proposed conflict value:
.venv/bin/python -m citegeist --db library.sqlite3 apply-conflict langton1989artificial1 title .venv/bin/python -m citegeist --db library.sqlite3 apply-conflict langton1989artificial1 title
``` ```
## Extract ### Extract
Extract draft BibTeX from plaintext: Extract draft BibTeX from plaintext:
@ -161,7 +173,7 @@ Write extracted BibTeX to a file:
.venv/bin/python -m citegeist extract references.txt --output extracted-artificial-life.bib .venv/bin/python -m citegeist extract references.txt --output extracted-artificial-life.bib
``` ```
## Resolve ### Resolve
Resolve one or more entries against remote metadata: Resolve one or more entries against remote metadata:
@ -169,7 +181,11 @@ Resolve one or more entries against remote metadata:
.venv/bin/python -m citegeist --db library.sqlite3 resolve langton1989artificial1 bedau2003artificial2 .venv/bin/python -m citegeist --db library.sqlite3 resolve langton1989artificial1 bedau2003artificial2
``` ```
## Graph Traversal ## Explore Citation Graphs
Purpose: traverse citation edges, export graph data, and render quick visualizations.
### Graph Traversal
Basic traversal: Basic traversal:
@ -219,7 +235,7 @@ Write graph output to a file:
.venv/bin/python -m citegeist --db library.sqlite3 graph langton1989artificial1 --depth 2 --format dot --output artificial-life.dot .venv/bin/python -m citegeist --db library.sqlite3 graph langton1989artificial1 --depth 2 --format dot --output artificial-life.dot
``` ```
## Graph Viewer ### Graph Viewer
Render a standalone HTML page from a `json-graph` export: Render a standalone HTML page from a `json-graph` export:
@ -233,7 +249,7 @@ Set the HTML page title:
.venv/bin/python -m citegeist graph-view artificial-life.json --output artificial-life.html --title "Artificial Life Graph" .venv/bin/python -m citegeist graph-view artificial-life.json --output artificial-life.html --title "Artificial Life Graph"
``` ```
## Graph Expansion ### Graph Expansion
Expand from one or more seed entries: Expand from one or more seed entries:
@ -259,7 +275,11 @@ Limit discoveries per seed:
.venv/bin/python -m citegeist --db library.sqlite3 expand langton1989artificial1 --source openalex --limit 10 .venv/bin/python -m citegeist --db library.sqlite3 expand langton1989artificial1 --source openalex --limit 10
``` ```
## Topic Expansion ## Build A Topic-Centered Bibliography
Purpose: create, expand, inspect, and export a topic slice such as `artificial life`.
### Topic Expansion
Basic topic expansion from stored topic metadata: Basic topic expansion from stored topic metadata:
@ -303,7 +323,7 @@ Preview without writing:
.venv/bin/python -m citegeist --db library.sqlite3 expand-topic artificial-life --preview .venv/bin/python -m citegeist --db library.sqlite3 expand-topic artificial-life --preview
``` ```
## Topic Phrase Storage ### Topic Phrase Storage
Set a stored topic phrase: Set a stored topic phrase:
@ -317,45 +337,51 @@ Clear a stored topic phrase:
.venv/bin/python -m citegeist --db library.sqlite3 set-topic-phrase artificial-life --clear .venv/bin/python -m citegeist --db library.sqlite3 set-topic-phrase artificial-life --clear
``` ```
## OAI-PMH Harvesting ### Topic Inspection
Inspect a repository: List topics:
```bash ```bash
.venv/bin/python -m citegeist discover-oai https://example.edu/oai .venv/bin/python -m citegeist --db library.sqlite3 topics
``` ```
Harvest with default metadata prefix: Limit topic rows:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai .venv/bin/python -m citegeist --db library.sqlite3 topics --limit 20
``` ```
Use an alternate metadata prefix: Filter topics by phrase review status:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --metadata-prefix mods .venv/bin/python -m citegeist --db library.sqlite3 topics --phrase-review-status pending
``` ```
Restrict to a set: List entries for a topic:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --set artificial-life .venv/bin/python -m citegeist --db library.sqlite3 topic-entries artificial-life
``` ```
Harvest a date range: Limit topic entries:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --from 2024-01-01 --until 2024-12-31 .venv/bin/python -m citegeist --db library.sqlite3 topic-entries artificial-life --limit 25
``` ```
Limit harvested records and set review status: Export one topic slice as BibTeX:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --limit 10 --status draft .venv/bin/python -m citegeist --db library.sqlite3 export-topic artificial-life
``` ```
## Bootstrap Write the topic slice to a file:
```bash
.venv/bin/python -m citegeist --db library.sqlite3 export-topic artificial-life --output artificial-life-topic.bib
```
### Bootstrap
Seed from a BibTeX file: Seed from a BibTeX file:
@ -416,7 +442,7 @@ Set review status for imported entries:
.venv/bin/python -m citegeist --db library.sqlite3 bootstrap --topic "artificial life" --status reviewed .venv/bin/python -m citegeist --db library.sqlite3 bootstrap --topic "artificial life" --status reviewed
``` ```
## Batch Bootstrap ### Batch Bootstrap
Run a JSON batch file: Run a JSON batch file:
@ -424,7 +450,7 @@ Run a JSON batch file:
.venv/bin/python -m citegeist --db library.sqlite3 bootstrap-batch artificial-life.json .venv/bin/python -m citegeist --db library.sqlite3 bootstrap-batch artificial-life.json
``` ```
## Topic Phrase Review Workflow ### Topic Phrase Review Workflow
Apply topic phrases directly: Apply topic phrases directly:
@ -498,51 +524,53 @@ Write the review template to a file:
.venv/bin/python -m citegeist --db library.sqlite3 export-topic-phrase-reviews --output topic-phrase-review.json .venv/bin/python -m citegeist --db library.sqlite3 export-topic-phrase-reviews --output topic-phrase-review.json
``` ```
## Topic Inspection ## Harvest External Repositories
List topics: Purpose: inspect and harvest OAI-PMH repositories into the library.
### OAI-PMH Harvesting
Inspect a repository:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 topics .venv/bin/python -m citegeist discover-oai https://example.edu/oai
``` ```
Limit topic rows: Harvest with default metadata prefix:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 topics --limit 20 .venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai
``` ```
Filter topics by phrase review status: Use an alternate metadata prefix:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 topics --phrase-review-status pending .venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --metadata-prefix mods
``` ```
List entries for a topic: Restrict to a set:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 topic-entries artificial-life .venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --set artificial-life
``` ```
Limit topic entries: Harvest a date range:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 topic-entries artificial-life --limit 25 .venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --from 2024-01-01 --until 2024-12-31
``` ```
Export one topic slice as BibTeX: Limit harvested records and set review status:
```bash ```bash
.venv/bin/python -m citegeist --db library.sqlite3 export-topic artificial-life .venv/bin/python -m citegeist --db library.sqlite3 harvest-oai https://example.edu/oai --limit 10 --status draft
``` ```
Write the topic slice to a file: ## Work Through Example Corpora
```bash Purpose: run the repos example workflows without treating them as the core product surface.
.venv/bin/python -m citegeist --db library.sqlite3 export-topic artificial-life --output artificial-life-topic.bib
```
## TalkOrigins Example Commands ### TalkOrigins Example Commands
Scrape the example corpus: Scrape the example corpus: