ት Tergwame Greek · Coptic · Ethiopic · Syriac · Armenian · Georgian · Latin

Method

Generated 2026-11-14. Counts: 8,509 works · 572 dossiers · 1,756 works with machine-readable text · 14,869 manuscript/print records.

The name is Tergwame (ትርጓሜ), Geʿez for “translation” — the Ethiopian Christian word for rendering scripture and doctrine into another tongue, cognate with targum. The project does that in the other direction too: it records what survives, what English already exists, and what this pipeline has drafted.

1 · Scope

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.

2 · What each status means

StatusHow it is assignedWhat 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.

Source-by-source grading

TraditionWorksTranslated PartialNo translationUnknown Dossiers
Greek31382319830146
Coptic2511930253398
Ethiopic7,0982418932775,687100
Syriac6324006280
Armenian16001600
Georgian1850018500
Latin1411012228

Greek status comes from the CTS translation inventory (First1KGreek + Perseus); Coptic status from each Coptic Scriptorium document's translation field; Ethiopic status from Beta Masaheft's translation bibliography and the PEMM English text table. Curated dossiers override the catalogue where they are more specific.

3 · The dossier

Every candidate is a record with nine fields, each traceable:

  1. Identification — author, original title, English descriptive title, date, genre, and the Clavis number or catalogue id where one was verified.
  2. Translation evidence — the exact series, catalogue queries and negative results behind the status.
  3. Existing translations — English volumes, with translator and year; non-English versions are named in the evidence but never counted as English.
  4. Electronic text — at least one verified open TEI/HTML source where one exists, with its licence; otherwise an explicit statement that the text is print- or subscription-only.
  5. Harvard Hollis — the Primo query, hit count, first records and a Chicago-style citation.
  6. Sources checked — every URL used.
  7. Notes — caveats, competing editions, and why the work is a gap.
No invented identifiers. A Clavis/CPG/BHO number is recorded only when a source in the dossier states it. Where the public Clavis databases were login-gated (Brepols Clavis Clavium, CMCL's Clavis Patrum Copticorum), the field is left empty rather than guessed. Beta Masaheft LIT ids and PEMM ids are used as the Ethiopic keys because those catalogues publish them openly.

4 · The ingestion pipeline

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.

StageAdapterWhat it doesState
Greek textingest_first1k.pyWalks the First1KGreek CTS tree, keeps Christian groups, writes edition text and a catalogue row per witness.Working
Greek translationsingest_perseus.pySame CTS machinery for canonical-greekLit; keeps English witnesses separately.Working
Copticingest_coptic.pyGroups Coptic Scriptorium documents into works, takes CoNLL-U text, gates every document on its licence.Working
Coptic Bibleingest_coptot.pyOne documented bulk pull of the CoptOT Sahidic edition (TEI, 37,500 verse units).Working
Ethiopic catalogueingest_betmas.pyParses 6,594 Beta Masaheft work records; separates the 372 with edition text from the catalogue-only remainder.Working
Marian corpusingest_pemm.pyLoads the PEMM Zenodo dataset (1,055 stories, 52,049 attestations) and its English-text table.Working
Manuscriptsingest_hmml.pyStreams HMML's nightly bulk JSON: EMML, EMIP, IES, EMDA records; metadata only, never images.Working
Printed editionsingest_ia_geez.pyInternet Archive Geʿez prints: metadata and page counts; OCR is unusable and is not used.Working
Hollisenrich_hollis.pyOne Primo query per dossier, rate-limited and cached, with Chicago citations.Working
Segmentsegment.pySplits a work into passages at sentence/paragraph boundaries, preserving the source address and editorial brackets.Working
Translatetranslate.pyPassage-by-passage DeepSeek V4 Flash via OpenRouter's :floor route; records provider, tokens and actual cost.Working — Coptic first
Commentarycommentary.pyPer-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
Notesderived_notes.pyNo 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
QAqa.pyBlocks empty/short output, source leakage, truncation, repetition, length-ratio failures, bad commentary and raw URLs.Working
Publishpublish_site.pyWrites the work record and index under web/data/christian/translations; labels every record machine-draft.Working
Queuequeue_translate.pyResumable 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.

Runbook

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

Model and cost review

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.

5 · The scan lane

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 statusMeaningWorks
open scanDownloadable page images or PDF under a public-domain or open licence.65
restricted scanImages exist but the holding library asserts rights (Vatican, HMML, BnF, Beta Masaheft NC-ND). Link and metadata only.21
no scan locatedNothing found in the sources checked; named in the dossier, not guessed.35

What the OCR tests showed

MaterialBest routeResult
Greek printed (Migne)Crop the Greek column, 300 dpi, tesseract -l grcReadable polytonic Greek; systematic κ→χ confusion. IA's own _djvu.txt is usually Latin-model OCR with zero Greek codepoints — unusable.
Greek manuscriptHTR (not Tesseract)Poor: script-shaped noise, not words. Triage only.
Coptic printedOCR4All/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 manuscriptHTRNo working open model; images only.
Geʿez printedtesseract -l amhMixed: real script, frequent word corruption; usable only with correction.
Geʿez manuscriptHTR (32 Transkribus records exist in Beta Masaheft)Poor; high script ratio is noise. Images and TEI description only.

Quality is scored by function-word and lexicon match, not script ratio: a Latin page OCR'd as Greek can score a Greek ratio of 1.0 while containing no Greek. OCR is not run in bulk; the adapters download one sample page, measure it, and leave the full run to a reviewed job.

6 · Licences and what is withheld

SourceLicence as statedWhat the pipeline does
First1KGreek / PerseusCC BY-SA 4.0Text written, attribution and licence recorded.
Coptic ScriptoriumMixed: 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 TestamentCC BY-SA 4.0 (per TEI)One documented pull; source file and hash recorded.
Beta MasaheftFile says CC BY-SA 4.0; site footer says NC-SAThe stricter reading is recorded; a flag can withhold all text if the site's NC claim governs.
PEMMDataset CC BY 4.0; website translations not open-licensed for print reuseZenodo dataset only; the site's API is not crawled.
HMMLMetadata CC BY 4.0; images partner-rightsMetadata only; images never downloaded.
Internet Archive GeʿezPer item: public domain, CC, or unstatedMetadata only; OCR unusable, so no text is claimed.
IA Migne / CSCO scansMigne PD by date (items often unasserted); CSCO bulk mixed and partly in copyrightPage 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 onlyManifest and links recorded as restricted; no images downloaded.
Beta Masaheft imagesEMIP / Ethio-SPaRe CC BY-NC-ND 4.0IIIF links and folio references only; the ND term blocks publishing a re-OCR'd text.
Library of Congress (Sinai / Jerusalem)Public domainThe clean bulk image source; catalogued for a future ingest.
BnF / GallicaPublic domain scans, non-commercial reuse; API blocked from this hostCatalogue records only; images require a different egress.

7 · Known limits and traps

8 · Reproduce

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.

Code: /srv/christian-pipeline/pipeline/ · /var/www/naxi/scripts/christian/build_registry.py · /var/www/naxi/api/routes/christian.py. The Tibetan project's pipeline page is the model.