Fixture — sparql-info
Profile: sparql-access (Draft v0.1.0)
Endpoint: GET /api/ric/v1/sparql/info
Shape: :SparqlInfoShape in shapes/profiles/sparql-access.shacl.ttl
Status: done — gates promotion of sparql-access from Draft to Normative
Pins the canonical /sparql/info response: a void:Dataset describing the SPARQL endpoint, with required void:sparqlEndpoint, void:triples, void:vocabulary (at minimum binding rico:), and recommended dcterms:license.
Implementation hints carried as openricx:* on the same void:Dataset node:
openricx:accessPolicy— one ofpublic-read/authenticated-read/tenant-restrictedpersparql-access.md§3.openricx:rateLimit— free-text rate limit declaration (e.g.60/minute/IP).openricx:maxQueryTimeSeconds— server-side query timeout cap.openricx:exampleQueriesUrl— optional pointer at/sparql/examplesper §2.2.
What this fixture pins
- The response is a single
void:DatasetJSON-LD root node. @contextbindsvoid,dcterms,rico,openricx,skos,owl,xsd.void:sparqlEndpointis an IRI pointing back at the live SPARQL URL (typically the same as@id).void:triplesisxsd:integer≥ 0 (use0for an empty store; do not omit).void:vocabularyis an array of IRIs and includes at least<https://www.ica.org/standards/RiC/ontology#>.dcterms:licenseis an IRI when present (Warning if missing).
Validation
expected.jsonld MUST validate against :SparqlInfoShape:
pyshacl -s shapes/profiles/sparql-access.shacl.ttl \
-d fixtures/sparql-info/expected.jsonld -f human
Expected result: 0 Violations, 0 Warnings.