Alice manages an information portal about ancient artifacts (e.g. creator,
date of creation, materials used) whose data is collected from different
sources, such as museums or Wikidata. She noticed that generally each
source uses different vocabularies, sometimes customized. Lately, she has
received many requests to find a way to search for data in a specific
vocabulary. Or to specify the desired vocabularies in an orderly fashion.
For example, exposing creator data using FOAF (Friend Of A Friend),
Schema.org or DCMI (Dublin Core Metadata Initiative). Currently, the data
graphs available on the APIs use the same media type text/turtle.
The user has to query all the data graphs manually to select those that
use the desired vocabulary.
- The client needs to convey the desired RDF vocabulary.
-
If multiple vocabularies are requested, the client needs to be able to
rank them.
-
The server needs to verify if a data graph conforms to a vocabulary.
-
The server needs to calculate the conformance rate of a data graph to a
vocabulary.
-
The server needs to convey a representation together with the
conformance report.
- Profile negotiation to convey RDF vocabularies.
-
HTTP q-values as potential solution for expressing vocabulary ranking.
- SHACL to express a vocabulary constraint "sh:targetClass".
-
HTTP response code 406 (Not acceptable) to convey conformance failure.
-
HTTP response code 300 (Multiple Choices) for listing available
variants.