Use case: Negotiation of RDF shapes

Description
John is a researcher interested in the evolution of youth unemployment in different societies; he needs data in the form of RDF data graphs. To do this, he queries the data graphs available in various Web APIs queried by the university portal. These scenarios are plausible:
  • Scenario 1 - The shape is also important: John needs a representation that conforms to a specific shape. Therefore, vocabulary negotiation is not enough because he would have to manually validate all returned data graphs with the desired vocabularies.
  • Scenario 2 - Flexibility vs rigidity: In scenario 1, the negotiation can be rigid in case John wants all the constraints to be valid, and prefers not to have an answer otherwise. Else, the negotiation can be flexible in case he agrees to receive a representation even if it does not satisfy all the constraints.
  • Scenario 3 - Not all constraints are equally important: For John, not all shape constraints have the same degree of importance. He therefore wants a way to express this importance for each constraint and to obtain the representation that minimizes the violation rate by taking it into account.

Requirements

Solution
  • SHACL, ShEx to express a shape documents.
  • HTTP q-values as potential solution for expressing violation thresholds.
  • Profile negotiation to convey RDF shape constraints with severities.
  • SHACL to express shape severity.
  • HTTP response code 406 (Not acceptable) to convey validation failure.
  • HTTP response code 300 (Multiple Choices) for listing available variants.

Content negotiation dimensions

Links

Other use cases

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