Skip to content

RFC 093: Describing the catalogue data model - #166

Draft
kenoir wants to merge 1 commit into
mainfrom
rk/rfc-093-data-model-description
Draft

RFC 093: Describing the catalogue data model#166
kenoir wants to merge 1 commit into
mainfrom
rk/rfc-093-data-model-description

Conversation

@kenoir

@kenoir kenoir commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Preview


What does this change?

Adds RFC 093, which proposes rebuilding the artefacts RFC 010 set out: a JSON-LD context, the Turtle ontology and new SKOS vocabularies for our controlled terms. They live in catalogue-api/reference/ next to catalogue.yaml, are published from a new static id.wellcomecollection.org, and are covered by the same kind of drift tests that already check the OpenAPI spec against the code.

RFC 010's artefacts have diverged from the API and nothing reports it. The Context section records what was checked, and on what date.

Files changed:

  • rfcs/093-catalogue-data-model-description/README.md: the RFC document.
  • rfcs/README.md: RFC listing table regenerated by .scripts/create_table_summary.py.

How to test

  • Read the rendered RFC.
  • python3 .scripts/validate_rfc.py
  • python3 .scripts/create_table_summary.py --check-readme

How can we measure success?

No runtime criteria; this is a documentation RFC. Success is agreement on the namespace, the only next step needing a decision outside the team.

Have we considered potential risks?

Documentation only; nothing is deployed by this PR. The risks of the proposal are in the RFC's Impact section, the significant one being that the vocabularies need cataloguing input for scope notes and AAT mappings.

Notes for reviewers

  • Two points worth challenging: excluding entity URIs, which rests on RFC 054's account of concept id splitting, and the context's reliance on type-scoped @base to build URIs from bare string ids.
  • An earlier draft made renaming RelatedConcept.conceptType a prerequisite. Testing showed the context resolves related concepts with no API change, so that section was cut to a note about the missing identifiers field.
  • Claims were checked against live API responses, and the JSON-LD behaviour against two implementations (pyld and jsonld.js) using one work record and one concept record.

RFC 010 set out to document the model in OWL, serve JSON, and offer a
context for consumers wanting a graph. The artefacts have since diverged
from the API: the Turtle links in RFC 010 all 404, the committed
context.json still maps creators and publishers, the ontology and the
context declare different namespaces, and none of the URIs resolve.

This RFC proposes rebuilding those artefacts next to catalogue.yaml,
publishing the ontology and new SKOS vocabularies from a static
id.wellcomecollection.org, and adding three tests alongside the four
that already check the OpenAPI spec, so divergence fails the build.

Scope stops at describing our own model. Entity URIs, external profile
mappings and any change to the catalogue graph are out of scope.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant