Greek Christian literature from the first century to the fall of Constantinople (1453); Coptic literature from the third to the fourteenth century, including Copto-Arabic; Ethiopic (Geʿez) literature from late antiquity to the eighteenth century. The register counts works, not editions, manuscripts or translations. A work translated twice is one row; a work surviving in five manuscripts is one row, with the witnesses on the Holdings page.
| Status | How it is assigned | What it does not mean |
|---|---|---|
| translated | A complete English translation is recorded in the source catalogue or the translation series checked. | That the translation is modern, critical, or based on the best edition. |
| partial / older only | Some English exists — selected homilies, a pre-critical volume — but the work as a whole is not covered. An English rendering of a daughter version is not counted here; it belongs to the dossier of the text it translates, and this work stays under “no English translation located” with the relation printed on the translation row. | That the existing translation is usable for scholarship. |
| no English translation located | No complete published English translation was found in the explicit checks named in the dossier. A rendering into French, German, Italian or Latin does not close the gap; where one exists it is listed in the dossier's “Existing translations recorded” table, with the language and its relation to this text (daughter version, other recension, excerpts). | Proof that no translation exists. Journal articles and small-press renderings can be missed; each dossier says what was searched. |
| status unknown | The source catalogue has no translation field (or the record is a catalogue stub with no running text). | A gap. Unknown is a data limitation, not a finding. |
| Tradition | Works | Translated | Partial | No translation | Unknown | Dossiers |
|---|---|---|---|---|---|---|
| Greek | 313 | 82 | 3 | 198 | 30 | 146 |
| Coptic | 251 | 193 | 0 | 25 | 33 | 98 |
| Ethiopic | 7,098 | 241 | 893 | 277 | 5,687 | 100 |
| Syriac | 632 | 4 | 0 | 0 | 628 | 0 |
| Armenian | 16 | 0 | 0 | 16 | 0 | 0 |
| Georgian | 185 | 0 | 0 | 185 | 0 | 0 |
| Latin | 14 | 11 | 0 | 1 | 2 | 228 |
Every candidate is a record with nine fields, each traceable:
The pipeline is deliberately separate from the website: /srv/christian-pipeline
for code and normalized works, /srv/christian-corpus for the upstream
mirrors and catalogue. The ingestion stage stops at a clean source text; a second
stage now segments, translates with DeepSeek V4 Flash
(deepseek/deepseek-v4-flash:floor), writes commentary, runs QA and
publishes. The full programme is in docs/CHRISTIAN-TRANSLATION-PLAN.md.
| Stage | Adapter | What it does | State |
|---|---|---|---|
| Greek text | ingest_first1k.py | Walks the First1KGreek CTS tree, keeps Christian groups, writes edition text and a catalogue row per witness. | Working |
| Greek translations | ingest_perseus.py | Same CTS machinery for canonical-greekLit; keeps English witnesses separately. | Working |
| Coptic | ingest_coptic.py | Groups Coptic Scriptorium documents into works, takes CoNLL-U text, gates every document on its licence. | Working |
| Coptic Bible | ingest_coptot.py | One documented bulk pull of the CoptOT Sahidic edition (TEI, 37,500 verse units). | Working |
| Ethiopic catalogue | ingest_betmas.py | Parses 6,594 Beta Masaheft work records; separates the 372 with edition text from the catalogue-only remainder. | Working |
| Marian corpus | ingest_pemm.py | Loads the PEMM Zenodo dataset (1,055 stories, 52,049 attestations) and its English-text table. | Working |
| Manuscripts | ingest_hmml.py | Streams HMML's nightly bulk JSON: EMML, EMIP, IES, EMDA records; metadata only, never images. | Working |
| Printed editions | ingest_ia_geez.py | Internet Archive Geʿez prints: metadata and page counts; OCR is unusable and is not used. | Working |
| Hollis | enrich_hollis.py | One Primo query per dossier, rate-limited and cached, with Chicago citations. | Working |
| Segment | segment.py | Splits a work into passages at sentence/paragraph boundaries, preserving the source address and editorial brackets. | Working |
| Translate | translate.py | Passage-by-passage DeepSeek V4 Flash via OpenRouter's :floor route; records provider, tokens and actual cost. | Working — Coptic first |
| Commentary | commentary.py | Per-passage and work-level units, each declaring a kind (sense, term, scripture, background, parallel, structure, chronology, transmission, reception, caution) and a basis. Cites keys, never URLs; cite_guard.py resolves and verifies links. Each passage also reports its open questions and a confidence. | Working |
| Notes | derived_notes.py | No model calls: structure classification, lacunae, glossary decisions at first occurrence, scriptural phrase matches from a curated table, and the QA findings that fired. Also builds the term index. | Working |
| QA | qa.py | Blocks empty/short output, source leakage, truncation, repetition, length-ratio failures, bad commentary and raw URLs. | Working |
| Publish | publish_site.py | Writes the work record and index under web/data/christian/translations; labels every record machine-draft. | Working |
| Queue | queue_translate.py | Resumable Coptic-first queue with budget caps, pidfile, stop file and JSONL ledger. | Running |
The apparatus on each passage is two layers, and they answer different questions. Commentary units are model-written and say what the passage says; each one names the kind of work it is doing, so a reader can tell a lexical decision from a scriptural echo, a piece of background from a judgement about transmission. Notes are derived from the record with no model call: what the passage is structurally doing, where the source is fragmentary, which glossary term now carries a fixed rendering, which check fired. A passage whose units all came back as one kind is treated as a failed call and regenerated, because a single undifferentiated note is exactly what this apparatus exists to avoid.
cd /srv/christian-pipeline python3 pipeline/ingest_first1k.py python3 pipeline/ingest_perseus.py python3 pipeline/ingest_coptic.py python3 pipeline/ingest_coptot.py python3 pipeline/ingest_betmas.py python3 pipeline/ingest_pemm.py python3 pipeline/ingest_hmml.py python3 pipeline/ingest_ia_geez.py python3 pipeline/enrich_hollis.py # translation (Coptic first) python3 pipeline/inventory.py --tradition coptic --exclude-coptot python3 pipeline/segment.py --all python3 pipeline/queue_translate.py --tradition coptic --exclude-coptot \ --workers 3 --budget 5 --daily-cap 5 # rebuild the site data cd /var/www/naxi python3 scripts/christian/build_registry.py
The models page measures low-cost OpenRouter options and the local Gemma 4 deployment on 65 aligned segments from this corpus. DeepSeek V4.1 Flash and V4 Flash lead at chrF 61.0; GLM 5.3 Flash is the value option at 55.4 for about a third of the cost; Gemma 4 31B scores 48.9. Translating all 606 transcribed non-full works (161 MB) costs roughly $11–31 at list prices, or ~$18 of electricity locally. Review, not inference, is the real expense.
Where no transcript exists, the question is whether the work has been photographed and whether that scan can become text. The scan register records 121 works: 65 with an open scan, 21 restricted to viewing, and 35 with no scan located after the named checks. Across them, 178 candidates were verified.
| Scan status | Meaning | Works |
|---|---|---|
| open scan | Downloadable page images or PDF under a public-domain or open licence. | 65 |
| restricted scan | Images exist but the holding library asserts rights (Vatican, HMML, BnF, Beta Masaheft NC-ND). Link and metadata only. | 21 |
| no scan located | Nothing found in the sources checked; named in the dossier, not guessed. | 35 |
| Material | Best route | Result |
|---|---|---|
| Greek printed (Migne) | Crop the Greek column, 300 dpi, tesseract -l grc | Readable polytonic Greek; systematic κ→χ confusion. IA's own _djvu.txt is usually Latin-model OCR with zero Greek codepoints — unusable. |
| Greek manuscript | HTR (not Tesseract) | Poor: script-shaped noise, not words. Triage only. |
| Coptic printed | OCR4All/Calamari models (Coptic Scriptorium, GPL-3.0, CC BY 4.0 text) | Good: 0.89 Coptic ratio, 0.7–0.95 lexicon on Bohairic print. Tesseract has no Coptic pack. |
| Coptic manuscript | HTR | No working open model; images only. |
| Geʿez printed | tesseract -l amh | Mixed: real script, frequent word corruption; usable only with correction. |
| Geʿez manuscript | HTR (32 Transkribus records exist in Beta Masaheft) | Poor; high script ratio is noise. Images and TEI description only. |
| Source | Licence as stated | What the pipeline does |
|---|---|---|
| First1KGreek / Perseus | CC BY-SA 4.0 | Text written, attribution and licence recorded. |
| Coptic Scriptorium | Mixed: CC BY / CC BY-SA, plus NC and J. Warren Wells “academic use only” | Every document gated; NC and academic-only records enter the catalogue with no text. |
| Coptic Old Testament | CC BY-SA 4.0 (per TEI) | One documented pull; source file and hash recorded. |
| Beta Masaheft | File says CC BY-SA 4.0; site footer says NC-SA | The stricter reading is recorded; a flag can withhold all text if the site's NC claim governs. |
| PEMM | Dataset CC BY 4.0; website translations not open-licensed for print reuse | Zenodo dataset only; the site's API is not crawled. |
| HMML | Metadata CC BY 4.0; images partner-rights | Metadata only; images never downloaded. |
| Internet Archive Geʿez | Per item: public domain, CC, or unstated | Metadata only; OCR unusable, so no text is claimed. |
| IA Migne / CSCO scans | Migne PD by date (items often unasserted); CSCO bulk mixed and partly in copyright | Page images are candidates; text layers are not trusted. CSCO Coptic/Ethiopic text is never treated as public. |
| DigiVatLib | “Images Copyright Biblioteca Apostolica Vaticana”; study use only | Manifest and links recorded as restricted; no images downloaded. |
| Beta Masaheft images | EMIP / Ethio-SPaRe CC BY-NC-ND 4.0 | IIIF links and folio references only; the ND term blocks publishing a re-OCR'd text. |
| Library of Congress (Sinai / Jerusalem) | Public domain | The clean bulk image source; catalogued for a future ingest. |
| BnF / Gallica | Public domain scans, non-commercial reuse; API blocked from this host | Catalogue records only; images require a different egress. |
has_text field is the honest
signal.All inputs are public and unauthenticated. The mirrors are shallow git clones;
the PEMM and HMML downloads are checksummed by the adapters; the Hollis cache is
under ~/.cache/christian-pipeline/hollis. The site data is generated by
one script and is deterministic apart from the timestamp.