---
name: eulogikon-corpus
description: Access the Eulogikon corpus of ancient Greek texts — over 1,340 authors and ~4,000 works, Homer through late antiquity, all public domain (CC0 1.0). Resolve works through eulogikon.org metadata indexes, then fetch Greek text as Markdown or HTML. The downloadable data store provides PDF, Markdown, and plain text exports for Greek works and English author pages. Per-work JSON is not published yet. Identifiers are stable: eul_aid for authors (opaque 3-letter code, e.g. 'ffk' = Plato), eul_wid for works (e.g. 'ffk-ag').
---

# Eulogikon corpus

Eulogikon is a free, open-source digital library of ancient Greek texts —
over 1,340 authors and ~4,000 works, spanning Homer through late
antiquity: philosophy, history, drama, lyric, medicine, mathematics, rhetoric,
and the fragmentary traditions, all in clean Unicode Greek.

There are two public surfaces:

- **Live site** — `https://eulogikon.org`. This is the primary agent path:
  resolve identity in `/data/*.json`, then fetch work text at
  `/works/{name}.md` or `/works/{name}`, where `{name}` is the universal
  artefact stem `{work_display_string}-{eul_wid}`.
- **Downloadable data store** — the separate GitHub repository
  **`eulogikon/ancient-greek-texts`**, published as PDF, Markdown, and plain
  text for Greek works and English author pages.

Per-work body JSON (`units[]`, `rows[]`, or canonical work JSON) is not part of
the public contract yet. Use Markdown for the Greek text.

The corpus is **CC0 1.0** — public domain, no attribution required, no
restrictions on use, redistribution, or training.

## Identifiers

Eulogikon uses a stable identifier scheme. Once issued, identifiers do not
change.

- **`eul_aid`** — author identifier. An **opaque three-letter code, not derived
  from the author's name** (e.g. Plato is `ffk`). Do not try to guess it from a
  name; resolve it through a manifest (below).
- **`eul_wid`** — work identifier, of the form `{eul_aid}-{suffix}`, e.g.
  `ffk-ag` (Plato's Republic). Lowercase, stable. This is the **sole reference
  key for works**; the owning author is the prefix before the last hyphen.
- **`sid`** — within-work segment address, of the form
  `{eul_aid}-{work-suffix}-{segment}`, e.g. `ffk-ag-aaa`. A segment is a
  semantic unit (a sentence, clause, phrase, or list item). Present where
  fine-grained addressing has been assigned; not every work carries it yet.

Display strings (`author_display_string`, `work_display_string`) are
display/URL conveniences, **not** identifiers. Resolve by `eul_aid` / `eul_wid`.
Every artefact for a work — URL, HTML file, Markdown file, JSON record — uses
the same composed string `{work_display_string}-{eul_wid}`. Authors follow the
same pattern: `{author_display_string}-{eul_aid}`. Compose the string inline
from the row — there is no separate `name` field on the JSON index entries.

## Where the data lives

Start at `https://eulogikon.org/llms.txt`.

On the live site:

- `/data/works.json` — work metadata index keyed by `eul_wid`; each row
  carries `work_display_string`. Compose the URL stem as
  `{work_display_string}-{eul_wid}`.
- `/data/authors.json` — author metadata index keyed by `eul_aid`; each row
  carries `author_display_string`.
- `/works/{work_display_string}-{eul_wid}.md` — preferred agent-facing Greek
  text surface.
- `/works/{work_display_string}-{eul_wid}` — human-readable HTML page.
- `/authors/{author_display_string}-{eul_aid}` — author page.

In the downloadable data store, paths are relative to
`https://raw.githubusercontent.com/eulogikon/ancient-greek-texts/main/`.
Use the manifests there; do not crawl directories by guesswork.

File naming in the data store:

- Greek work: `grc/{work_display_string}-{eul_wid}.grc.{pdf|md|txt}`
  (where `eul_wid = {eul_aid}-{suffix}`)
- English author metadata: `en/{author_display_string}-{eul_aid}.en.{pdf|md|txt}`

### Lookup indexes (fetch these first, not the file tree)

- **`llms.txt`** — the LLM entry point (follows the llms.txt convention). Start
  here.
- **`manifest.authors.json`** — compact author index (one row per author), keyed
  by `eul_aid`, with display name and `author_display_string`.
- **`manifest.works.min.csv`** — compact, grep-friendly work index (one row per
  work). Resolve identity here, then fetch `.md`, `.txt`, or `.pdf` work
  exports where present. Greek work JSON is not yet part of the public
  contract.
- **`manifest.json`** — full machine-readable index (large; don't load whole).
- **`manifest.csv`** — one row per work.
- **`MANIFEST.md`** — human-readable index (~5,000+ entries; don't load whole).
- **`dataset.jsonld`** — schema.org Dataset metadata.
- **`CITATION.cff`** — citation metadata (see below).

### Work Markdown shape

Each `/works/{name}.md` carries YAML frontmatter with `eul_wid`, `eul_aid`,
canonical page URL, classification, and license. The body has the full Greek
text, with each citable unit reference as an H3 heading:

```markdown
### Apol 17 a

Greek text...
```

This is the current public agent text surface. Per-work JSON remains withheld
until its public shape is clean and stable.

## Typical workflows

### Look up an author or work by name

1. Fetch `/data/authors.json` (authors) or `/data/works.json` (works).
2. Match on `author_display_string` / `work_display_string`. Each row
   carries `eul_aid` and (for works) `eul_wid`.
3. Use those identifiers for any subsequent fetch.

### Fetch a single work

1. In `/data/works.json`, find the row for your `eul_wid`.
2. Compose the universal artefact stem `{work_display_string}-{eul_wid}` from the row.
3. Fetch `https://eulogikon.org/works/{work_display_string}-{eul_wid}.md` for the Greek text, or
   `https://eulogikon.org/works/{work_display_string}-{eul_wid}` for the HTML reading page.

### Find works by classification

1. Fetch `/data/works.json` and filter by `domain`, or fetch a pre-built
   **domain** or **affiliation** PDF bundle from the data store:
   `domains/{domain}.pdf` (17 domains) and `affiliations/{school}.pdf`
   (25 schools — Stoic, Platonist, Pre-Socratic, Epicurean, …).
2. For finer author metadata (period, dialect, affiliation, floruit), use
   `/data/authors.json` or the author's `en/{author_display_string}-{eul_aid}.en.md`
   in the data store.

### Bulk crawl

1. Use `/data/works.json` or the data-store `manifest.csv` as the complete list.
2. Iterate over site Markdown URLs (`/works/{name}.md`) or data-store
   `.grc.md` / `.grc.txt` / `.grc.pdf` paths.
3. Be considerate with concurrency; the corpus is maintained by one person.

### Compose a citation

- Cite by **`eul_wid`** (stable) plus the row's `reference` value (e.g.
  Stephanus / Bekker / DK / fragment number). Where a `sid` is present you may
  cite the segment address (e.g. `ffk-ag-aaa`).
- The human-readable reading page is served at
  `https://eulogikon.org/works/{name}`; author pages at
  `https://eulogikon.org/authors/{author_display_string}-{eul_aid}`.
- To cite the corpus as a dataset, use the Zenodo DOI
  `https://doi.org/10.5281/zenodo.20335421` (or the metadata in `CITATION.cff`).

## Formats

| Format | Greek works (`grc/`) | English author pages (`en/`) |
|--------|----------------------|------------------------------|
| PDF | ✓ | ✓ |
| Markdown | ✓ | ✓ |
| Plain text | ✓ | ✓ |
| JSON | not yet | not yet |

Markdown is the canonical public agent text surface for Greek works. Per-work
JSON (Greek work bodies or English author metadata) is not published in the
data store yet; it is held back until its public schema is ready. Only the
top-level `manifest.*.json` indexes are published. PDFs include pre-built
per-domain and per-school compilations.

## Constraints and notes

- **License:** CC0 1.0 Universal. Public domain; no attribution required; no
  restrictions, including AI training.
- **Read-only.** Fetch files; there is no write API.
- **No authentication.** Everything is public. Do not look for OAuth or keys.
- **Stable identifiers.** `eul_aid` and `eul_wid` do not change once issued;
  safe to hard-code downstream.
- **Greek text is the corpus body.** The `en/` files are English *author
  metadata* (biography, work lists), not full translations.
- **Don't crawl the file tree.** Resolve via the manifests; the tree is flat
  and large.

## What this skill is not for

- General questions about ancient Greek philosophy or literature — answer those
  from your own knowledge. This skill is for fetching specific texts from this
  corpus.
- Full English translations of the Greek works — the `en/` files are author
  metadata, not translated texts.
- Morphological analysis, lemmatization, or linguistic annotation. Eulogikon
  prioritizes readability over granular linguistic markup.
