The Toolkit

Instruments of
close reading

Each tool in the Project Demetrios suite addresses a distinct dimension of Greek poetic craft, running entirely in the browser with no installation required.

I

Hiatus Detector

Identifies and categorizes every instance of three types of vowel hiatus across an uploaded Ancient Greek text file.

What it does

Hiatus is one of the most studied phenomena in Greek verse euphony. Ancient metricians distinguished between permissible hiatus and infelicitous sequences that poets typically avoided through elision, crasis, or rearrangement. Detecting and tabulating hiatus across a long poem or corpus is a laborious task by hand; this tool automates it.

The detector handles Unicode Greek text with full polytonic diacritics, correctly distinguishing true diphthongs from vowel sequences resolved into two syllables by diaeresis (ἀΐδηλος), and a variety of other edge cases and scenarios.

Detection modes

Word-internal (I) — Red highlight
Hiatus within a single word
Inter-word (B) — Green highlight
Hiatus across a word boundary
Across-verse (V) — Blue highlight
Hiatus from the end of one line to the start of the next

How to use it

  1. Upload a UTF-8 encoded .txt file of Greek text.
  2. Select the hiatus types to detect (standard, at verse-end, etc.).
  3. Click Run Detector.
  4. Download the annotated HTML output and/or the CSV occurrence table.
Technology
Python 3 via Pyodide
(fully browser-based)
Input
UTF-8 .txt or paste
Output
Annotated HTML
CSV occurrence table
Diphthong handling Diaeresis detection Interword hiatus Intraword hiatus Verse-end hiatus CSV export HTML export No installation
II
Experimental — New
Launch Tool →

Anaphora & Epiphora Detector

Detects and highlights rhetorical repetition (anaphora, epiphora, word repetition across clause boundaries, and anadiplosis) in Ancient Greek verse, with fully configurable phrase length, distance windows, and normalisation options.

What it does

Anaphora, the repetition of the same word or phrase at the beginning of successive verse lines, and epiphora (antistrophe), repetition at line-ends, are among the most powerful structural devices in Greek poetry, extensively discussed by ancient rhetorical theorists from Gorgias onward. This tool makes their systematic identification possible across extended texts.

A third mode, word repetition, detects phrase-initial repetition across clause boundaries delimited by punctuation (. · ; ,), capturing figures that recur across periods within and between lines.

A fourth mode, anadiplosis, detects the phrase ending one line repeated at the very beginning of the next. Because this figure is defined by strict line-to-line adjacency rather than proximity within a window, it does not use the distance-window setting; the phrase-length slider instead acts as a minimum, and the tool automatically extends the highlight to the full length of the repeated run, so a genuine three-word repetition is still found correctly even if the slider is set to one.

Stop-words (particles, articles, prepositions) are handled with philological care: they are "transparent" — skipped when determining the comparison phrase, but noted in the output table, so the scholar can see exactly what was elided from the matching logic. All normalisation steps (accent stripping, breathing removal, iota subscript, elision, nu-movable) are individually toggleable.

Detection modes

Anaphora — Gold highlight
Repetition at the start of consecutive verse lines
Epiphora — Teal highlight
Repetition at the end of consecutive verse lines
Word Repetition — Violet highlight
Clause-initial repetition across punctuation boundaries
Anadiplosis — Orange highlight
End of one line repeated at the start of the next (strict adjacency)
Technology
Python 3 via Pyodide
(fully browser-based)
Input
UTF-8 .txt or paste
Phrase length
1–5 words (user-set)
Distance window
2–10 lines (user-set)
Output
Annotated HTML
CSV occurrence table
Anaphora Epiphora Word repetition Anadiplosis Stop-word transparency Elision handling Nu-movable Configurable window CSV export HTML export
III

Assonance & Consonance Detector

Surfaces repeated vowel and consonant sounds across nearby words in Ancient Greek verse, with a strict word-initial alliteration mode and fully configurable window and threshold settings.

What it does

Assonance is the repetition of a vowel sound — a single vowel or a diphthong — anywhere within nearby words, not restricted to word-initial position. Consonance is the analogous phenomenon for consonant sounds. A sub-option restricts consonance to the strict classical definition of alliteration: only the word-initial consonant counts, and vowel-initial words simply do not participate.

Both figures are detected with the same sliding-window engine: the tool examines every run of N consecutive content words and flags a sound that recurs in at least a set minimum number of them. Diphthongs and single vowels are treated as one phonological unit, diaeresis correctly breaks a would-be diphthong in two, and an optional toggle can fold ω into ο and η into ε — the only two Greek vowel pairs with distinct short/long letterforms in the script.

Stop-words can be excluded entirely from consideration, so that common particles and articles neither trigger a match nor interrupt the span of content words being examined.

Detection modes

Assonance — Violet highlight
Repeated vowel sound, any position within the word
Consonance / Alliteration — Blue highlight
Repeated consonant sound, any position (or word-initial only, in strict alliteration mode)
Technology
Python 3 via Pyodide
(fully browser-based)
Input
UTF-8 .txt or paste
Window size
2–10 words (user-set)
Minimum occurrences
2–6 words (user-set)
Output
Annotated HTML
CSV occurrence table
Assonance Consonance Alliteration mode Vowel-quantity merging Stop-word exclusion Configurable window CSV export HTML export
IV
In Development

Further Rhetorical Figures

Future modules will address chiasmus, polyptoton, asyndeton, and other figures catalogued in the ancient rhetorical handbooks of Demetrios, Hermogenes, and Pseudo-Longinus.

Chiasmus Polyptoton Asyndeton Homoioteleuton In Development

Scholarship without
infrastructure

Every Project Demetrios tool runs entirely in the browser using Pyodide, a WebAssembly port of CPython. This means the full power of Python's unicodedata module is available for precise polytonic Greek handling, with no server, no API key, and no data ever leaving your machine.

Outputs are always download-ready: annotated HTML for publication or presentation, and CSV for statistical analysis in R, Python, or a spreadsheet.

1

Upload or Paste

Load any UTF-8 encoded Greek text — a single ode, a full epic, a papyrus fragment.

2

Configure

Set detection options: phrase length, distance window, normalisation, stop-word handling.

3

Analyse

Python runs locally in your browser via Pyodide. No data leaves your device.

4

Export

Download an annotated HTML file or a CSV occurrence table for further analysis.