Repository navigation
feat: Name a dataset's device and shot in its JSON-LD - #219
Merged
Merged
Conversation
A dataset's JSON-LD now carries fuel:device and fuel:shot: the name of the device it is filed under and the ID of its shot, as plain text. Another catalogue can filter on them without knowing the addresses FDS gives devices and shots. A dataset on a device but no shot has fuel:device only, and a global dataset has neither. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
A dataset's JSON-LD now names the device and shot it is filed under, as
fuel:deviceandfuel:shot. Until now it mentioned neither, so a catalogue reading FDS's records as linked data could not tell which shot a dataset is about without taking FDS's identifiers apart.The values are plain text, the device's
nameand the shot's ID:{ "@type": "dcat:Dataset", "@id": "https://example.org/datasets/13", "title": "Equilibrium (Shot 30421)", "fuel:device": "mast", "fuel:shot": "30421" }They are not links to FDS's device and shot documents: other catalogues give the same device and shot addresses of their own, but can use the same names, so a search across catalogues can filter on these values. A dataset attached to a device but no shot has
fuel:deviceonly, and a global dataset has neither. Shot and collection documents are unchanged.The JSON-LD page of the docs gains a "Device and shot" section, and its namespace and mapping tables list the two terms.
How it was tested
"fuel:device": "mast"and"fuel:shot": "30420". A local prototype of federated search, running in another FDS, read the device and shot of those records from these two terms.map_dataset_to_dcatand the docs page; they merge without conflict in either order.Checklist
uv run ruff check .anduv run ruff format --check .passuv run pyrightpassesuv run --all-extras pytestpasses🤖 Generated with Claude Code