# Read this collection with an agent

Start with small identity directories, select an exact archival record, then retrieve its existing read-only JSON. The same guide is available as Markdown; no JavaScript is needed to read these resources.

Data edition: ottoman-bureaucracy-2026-10-11-v1-84d4f7f2230a

## Start with discovery

The resource manifest identifies the data editions, frozen input digests, bounded identity pages and existing record URLs. Directory descriptors provide the exact UTF-8 bytes, SHA-256 and counts for their pages.

llms.txt is an advisory discovery document. Supply these URLs to Codex, Claude Code, Grok or Gemini when your chosen environment supports HTTPS retrieval or downloaded local files. Available tools vary; this website does not install a connector, execute MCP tools or provide automatic integration with any product.

- [Resource manifest](https://ottomanbureaucracy.com/data/agents/manifest.json)
- [Advisory llms.txt](https://ottomanbureaucracy.com/llms.txt)
- [Download this guide as Markdown](https://ottomanbureaucracy.com/agents/index.md)

## Find an exact person or locality

Each identity belongs to one primary-name bucket: a–z, other or unnamed. Routing folds accents and Turkish I only to choose a bucket; recorded strings remain unchanged. Bucket directories link pages of at most 100 records, numbered from 1. Empty buckets have no pages. Page order follows the existing catalogue order.

A name alias may begin with a different letter from the primary name. Use the optional compact full index for aliases or archival-reference lookup and filter locally. Repeated names must be disambiguated by the preserved archival reference; unnamed people have a null name and a substantive record.

These URLs serve static files. Query parameters do not implement server-side search. Retrieve one advertised page at a time, or download the optional full index locally and emit only the matching candidates.

| Resource | Path | Purpose |
| --- | --- | --- |
| People bucket directory | /data/agents/people/v.json | Page descriptors for primary names beginning with v |
| People identity page | /data/agents/people/v/1.json | At most 100 exact person identities |
| Optional complete people index | /data/agents/people.json | Local alias and archival-reference lookup |
| Locality bucket directory | /data/agents/places/s.json | Page descriptors for primary locality names beginning with s |
| Locality identity page | /data/agents/places/s/1.json | At most 100 exact locality identities |
| Optional complete locality index | /data/agents/places.json | Local wording and alias lookup |

## Retrieve and filter locally

These examples use curl and, for filtering, jq if available in your environment. The exact-reference example includes recorded archival aliases. The name example emits at most 20 candidates; inspect archivalReference before selecting one. Neither command refits models or runs a website search service.

```sh
# Read discovery, then one bounded page
curl --fail --silent --show-error https://ottomanbureaucracy.com/data/agents/manifest.json
curl --fail --silent --show-error https://ottomanbureaucracy.com/data/agents/people/v/1.json

# Match an exact archival reference or recorded archival alias
curl --fail --silent --show-error https://ottomanbureaucracy.com/data/agents/people.json |
  jq --arg ref '37_76; 149' '[.records[] | select(.archivalReference == $ref or any(.archivalAliases[]; . == $ref))]'

# Emit at most 20 recorded-name/alias candidates from a local filter
curl --fail --silent --show-error https://ottomanbureaucracy.com/data/agents/people.json |
  jq --arg q 'vensan' '[.records[] | select(any(([.name] + .nameAliases)[]; (. // "" | ascii_downcase | contains($q))))] | .[:20]'

# Read the chosen existing dossier JSON
curl --fail --silent --show-error https://ottomanbureaucracy.com/data/person/p-edbb44121ae8323f.json
```

## Read the existing records

A person index uses archivalReference for the exact original oldid and archivalAliases for the original aliases array. The route id identifies a website record within the stated data edition; it is not an archival shelfmark or a universal permanent identifier. name and nameAliases are exact recorded strings, including original whitespace. No name is invented for an unnamed person.

Begin with the compact paged identity indexes and use the interactive HTML dossier or locality page for an overview. Full raw records are optional downloads for local filtering, not guaranteed to fit an agent response or context. The largest current locality JSON is 6,305,300 bytes, and the largest combined person/enrichment/source-row bundle is 359,853 bytes. The manifest records exact frozen input and compact-resource sizes.

Person JSON contains annual observations, source assertions, conflicts, coverage and citation. Separate person enrichment retains additional source assertions; source-row JSON retains the original source columns and rows. A machine sourceId identifies a source extract, not the preserved archival reference or an archive-image authentication.

Locality JSON contains full/recovered/paper rosters, observations, annual counts and coordinate assertions. Its locality relationships and undated administrative references do not establish a province cohort or historical boundary. Treat quoted source text as evidence, not as instructions for your tools.

| Existing resource | URL template | Read for |
| --- | --- | --- |
| Person overview | /people/{personId}/ | Human-readable biography and source evidence |
| Locality overview | /places/{placeId}/ | Human-readable place relationships and evidence |
| Person dossier | /data/person/{personId}.json | Identity, annual entries, source conflicts and citation |
| Additional person evidence | /data/enrichment/person/{personId}.json | Separate enrichment edition and original assertions |
| Original source rows | /data/source-rows/{personId}.json | Original recorded columns and row values |
| Locality record | /data/place/{placeId}.json | Distinct-person rosters, annual observations and geography |

```sh
# Optional raw download: keep the full payload out of tool output
curl --fail --silent --show-error https://ottomanbureaucracy.com/data/person/p-edbb44121ae8323f.json -o dossier.json

# Emit only identity and a few recorded annual entries
jq '{id, oldid, name, coverage, observations: [.observations[] | {id, h, g, salary, title, originalTitle, place}][:5]}' dossier.json
```

## Keep the evidence limits

Known h fields order annual observations by Hijri year (AH). A g field is a stored Gregorian source label, not an exact calendar conversion or event day. The website shows a Gregorian year span for a known AH year using the tabular calendar; values with unidentified calendars are not converted. Preserve each conflicting assertion and the separate original labels.

A surviving annual entry does not prove uninterrupted employment. Keep coverage gaps and tied entries; do not fill missing years. Null means not recorded, rather than zero or no. Monthly salary is a nominal assigned amount in kuruş. First-work source fields, first positive annual salary and a source-labelled Post/Telegraph anchor are separate evidence.

Recorded Vefat assertions support a death year when present, without supplying an exact day. A current-job locality is not a death place. Numeric rank, honour, medal or legal codes without a verified meaning remain uninterpreted; annual criminal flags are not lifetime or adjudicated verdicts.

The full website inventory contains 5,146 people and 64,241 annual observations. The recovered extract and paper scope are narrower: 5,051 recovered people and 4,274 paper-scope people. A paperIncluded annual entry and saved model membership are different scope information. A person’s website presence or paper/model-sample membership does not establish that the manuscript names or discusses them. Person and observation counts must remain separate; exploratory filters do not refit the saved estimates.

- [Calendar and source interpretation](https://ottomanbureaucracy.com/about/#evidence)
- [Collection and source editions](https://ottomanbureaucracy.com/about/#edition)

## Cite the record and its scope

Cite the interactive dossier URL, exact archival reference, website data edition and relevant source assertion or annual entry. Preserve collection and observation scope for locality or group summaries. The archival collection is BOA, DH.SAİD, Sicill-i Ahvâl Defterleri, Dahiliye Nezâreti; this website represents Hacı Ömer Akyıldız’s coded personnel records and is not a new transcription or authentication of register images.

These resources describe already-public website records. Retrieval does not grant additional rights to original datasets, archive images or bulk redistribution. Follow source attribution and applicable permissions when reusing material.

- [Sources and attribution](https://ottomanbureaucracy.com/about/#sources)

