This is an attempt to redefine a "quote-semantics" in such a way that it could be the basis for extending it to the other dataset semantics.
Here, we define a new semantics for RDF which relaxes some of the constraints of the simple semantics. Let V be a vocabulary. A no-interpretation of vocabulary V is a tuple I = (IR,IP,LV,IS,IL,IEXT) such that:
- A non-empty set IR of resources, called the domain or universe of I.
- A set IP, called the set of properties of I.
- A mapping IEXT from IP into the powerset of IR x IR i.e. the set of sets of pairs <x,y> with x and y in IR .
- A mapping IS from URI references in V into (IR union IP)
- A mapping IL from typed literals in V into IR.
- A distinguished subset LV of IR, called the set of literal values, which contains all the plain literals in V.
Semantic condition of no-interpretation. For any graph G, I(G) is true iff IR contains an RDF graph isomorphic to G.
This is again a new semantics to accomodate Sandro's subgraph-semantics. A subgraph-interpretation of vocabulary V is a no-interpretation of V which satisfies the following condition:
Semantic condition of subgraph-interpretation. For any graph G, I(G) is true iff IR contains all the subgraph of an RDF graph isomorphic to G.
Now, RDF no-semantics can be an entailment regime in the RDF Dataset semantics. (TODO: modify the semantics such that different entailment regimes can be used for different named graphs.)
A possibility is to allow meta information about entailment to be provided in dataset files or APIs. Something like a SPARQL service description, but for reasoning over datasets.
Or one could use a dedicated vocabulary, to be used in the default graph, like so:
@prefix ds: <datasetInferenceVocabulary> . [ a ds:DefaultGraphInferenceRegime ; ds:onGraphIRI "http://www.example.com/"^^xsd:anyURI ; ds:withRegime <http://www.w3.org/ns/entailment/RDFS> . ] [ a ds:GraphInferenceRegime ; ds:onGraphIRI "http://www.example.com/"^^xsd:anyURI ; ds:withRegime <http://www.w3.org/ns/entailment/Simple> . ] ...
Note that this looks very much like SPARQL 1.1 Service description, but in this case, the description is intended to go directly in the dataset, inside the default graph. It is also possible to put this description in an external file.
The goal is to provide an indication of what semantics is to be assumed by anyone who reads the dataset. It is still possible for the person who process the data to use its own choice of semantics, though. These are only suggestions.
Note that the terms ds:* do not have a formal meaning in the model theoretic semantics itself. They are provided to determine what entailment is assumed, prior to any reasoning happens.