Skip to content

docs: publish an ontology stub at https://textrefs.org/ontology# #108

Description

@maehr

Context

public/contexts/v1.jsonld binds the tr: prefix to https://textrefs.org/ontology# and then uses it for 20 terms: four classes (tr:Work, tr:CitationSystem, tr:CanonicalReference, tr:MappingAssertion) and sixteen properties (tr:key, tr:locator, tr:relation, tr:status, tr:workKey, tr:citationSystemKey, tr:preferredCitationSystemKey, tr:creatorKind, tr:subject, tr:target, tr:identifier, tr:resolverTargets, tr:access, tr:lastChecked, tr:locatorRegex).

None of them dereferences. https://textrefs.org/ontology# returns nothing. Every published record therefore carries twenty terms that a Linked Data client cannot resolve to a definition.

ADR-0006 named this and declined to fix it there:

Publish an ontology stub at https://textrefs.org/ontology#. Pre-existing debt (tr:Work, tr:relation, tr:locator are all undereferenceable), not created here, but option 4 above was rejected partly on its account.

That last clause matters. ADR-0006 chose prov:alternateOf and dcterms:isReferencedBy over minting tr: terms partly because a tr: term would have been one more undereferenceable IRI. The debt is now shaping decisions, not just sitting behind them.

What the stub needs

  1. A document served at https://textrefs.org/ontology, with the fragment identifiers the context uses.
  2. One definition per term: a label, a comment, and — where it is honest to state one — a domain and a range. A stub may leave a term loosely specified. It may not leave it undefined.
  3. Content negotiation is not available. The site is static and GitHub Pages derives every Content-Type from the file extension, as api/openapi.yaml already documents. Publish HTML with embedded RDFa or JSON-LD, or publish a Turtle file at a distinct path and link it, rather than promising negotiation the host cannot perform.
  4. Versioning. The context is v1. The ontology needs a stated relationship to it — whether the terms are versioned with the context or independently.

Decide first

  • Reuse where a term already exists. Several tr: properties may be expressible with SKOS, DCTerms or schema.org terms that do dereference. A stub is the moment to check, because replacing a term after v0.1.0 is a context change with published consumers.
  • Scope. All 20 terms, or the four classes first?

Links

  • decisions/ADR-0006-mapping-relation-vocabulary.md — the follow-up and the rejected option 4
  • public/contexts/v1.jsonld — the 20 terms
  • src/content/docs/standard/json-ld.md — the published context documentation

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationpost-v0.1.0Deferred past the v0.1.0 baseline. Revisit if the need arises.standardThe published specification and schemas

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions