RDF-ISSUE-136 (indicating-dataset-semantics): How can one indicate which semantics are intended for a Dataset? [RDF Concepts]

RDF-ISSUE-136 (indicating-dataset-semantics): How can one indicate which semantics are intended for a Dataset? [RDF Concepts]

http://www.w3.org/2011/rdf-wg/track/issues/136

Raised by: Sandro Hawke
On product: RDF Concepts

The Working Group decided not to give any semantics to all RDF Datasets, but instead to allow each dataset to have different semantics.  Probably most of us assumed while making this decision that there would be some reasonable way that a dataset producer/publisher could indicate those intended semantics to the dataset consumers.    How can that be done?

For example purposes, let's assume the semantics that one wants to communicate are that graph names denote their graphs.  We'll say that datasets like this use "bound" semantics, and if a Web Resources is an instance of "rdf:BoundDataset", then its representations which serialize RDF Datasets are serializing bound datasets. 

So the question is, how can Alice give Bob a bound dataset D and let him know it's a bound dataset?

OPTION 1 - (Have People Make Assumptions) Alice puts { <> a rdf:BoundDataset } in the default graph.   Bob assumes that if that's in the default graph, that's probably what's intended, even though the specifications license no such assumption.

OPTION 2 - (Simple Bootstrap Semantics) We give some minimalist semantics to datasets, saying the default graph of a dataset carries the same meaning as an RDF graph.  Now Alice puts { <> a rdf:BoundDataset } in the default graph and the specs tell Bob that's what's intended.

OPTION 3 - (Type-Only Bootstrap Semantics) We give some tightly-minimalist semantics to datasets, saying that triples in the default graph of the form { <> a ?x } carry the same meaning as if they were in an RDF graph in the same situation.  Again, Alice puts { <> a rdf:BoundDataset } in the default graph and the specs tell Bob that's what's intended.  Oddly, unlike with OPTION 2 if she puts in { <> cc:license cc:by }, Bob is not licensed by the specs to act on that information.   If Alice wants to convey a legal license, she'll have to also add a triple like { <> a rdf:DefaultIsAssertedDataset } (for some suitably defined class).

OPTION 4 - (Out-of-band Link Header) Alice uses an HTTP Link header like this:  Link: <http://www.w3.org/1999/02/22-rdf-syntax-ns#BoundDataset> rel="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"

OPTION 5 - (Out-of-band RDF) Alice makes sure that however she gives Bob the URL for D, perhaps in some other RDF linking to D, she includes the triple { <D> a rdf:BoundDataset }.

Options 4 and 5 have a certain simplicity of appearance, but are probably complicated and error-prone to implement, since any sort of crawler or aggregator would have to maintain this additional metadata and make it available to data consumers.  We have avoided this kind of design in the past in RDF, instead saying the meaning of a graph is independent how it was obtained. 

Received on Tuesday, 11 June 2013 18:50:09 UTC