---
name: eulogikon-corpus
description: Access the EuLogikon corpus of ancient Greek texts: 1,341 authors and 3,998 works, all public domain (Public Domain Mark 1.0). Use this skill to look up an author or work by canonical identifier, fetch a single work as JSON, or plan a bulk crawl of the full corpus. Covers Homer through late antiquity.
---

# EuLogikon corpus

EuLogikon is a free, open-source digital library of ancient Greek texts. The
corpus contains 1,341 authors and 3,998 distinct works (4,007 work-files in
the manifest — some works exist as multiple orthographic variants from dual
ingestion), spanning Homer through late antiquity. Eulogikon publishes
public-domain Greek texts in cleaned, structured, readable form and makes no
copyright claim over that preparation (Public Domain Mark 1.0). No attribution
required, no restrictions on use, including training.

This skill tells you what data is available and how to fetch it. The data
itself lives at `https://eulogikon.org/data/`, not in this skill.

## Identifiers

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

- **`eul_aid`** — author identifier. Lowercase string slug, e.g. `plato`,
  `hom`, `bkv`. Definitive.
- **`eul_wid`** — work identifier of the form `{eul_aid}-{suffix}`, e.g.
  `plato-aa`, `hom-ai`. Lowercase, stable. This is the sole reference key for
  works.
- **`sid`** — within-work point address. Three-segment TLA fragment, e.g.
  `bww-br-aaa`. **Currently deployed for the Hippocrates corpus only;
  corpus-wide rollout is in progress.**
- **`rid`** — within-work inclusive range. Four-segment TLA fragment, e.g.
  `bww-br-aaa-aad`. Same deployment scope as `sid`.

Page URLs follow the grammar:
`https://{chrome}.eulogikon.org/{body-lang}/{author_slug}/{work_slug}`

Where TLA is deployed (currently Hippocrates only), a work-relative RID
fragment may be appended: `[#{rid}]`.

The current production chrome surface is the English chrome at the apex
(`https://eulogikon.org`). The body language path segment is `/grc/` for the
ancient-Greek text or `/en/` for English-chrome surfaces (e.g. author landing
pages).

## What's available

All paths below are relative to `https://eulogikon.org`.

### Indexes (small, fetch first)

- **`/data/index.json`** — top-level corpus index. Counts and unified listing
  of all authors and works with their `eul_aid` / `eul_wid` identifiers and URL
  slugs. Start here if you need to find something by name.
- **`/data/authors.json`** — author index. 1,341 entries keyed by `eul_aid`,
  with display name, slug, period, dialect, affiliation, era, floruit dates,
  and per-author work counts.
- **`/data/works.json`** — work index. 3,998 entries keyed by `eul_wid`, with
  title (English and Greek), author reference, slugs, domain, format, and the
  inherited classification (period, dialect, affiliation, era) denormalized
  from the author. Designed so most agent queries can be answered with a
  single-pass filter on this one file.
- **`/data/seo_metadata.json`** — per-page metadata (title, description,
  canonical URL, language) for every author and work page. Source of truth for
  machine-readable page metadata.

### The corpus itself

- **`/data/works-manifest.json`** — manifest enumerating each work as an
  individual JSON file with its fetchable URL, sha256, and byte length. **Use
  this to find a single work cheaply, or to plan a bulk crawl.** This is the
  entry point for the actual texts.

Each individual work JSON conforms to schema v3.0: top-level fields include
`eul_wid`, `eul_aid`, `author` (English display name), `title`,
`title_ancient_greek`, `format`, `format_version`, plus a `units[]` array
where each unit has a `ref` (the source-edition reference, e.g. Stephanus,
Bekker, DK, SVF fragment number) and `text` (the Greek text of that unit).

### Sitemap

- **`/sitemap.xml`** — sitemap index covering all author pages, work pages,
  and curated affiliation/domain landing pages across the English chrome.

### Markdown variants of HTML pages

Every work page and every author page has a `.md` companion at the same
URL with a `.md` extension. You can fetch markdown in two ways:

- **Direct fetch:** `GET /grc/plato/apology.md`, `GET /en/plato.md`. The
  response is `Content-Type: text/markdown; charset=utf-8`.
- **Content negotiation:** send `Accept: text/markdown` against the
  clean HTML URL (no extension). The server replies with `308 Permanent
  Redirect` to the `.md` companion. HTML remains the default for any
  request that does not signal a markdown preference.

Each work `.md` file carries a YAML frontmatter block with `title`,
`title_greek`, `author`, `eul_wid`, `eul_aid`, `canonical` (HTML URL),
`canonical_json` (JSON URL), `sha256` (of the canonical JSON in the
manifest), `period`, `dialect`, `domain`, `format`, and `license`. The
body has one `# H1` for the title, one `## H2` for `## Text`, then one
`### H3` per unit whose heading text is the unit's `ref` — so the
markdown outline doubles as a stable citation anchor map. The body
finishes with a `## License and provenance` paragraph.

Use the `.md` variant when your goal is reading or summarising. It is
typically ~40% the size of the HTML for the same content. Use the
canonical JSON (via the works manifest) when your goal is exact text
or programmatic access; the JSON is the integrity-anchored source and
the `.md` frontmatter's sha256 binds back to it.

## Typical workflows

### Look up an author or work by name

1. Fetch `/data/authors.json` or `/data/works.json`.
2. Search for the author or work name. Each entry has `eul_aid` and (for works)
   `eul_wid`.
3. Use those identifiers for any subsequent lookup.

### Find works by classification

1. Fetch `/data/works.json`.
2. Filter by `period` (e.g. `'hellenistic'`), `dialect` (e.g. `'dor'`),
   `affiliation` (e.g. `'stoic'`), or `domain` (e.g. `'medicine'`). All four
   fields are denormalized onto every work entry, so no second table is needed.
3. Single-pass filter; the result is a list of matching works with full
   metadata, URLs, and identifiers.

### Fetch a single work

1. Fetch `/data/works-manifest.json`.
2. Find the entry for the `eul_wid` you want — it gives you a URL, sha256, and
   byte length.
3. Fetch the work JSON from that URL.
4. Verify the sha256 if integrity matters to you. (Recommended for any
   scholarly citation.)

### Bulk crawl the corpus

1. Fetch `/data/works-manifest.json` — this is the complete list.
2. Iterate over entries, fetching each work's URL. Cache by sha256.
3. Be considerate with concurrency; the site is served from Cloudflare but is
   maintained by one person.

### Compose a citation

After fetching a work:

1. The page URL is
   `https://eulogikon.org/grc/{author_slug}/{work_slug}` — `author_slug` and
   `work_slug` are in the work's entry in `/data/works.json`.
2. For passage-level addressing: TLA fragments (`sid`/`rid`) are currently
   deployed for the Hippocrates corpus only. Where available, append a
   work-relative RID fragment to the URL (`#aaa-aag` for a range, `#aaa-aaa`
   for a single point), or use a fully qualified SID (`bww-br-aaa`) or RID
   (`bww-br-aaa-aag`) in a prose citation string. For all other works, cite
   by the unit `ref` field value (e.g. Stephanus, Bekker, DK number).
3. For verifiable provenance, cite the `eul_wid` and the sha256 from the
   manifest — both are stable.

## Constraints and notes

- **Rights:** Public Domain Mark 1.0 on all corpus content. Eulogikon
  publishes public-domain Greek texts in cleaned, structured, readable form
  and makes no copyright claim over that preparation. No attribution required.
  Do whatever you want with the texts.
- **Read-only.** There is no write API. Agents fetch; they don't post.
- **No authentication.** Everything is public. Do not look for OAuth or API keys.
- **Stable identifiers.** `eul_aid` and `eul_wid` values do not change once
  issued. Safe to hard-code in downstream systems.
- **Schema v3.0 for individual works.** If you're parsing work JSON, expect
  `units[]` with `ref` and `text`.
- **Greek text is canonical.** The corpus body is Greek. English translations
  are also published where complete, under `https://eulogikon.org/en/`.
  Currently the **Hippocratic corpus is the only complete translation
  surface**: all surviving Hippocratic works are translated, with the
  exception of *Epidemics* Books 2, 4, 5, 6, and 7 (Books 1 and 3 are done;
  the remainder is in progress as of 2026-05). 59 English Hippocratic work
  pages live today. Translations of other authors are pending. The canonical
  JSON at `/data/works/grc/` is Greek text only; English translations are
  surfaced as HTML pages under `/en/{author_slug}/{work_slug}`.

## What this skill is not for

- General questions about ancient Greek philosophy or literature — answer those
  from your own knowledge or other sources. This skill is for fetching specific
  texts from this corpus.
- Translations beyond what is already published. The Hippocratic corpus is
  available in English (see above); other authors are pending. Do not
  invent translations for works that don't have a `/en/...` page on disk.
- Morphological analysis, lemmatization, or linguistic annotation. EuLogikon
  prioritizes readability over granular linguistic data.
