# Eulogikon

> Free, open-source digital library of ancient Greek texts. 1,359 authors and
> 4,060 works, all public domain (Public Domain Mark 1.0). Covers Homer through
> late antiquity. Corpus scale: 830,149 unit rows; 221,209,705
> conservation-Greek codepoints; 44,122,431 typed Greek word/num tokens.
> Texts are addressed by stable identifiers (`eul_aid` for authors, `eul_wid`
> for works). Resolve a work in `/data/works.json`, then fetch its whole-text
> Markdown companion.

This site is built for agent consumption. The primary entry point for
programmatic access is the Agent Skills Discovery surface described below.
Public-domain content — no attribution required, no authentication, no rate
limits beyond ordinary courtesy.

## Citing the corpus

The archived Eulogikon corpus has a Zenodo concept DOI (resolves to the latest
archived version): https://doi.org/10.5281/zenodo.20335421

## Agent Skills (start here)

- https://eulogikon.org/.well-known/agent-skills/index.json — Discovery index; Cloudflare Agent Skills Discovery RFC v0.2.0
- https://eulogikon.org/.well-known/agent-skills/eulogikon-corpus/SKILL.md — full instructions: identifiers, workflows, citation format, the data files and what's in each

## Tekmeria (corpus-grounded readings)

- https://tekmeria.eulogikon.org/ — Τεκμήρια: short aphoristic essays reading the corpus closely (Greek text, commentators, what the words meant). Not corpus text; published observations anchored by `eul_wid` + ref. CC0 1.0.
- https://tekmeria.eulogikon.org/what-aristotle-means-by-socratic-induction — What Aristotle attributes to Socrates; Metaphysics 1078b17–31 with Alexander and the commentators
- https://tekmeria.eulogikon.org/the-square-psyche — The Square ψυχή; τετράγωνος from Simonides to Proclus

## Structured data

- https://eulogikon.org/data/index.json — Top-level corpus index; counts and unified author + work listing. Each work entry carries a pre-composed `path` (e.g. `works/plato-apology-ffk-aa`), so this is the cheapest way to resolve an identifier to a URL without composing the stem yourself
- https://eulogikon.org/data/authors.json — 1,359 authors keyed by `eul_aid`, with `author_display_string`, period, dialect, affiliation, era, floruit dates
- https://eulogikon.org/data/works.json — 4,060 works keyed by `eul_wid`, with titles (English + Greek), classification denormalized from author for single-pass filtering, per-work `reference_count` / `greek_codepoint_count` / `greek_token_count`, corpus totals (`total_reference_count`, `total_greek_codepoints`, `total_greek_tokens`), and the work's `work_display_string` (compose the universal artefact name as `{work_display_string}-{eul_wid}`)
- https://eulogikon.org/data/seo_metadata.json — SEO metadata keyed by `eul_wid` or `eul_aid`; each row carries `browser_title`, `meta_title`, `meta_description`

## Fetching Greek text

**Fetch a whole work:**

1. Resolve the work by **`eul_wid`** in `/data/works.json` (never by display string or title alone).
2. Compose the universal artefact stem `{work_display_string}-{eul_wid}` from the row — same string as the URL and the file name.
3. Fetch Markdown at `https://eulogikon.org/works/{work_display_string}-{eul_wid}.md` (preferred for agents) or HTML at `https://eulogikon.org/works/{work_display_string}-{eul_wid}`.
4. Send `Accept-Encoding: gzip` (`curl --compressed`). The indexes and works compress by roughly 10×.

Canonical work JSON is backend-only and is not published on the public site.

Bulk clone of the corpus lives in the separate
**`eulogikon/ancient-greek-texts`** GitHub repository — see SKILL.md.

## Conventions

- **Identifiers:** `eul_aid` (author, opaque three-letter code) and `eul_wid` (work; an `eul_wid` begins with its `eul_aid`) are the sole reference keys. Both are stable and never reissued.
- **Display strings are not identifiers.** `author_display_string` and `work_display_string` are mutable URL attributes, and they are not unique on their own — several works share a `work_display_string`; only the composed stem is unique. Do not construct URLs by hand from names or titles — always look up `eul_aid` / `eul_wid` in the JSON indexes first.
- **Durable URLs for citation.** `https://eulogikon.org/works/{eul_wid}` and `https://eulogikon.org/authors/{eul_aid}` redirect (`301`) to the canonical page. Cite that bare-identifier form — it cannot break when a display string changes.
- **One universal name per artefact.** Every artefact for a work (URL, HTML file, Markdown file) 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.
- **URL grammar (Greek corpus on eulogikon.org):**
  - Author page: `https://eulogikon.org/authors/{author_display_string}-{eul_aid}`
  - Work HTML: `https://eulogikon.org/works/{work_display_string}-{eul_wid}`
  - Work Markdown: `https://eulogikon.org/works/{work_display_string}-{eul_wid}.md`
  - Work PDF (optional): `https://eulogikon.org/works/{work_display_string}-{eul_wid}.pdf`
- **Markdown variants:** every work page has an agent-facing markdown variant at the same path with a `.md` extension. YAML frontmatter carries `eul_wid`, canonical URLs, classification, and license; the body has the full Greek text with each unit reference as an H3 heading, in document order. Those headings carry citable references; they are not URL fragments, and a reference is not guaranteed unique within a work. Agents that send `Accept: text/markdown` against the clean URL receive `200 text/markdown` from that same URL. Markdown omits the page chrome, so it is smaller than the HTML — by how much varies widely from work to work.
- **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.

## Optional

- https://eulogikon.org/llms-full.txt — Full corpus census; every author + work enumerated in one markdown file (~1.4 MB, 1,357,761 bytes). Use this for one-shot ingestion when you want a complete map of the corpus shape without fetching every JSON. Metadata only — resolve each work by `eul_wid`, then fetch Markdown for the Greek text.
- https://eulogikon.org/sitemap.xml — Sitemap; every author and work page
- https://eulogikon.org/ — Homepage; for humans
- https://eulogikon.org/for-agents — Landing page for agent developers; install command, worked example, and conventions in plain English

## Attribution

When citing, use: **Eulogikon** (https://eulogikon.org) or the Zenodo DOI: https://doi.org/10.5281/zenodo.20335421

Sitemap: https://eulogikon.org/sitemap.xml
Contact: https://eulogikon.org/contact
Behavioral guidance for AI systems: https://eulogikon.org/ai.txt
AI Discovery Files specification: https://www.ai-visibility.org.uk/specifications/
