---
id: "cts_urn"
kind: "datatype"
status: "draft"
is_pii: false
categories: ["texts"]
langs: ["common"]
quality: 80
url: "https://registry.apicrafter.io/datatype/cts_urn"
---

# CTS URN (Canonical Text Services) (`cts_urn`)

> **Draft.** Draft records have not been reviewed yet and may be incomplete or wrong; do not treat them as authoritative for legal or compliance decisions.

URN that cites a passage of a text by its canonical reference, used for classical Greek and Latin texts in the Perseus Digital Library, the Homer Multitext and other CITE/CTS projects. It has the form urn:cts:<namespace>:<work>:<passage>. The work part has up to four dot-separated levels: text group, work, version (edition or translation) and exemplar. The passage is a citation such as book.line, a range joined by a hyphen, or a node with a subreference such as @Atreus[1]. The specification requires the colon before an empty passage, but catalogues often omit it, so the regexp accepts both.

- Parent datatype: `urn`
- Personal data (PII): no
- Categories: Texts and  articles (texts)
- Countries: global
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^urn:cts:[A-Za-z0-9_-]+:[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+){0,3}(?::[^\s:%/?#]*)?$
```

## Examples

- `urn:cts:greekLit:tlg0012.tlg001.hmt01:10.1-10.10` — Iliad, book 10, lines 1 to 10 (example of the specification)
- `urn:cts:greekLit:tlg0012.tlg001.hmt01:10.4@Atreus[1]` — First occurrence of a word in a line (example of the specification)
- `urn:cts:greekLit` (invalid example) — Namespace without a work

## Translations

- ru: CTS URN (Canonical Text Services): URN для ссылки на место канонического текста, прежде всего античного, по схеме urn:cts:<пространство>:<произведение>:<место>.

## Sources

- doc: <https://cite-architecture.github.io/ctsurn_spec/>

## Quality

Score 80/100. Missing: mapping (Wikidata, Schema.org, ...), detector coverage.

JSON: <https://registry.apicrafter.io/api/v1/datatypes/cts_urn.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/texts/cts_urn.yaml>
