Use case: Negotiation of vocabulary

Description
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.

Requirements

Solutions
  • 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.

Content negotiation dimensions

Links

Other use cases

References
[{{ reference.id }}] : {{ reference.title }}