Didaskalos

A personalized Ancient Greek textbook, built from the texts you choose.

Didaskalos (διδάσκαλος, teacher) is an open-source pipeline that reads an annotated Greek corpus and writes a textbook for it. Grammar topics are ordered by what your texts actually use rather than by a fixed curriculum, and the exercises are authentic sentences from that corpus, each carrying its citation.

A note on speed: Didaskalos does a lot of work on your texts before it generates anything — parsing every treebank, extracting grammatical features, and ranking them by frequency. So the app can feel a little slow at times. Please be patient with it; a good textbook takes a moment!
85 works built in
25 authors and collections
157 lesson modules per language
2 languages available

Why this project

A framework for teaching Greek, extensible to any language

Ancient Greek pedagogy is concentrated in English and a few European languages, and for speakers of most other languages the resources are very limited or nonexistent. Learning Greek therefore means going through a second foreign language first, or translating a textbook that was written for a different audience, which can turn the translation process into a rewrite, or complicate the learning experience. Didaskalos is built the other way round: the sequencing lives in code and the teaching language is a data file, while the pedagogy lives in modules written from the start to be translated. Adding a language needs one locale file and a translated set of modules, with no change to the pipeline — though the translation itself is not mechanical, since for a language with no Greek-teaching tradition the grammatical terminology has to be coined rather than translated. It is now available in English and Persian, but nothing in the design is specific to either.

The teaching language is a data file

Everything language-specific sits in two places — the lesson modules and one locale file. Translate those and Didaskalos teaches Greek in that language: interface, lessons, grammatical terminology, and the exported book together. The pipeline itself does not change.

Made for languages with no Greek grammar

Didaskalos is worth most exactly where pedagogical resources for learning Greek are lacking or limited. Persian comes first because it is the language I work in and care about most, but it is one case of a shared problem that involves many other low-resource languages.

More than a translated textbook

Even in English, this is not the conventional method. There is no fixed curriculum and no simplified sentences: the syllabus is ordered by what your chosen texts actually use, and every exercise is a real sentence carrying its citation.

How it works

From treebank to textbook

Four stages run server-side each time you press build. Nothing is pre-baked: change the corpus and you get a different book.

  1. Parse

    Annotated treebanks are read by pluggable per-format adapters — Perseus/AGDT XML and CoNLL-U (Universal Dependencies, PROIEL) — which normalize every token's morphology into one shared tag. Adding a new corpus is a folder plus one manifest entry, not a code change.

  2. Rank

    Every token is counted by the grammatical feature it exhibits, which turns the corpus into a ranked list of topics: which case, which declension class, which tense-mood-voice combination this author actually leans on.

  3. Order

    Frequency alone would open a course on an irregular form, so the ranking is constrained: a fixed opening orients the beginner first, bound sequences keep dependent topics adjacent, and frequency arranges everything after that.

  4. Assemble

    Each ranked topic pulls in its lesson module, its paradigm, and its exercises drawn from the corpus, and the book is exported as Markdown, HTML, or CSV — with a colophon naming every source corpus, its license, and its URL.

Homer, Iliad, all 24 books → 128,102 analyzed tokens · 132 ranked grammar topics.

When frequency and pedagogy disagree

A purely statistical syllabus is a poor teacher. Three cases where Didaskalos deliberately overrules the frequency count:

The most common form in a corpus can be an irregular or an advanced one.

The first lessons are fixed: the alphabet and an orientation to nouns, adjectives, and verbs map the system before frequency takes over, so a beginner is oriented rather than overwhelmed.

Teaching an exception before the rule exists can be very confusing.

Prerequisites are declared by kind: an irregular verb, noun, or adjective class waits for a regular one to be irregular against, and an adjective class waits for a noun class to agree with.

Some topics only make sense together — the middle voice raises a question that deponent verbs have to answer.

Bound sequences keep them adjacent, and syncretic or repetitive labels are merged into one lesson: the vocative is taught inside the nominative rather than given a module that would repeat it.

In the App

Three choices — a corpus, a lesson count, a textbook type — and the build returns a downloadable book.

Bring your own corpus

Pick from 85 works by 25 authors and collections — whole works, or the portions of them the treebanks annotate — across four treebank corpora: Perseus, Gorman, Harrington, and the PROIEL New Testament. Or paste treebank URLs and upload your own XML. Each source is listed in the app with its author and license.

Two textbook types

A case-based textbook explains nouns and adjectives case by case; a declension-based one first classifies every noun and adjective into declension classes and orders the lessons by how frequent each class is in your corpus.

Exercises, ranked

Exercises are unaltered corpus sentences, scored by word rarity and sentence length and preferring sentences whose vocabulary earlier lessons have already introduced — so lexical difficulty climbs gradually. Syntactic difficulty is not scored, so the real curve is lumpy rather than gentle.

Localization

Built to be translated

Didaskalos was bilingual from the start, and being translatable is a design goal rather than an afterthought. Localization in a new language needs a single locale file and a translated set of modules — the pipeline does not change, though coining a grammatical terminology where none exists is real work.

Consistent terminology

A curated English–Persian table of grammatical terms keeps the vocabulary stable across 157 lesson modules, so the same category is never named two ways.

One rule makes it translatable

No lesson explains Greek by comparison with the learner's first language. That single constraint is what lets a module be translated into another language rather than rewritten for each new audience.

The book, not just the buttons

Translating the interface only would not solve the accessibility issue; localizing Didaskalos means the exported textbook is generated in the chosen language throughout — lesson text, exercise instructions, answer keys, and the colophon.

Want Didaskalos in your language?

Translate the lesson modules and one locale file, and you have a Didaskalos that teaches Greek in your language — the pipeline itself doesn't change. If you'd like to add a language, I'd be glad to help: get in touch.

Where this started

Who gets to read the sources directly?

Didaskalos began as an answer to one language's version of that problem. For readers in Iran, Ancient Greek texts are primary sources for their own past: much of the surviving continuous narrative of ancient Persia reaches us only in Greek. Yet no Iranian institution offers a regular Ancient Greek course, and there is no functional grammar, reader, or textbook written for Persian speakers.

So those texts are read at second hand, and every mediating edition adds its own interpretive layer. That is a problem that a tool like Didaskalos is trying to solve, by helping a larger audience read the sources directly.

About the Lessons

The grammar modules began as first drafts from a Retrieval-Augmented Generation pipeline over standard reference grammars, including Smyth's Greek Grammar and Crosby & Schaeffer, prepared by Gregory Crane. That pipeline has since been retired: the modules are being hand-corrected, and the review is ongoing rather than finished.

The drafting models were open-weight ones served by Groq — chiefly OpenAI's gpt-oss-20b, with the larger gpt-oss-120b and two Llama models tried alongside it. These are OpenAI's open-weight releases running on Groq's hardware, not the proprietary GPT models. Everything after drafting is a separate story: Claude models later edited the English, translated the modules into Persian, edited both against a curated English–Persian terminology table, and fact-checked them. The pipeline itself, with its notebook and prompts, is preserved in the repository's archive for anyone who wants to see exactly what produced the first drafts.

The generation pipeline's data flow is agnostic to the teaching language, though its explanatory framework need not be: a set of modules can be localised in whatever way helps its own learners most, explaining Greek in terms that are specific to that language rather than translating the English word for word.

Known Limitations

Other than reviewing the lesson modules, the core infrastructure is also being modified and improved. These are some of the issues I am working through:

Didaskalos is released under CC BY-NC-SA 4.0. That covers the original work — the pipeline, the lesson modules, the syllabus method, and the translations. The Greek source texts remain under the licenses granted by their own authors, which every generated textbook reproduces in its colophon.