--- a/REC-drafts/NOTE-rdf11-datasets-20140225/Overview.html Mon Feb 24 12:28:38 2014 +0100
+++ b/REC-drafts/NOTE-rdf11-datasets-20140225/Overview.html Mon Feb 24 12:35:44 2014 +0100
@@ -306,7 +306,7 @@
-</section><section id="toc"><h2 class="introductory" aria-level="1" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#sec-introduction" class="tocxref"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a href="#sec-existing-work" class="tocxref"><span class="secno">2. </span>Existing Work</a><ul class="toc"><li class="tocline"><a href="#sec-rdf-semantics" class="tocxref"><span class="secno">2.1 </span>The RDF semantics</a></li><li class="tocline"><a href="#sec-named-graph-paper" class="tocxref"><span class="secno">2.2 </span>The Named Graphs paper</a></li><li class="tocline"><a href="#sec-sparql" class="tocxref"><span class="secno">2.3 </span>The SPARQL specification</a></li></ul></li><li class="tocline"><a href="#options" class="tocxref"><span class="secno">3. </span>Formal definitions</a><ul class="toc"><li class="tocline"><a href="#named-graphs-have-no-meaning" class="tocxref"><span class="secno">3.1 </span>Named graphs have no meaning</a></li><li class="tocline"><a href="#default-graph-as-union-or-as-merge" class="tocxref"><span class="secno">3.2 </span>Default graph as union or as merge</a></li><li class="tocline"><a href="#the-graph-name-denotes-the-named-graph-or-the-graph" class="tocxref"><span class="secno">3.3 </span>The graph name denotes the named graph or the graph</a></li><li class="tocline"><a href="#each-named-graph-defines-its-own-context" class="tocxref"><span class="secno">3.4 </span>Each named graph defines its own context</a></li><li class="tocline"><a href="#named-graph-are-in-a-particular-relationship-with-what-the-graph-name-dereferences-to" class="tocxref"><span class="secno">3.5 </span>Named graph are in a particular relationship with what the graph name dereferences to</a></li><li class="tocline"><a href="#quad-semantics" class="tocxref"><span class="secno">3.6 </span>Quad semantics</a></li><li class="tocline"><a href="#quoted-graphs" class="tocxref"><span class="secno">3.7 </span>Quoted graphs</a></li><li class="tocline"><a href="#relationship-with-sparql-entailment-regime" class="tocxref"><span class="secno">3.8 </span>Relationship with SPARQL entailment regime</a></li></ul></li><li class="tocline"><a href="#declaring" class="tocxref"><span class="secno">4. </span>Declaring the intended semantics</a></li><li class="tocline"><a href="#section-acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#changes" class="tocxref"><span class="secno">B. </span>Changes since the first public working draft of 17 December 2013</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">C. </span>References</a><ul class="toc"><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">C.1 </span>Informative references</a></li></ul></li></ul></section>
+</section><section id="toc"><h2 class="introductory" aria-level="1" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#sec-introduction" class="tocxref"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a href="#sec-existing-work" class="tocxref"><span class="secno">2. </span>Existing Work</a><ul class="toc"><li class="tocline"><a href="#sec-rdf-semantics" class="tocxref"><span class="secno">2.1 </span>The RDF semantics</a></li><li class="tocline"><a href="#sec-named-graph-paper" class="tocxref"><span class="secno">2.2 </span>The Named Graphs paper</a></li><li class="tocline"><a href="#sec-sparql" class="tocxref"><span class="secno">2.3 </span>The SPARQL specification</a></li></ul></li><li class="tocline"><a href="#options" class="tocxref"><span class="secno">3. </span>Formal definitions</a><ul class="toc"><li class="tocline"><a href="#named-graphs-have-no-meaning" class="tocxref"><span class="secno">3.1 </span>Named graphs have no meaning</a><ul class="toc"><li class="tocline"><a href="#formalization" class="tocxref"><span class="secno">3.1.1 </span>Formalization</a></li><li class="tocline"><a href="#examples-of-entailment-and-non-entailments" class="tocxref"><span class="secno">3.1.2 </span>Examples of entailment and non-entailments</a></li><li class="tocline"><a href="#properties-of-this-dataset-semantics" class="tocxref"><span class="secno">3.1.3 </span>Properties of this dataset semantics</a></li></ul></li><li class="tocline"><a href="#default-graph-as-union-or-as-merge" class="tocxref"><span class="secno">3.2 </span>Default graph as union or as merge</a><ul class="toc"><li class="tocline"><a href="#formalization-first-version" class="tocxref"><span class="secno">3.2.1 </span>Formalization: first version</a></li><li class="tocline"><a href="#formalization-second-version" class="tocxref"><span class="secno">3.2.2 </span>Formalization: second version</a></li><li class="tocline"><a href="#examples" class="tocxref"><span class="secno">3.2.3 </span>Examples</a></li><li class="tocline"><a href="#properties-of-this-dataset-semantics-1" class="tocxref"><span class="secno">3.2.4 </span>Properties of this dataset semantics</a></li></ul></li><li class="tocline"><a href="#the-graph-name-denotes-the-named-graph-or-the-graph" class="tocxref"><span class="secno">3.3 </span>The graph name denotes the named graph or the graph</a><ul class="toc"><li class="tocline"><a href="#formalization-1" class="tocxref"><span class="secno">3.3.1 </span>Formalization</a></li><li class="tocline"><a href="#examples-1" class="tocxref"><span class="secno">3.3.2 </span>Examples</a></li><li class="tocline"><a href="#properties-of-this-dataset-semantics-2" class="tocxref"><span class="secno">3.3.3 </span>Properties of this dataset semantics</a></li></ul></li><li class="tocline"><a href="#each-named-graph-defines-its-own-context" class="tocxref"><span class="secno">3.4 </span>Each named graph defines its own context</a><ul class="toc"><li class="tocline"><a href="#formalization-2" class="tocxref"><span class="secno">3.4.1 </span>Formalization</a></li><li class="tocline"><a href="#examples-2" class="tocxref"><span class="secno">3.4.2 </span>Examples</a></li><li class="tocline"><a href="#properties-of-this-dataset-semantics-3" class="tocxref"><span class="secno">3.4.3 </span>Properties of this dataset semantics</a></li><li class="tocline"><a href="#variants-of-this-dataset-semantics" class="tocxref"><span class="secno">3.4.4 </span>Variants of this dataset semantics</a></li></ul></li><li class="tocline"><a href="#named-graph-are-in-a-particular-relationship-with-what-the-graph-name-dereferences-to" class="tocxref"><span class="secno">3.5 </span>Named graph are in a particular relationship with what the graph name dereferences to</a><ul class="toc"><li class="tocline"><a href="#formalization-3" class="tocxref"><span class="secno">3.5.1 </span>Formalization</a></li><li class="tocline"><a href="#examples-3" class="tocxref"><span class="secno">3.5.2 </span>Examples</a></li><li class="tocline"><a href="#properties-of-this-dataset-semantics-4" class="tocxref"><span class="secno">3.5.3 </span>Properties of this dataset semantics</a></li></ul></li><li class="tocline"><a href="#quad-semantics" class="tocxref"><span class="secno">3.6 </span>Quad semantics</a><ul class="toc"><li class="tocline"><a href="#formalization-4" class="tocxref"><span class="secno">3.6.1 </span>Formalization</a></li><li class="tocline"><a href="#properties-of-this-dataset-semantics-5" class="tocxref"><span class="secno">3.6.2 </span>Properties of this dataset semantics</a></li></ul></li><li class="tocline"><a href="#quoted-graphs" class="tocxref"><span class="secno">3.7 </span>Quoted graphs</a></li><li class="tocline"><a href="#relationship-with-sparql-entailment-regime" class="tocxref"><span class="secno">3.8 </span>Relationship with SPARQL entailment regime</a></li></ul></li><li class="tocline"><a href="#declaring" class="tocxref"><span class="secno">4. </span>Declaring the intended semantics</a></li><li class="tocline"><a href="#section-acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#changes" class="tocxref"><span class="secno">B. </span>Changes since the first public working draft of 17 December 2013</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">C. </span>References</a><ul class="toc"><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">C.1 </span>Informative references</a></li></ul></li></ul></section>
@@ -414,161 +414,211 @@
<p>The first item above reflects the indication given in [<cite><a class="bibref" href="#bib-RDF11-MT">RDF11-MT</a></cite>] (Section <a href="http://www.w3.org/TR/rdf11-mt/#rdf-datasets">"RDF Datasets"</a>) with respect to dataset semantics: <q>a dataset <em class="rfc2119" title="SHOULD">SHOULD</em> be understood to have at least the same content as its default graph</q>.</p>
<p>The dependency on RDF semantics is such that most of the dataset semantics below reuse RDF semantics as a black box. More precisely, it is not necessary to be specific about how truth of RDF graphs is defined as long as there is a notion of interpretation that determines the truth of a set of triples. In fact, RDF Semantics does not define a single formal semantics, but multiple ones, depending on what standard vocabularies are endorsed by an application (such as the RDF, RDFS, XSD vocabularies). Consequently, we parameterize most of the definitions below with an unspecified entailment regime <var>E</var>. RDF 1.1 defines the following entailment regimes: simple entailment, D-entailment, RDF-entailment, RDFS-entailment. Additionally, OWL defines two other entailment regimes, based on the OWL 2 direct semantics [<cite><a class="bibref" href="#bib-OWL2-DIRECT-SEMANTICS">OWL2-DIRECT-SEMANTICS</a></cite>] and the OWL 2 RDF-based semantics [<cite><a class="bibref" href="#bib-OWL2-RDF-BASED-SEMANTICS">OWL2-RDF-BASED-SEMANTICS</a></cite>].</p>
<p>For an entailment regime <var>E</var>, we will say <var>E</var>-interpretation, <var>E</var>-entailment, <var>E</var>-equivalence, <var>E</var>-consistency to describe the notions of interpretations, entailment, equivalence and consistency associated with the regime <var>E</var>. Similarly, we will use the terms dataset-interpretation, dataset-entailment, dataset-equivalence, dataset-consistency for the corresponding notions in dataset semantics.</p>
+ <p>This document provides examples in TriG [<cite><a class="bibref" href="#bib-TRIG">TRIG</a></cite>] and assumes that the following prefixes are defined:</p>
+ <table class="simple">
+ <caption>Namespace prefixes and IRIs used in this document</caption>
+ <tbody><tr>
+ <th>Namespace prefix</th>
+ <th>Namespace IRI</th>
+ </tr>
+ <tr>
+ <td><code>rdf</code></td>
+ <td><code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code></td>
+ </tr>
+ <tr><td><code>rdfs</code></td>
+ <td><code>http://www.w3.org/2000/01/rdf-schema#</code></td>
+ </tr>
+ <tr><td><code>xsd</code></td>
+ <td><code>http://www.w3.org/2001/XMLSchema#</code></td>
+ </tr>
+ <tr><td><code>ex</code></td>
+ <td><code>http://example.org/voc#</code></td>
+ </tr>
+ </tbody></table>
<section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="named-graphs-have-no-meaning">
<h3 id="no-meaning" aria-level="2" role="heading"><span class="secno">3.1 </span>Named graphs have no meaning</h3>
<p>The simplest semantics defines an interpretation of a dataset as an RDF interpretation of the default graph. The dataset is true, according to the interpretation, if and only if the default graph is true. In this case, any datasets that have equivalent default graphs are dataset-equivalent.</p>
<p>This means that the named graphs in a dataset are irrelevant to determining the truth of a dataset. Therefore, arbitrary modifications of the named graphs in a graph store always yield a logically equivalent dataset, according to this semantics.</p>
- <h3 class="formal" id="f1">Formalization</h3>
- <p>Considering an entailment regime <var>E</var>, a dataset-interpretation with respect to <var>E</var> is an <var>E</var>-interpretation. Given an interpretation <var>I</var> and a dataset <var>D</var> having default graph <var>G</var> and named graphs <var>NG</var>, <var>I</var>(<var>D</var>) is true if and only if <var>I</var>(<var>G</var>) is true.</p>
-
- <h3 class="ex" id="ex1">Examples of entailment and non-entailments</h3>
- <p>Consider the following dataset:</p>
- <div class="example"><div class="example-title"><span>Example 1</span></div><pre class="example">{ :s :p :o . }
-:g1 { :a :b :c }</pre></div>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="formalization">
+ <h4 class="formal" id="f1" aria-level="3" role="heading"><span class="secno">3.1.1 </span>Formalization</h4>
+ <p>Considering an entailment regime <var>E</var>, a dataset-interpretation with respect to <var>E</var> is an <var>E</var>-interpretation. Given an interpretation <var>I</var> and a dataset <var>D</var> having default graph <var>G</var> and named graphs <var>NG</var>, <var>I</var>(<var>D</var>) is true if and only if <var>I</var>(<var>G</var>) is true.</p>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="examples-of-entailment-and-non-entailments">
+ <h4 class="ex" id="ex1" aria-level="3" role="heading"><span class="secno">3.1.2 </span>Examples of entailment and non-entailments</h4>
+ <p>Consider the following dataset:</p>
+
+ <div class="example"><div class="example-title"><span>Example 1</span></div><pre class="example">{ ex:s ex:p ex:o . }
+ex:g1 { ex:a ex:b ex:c }</pre></div>
<p>does not dataset-entail:</p>
- <div class="example"><div class="example-title"><span>Example 2</span></div><pre class="example">{ :s :p :o .
-:a :b :c .}</pre></div>
+ <div class="example"><div class="example-title"><span>Example 2</span></div><pre class="example">{ ex:s ex:p ex:o .
+ ex:a ex:b ex:c .}</pre></div>
<p>but dataset-entails:</p>
<div class="example"><div class="example-title"><span>Example 3</span></div><pre class="example">{} # empty default graph
-:g2 { :x :y :z }</pre></div>
+ex:g2 { ex:x ex:y ex:z }</pre></div>
<p>Since graph names are not particularly constrained, one can use them in triples, for instance:</p>
- <div class="example"><div class="example-title"><span>Example 4</span></div><pre class="example">{ :g1 :author :Bob .
- :g1 :created "2013-09-17"^^xsd:date .}
-:g1 { :a :b :c }</pre></div>
+ <div class="example"><div class="example-title"><span>Example 4</span></div><pre class="example">{ ex:g1 ex:author ex:Bob .
+ ex:g1 ex:created "2013-09-17"^^xsd:date .}
+ex:g1 { ex:a ex:b ex:c }</pre></div>
<p>but it would dataset-entail:</p>
- <div class="example"><div class="example-title"><span>Example 5</span></div><pre class="example">{ :g1 :author :Bob .
- :g1 :created "2013-09-17"^^xsd:date .}
-:g1 { :x :y :z }</pre></div>
+ <div class="example"><div class="example-title"><span>Example 5</span></div><pre class="example">{ ex:g1 ex:author ex:Bob .
+ ex:g1 ex:created "2013-09-17"^^xsd:date .}
+ex:g1 { ex:x ex:y ex:z }</pre></div>
+ </section>
- <h4 class="pro" id="p1" aria-level="2" role="heading">Properties of this dataset semantics</h4>
- <p>Assuming this semantics is convenient since it merely ignores named graphs in a dataset for any reasoning task. As a result, datasets can be simply treated as regular RDF graphs by extracting the default graph. Named graphs can still be used to preserve useful information, but it bears no more meaning than a commentary in a program source code.</p>
- <p>The obvious disadvantage is that, since named graphs are completely disregarded in terms of meaning, there is no guarantee that any information intended to be conveyed by the named graphs is preserved by inference.</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="properties-of-this-dataset-semantics">
+ <h4 class="pro" id="p1" aria-level="3" role="heading"><span class="secno">3.1.3 </span>Properties of this dataset semantics</h4>
+ <p>Assuming this semantics is convenient since it merely ignores named graphs in a dataset for any reasoning task. As a result, datasets can be simply treated as regular RDF graphs by extracting the default graph. Named graphs can still be used to preserve useful information, but it bears no more meaning than a commentary in a program source code.</p>
+ <p>The obvious disadvantage is that, since named graphs are completely disregarded in terms of meaning, there is no guarantee that any information intended to be conveyed by the named graphs is preserved by inference.</p>
+ </section>
</section>
<section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="default-graph-as-union-or-as-merge">
<h3 id="union" aria-level="2" role="heading"><span class="secno">3.2 </span>Default graph as union or as merge</h3>
<p>It is sometimes assumed that named graphs are simply a convenient way of sorting the triples but all the triples participate in a united knowledge base that takes the place of the default graph. More precisely, a dataset is considered to be true if all the triples in all the graphs, named or default, are true together. This description allows two formalizations of dataset semantics, depending on how blank nodes spanning several named graphs are treated. Indeed, if one blank node appears in several named graphs, it may be intentional, to indicate the existence of only one thing across the graphs, in which case union is appropriate. If the sharing of blank nodes is incidental, merge is also an applicable solution.</p>
- <h3 class="formal" id="f2-1">Formalization: first version</h3>
- <p>We define a dataset-interpretation with respect to an entailment regime <var>E</var> as an <var>E</var>-interpretation. Given a dataset-interpretation <var>I</var> and a dataset <var>D</var> having default graph <var>G</var> and named graphs <var>NG</var>, <var>I</var>(<var>D</var>) is true if and only if <var>I</var>(<var>G</var>) is true and for all <var>ng</var> in <var>NG</var>, <var>I</var>(<var>ng</var>) is true.</p>
- <p>This is equivalent to <var>I</var>(<var>D</var>) is true if <var>I</var>(<var>H</var>) is true where <var>H</var> is the <a href="http://www.w3.org/TR/rdf11-mt/#dfn-merge">merge</a> of all the RDF graphs, named or default, appearing in <var>D</var>.</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="formalization-first-version">
+ <h4 class="formal" id="f2-1" aria-level="3" role="heading"><span class="secno">3.2.1 </span>Formalization: first version</h4>
+ <p>We define a dataset-interpretation with respect to an entailment regime <var>E</var> as an <var>E</var>-interpretation. Given a dataset-interpretation <var>I</var> and a dataset <var>D</var> having default graph <var>G</var> and named graphs <var>NG</var>, <var>I</var>(<var>D</var>) is true if and only if <var>I</var>(<var>G</var>) is true and for all <var>ng</var> in <var>NG</var>, <var>I</var>(<var>ng</var>) is true.</p>
+ <p>This is equivalent to <var>I</var>(<var>D</var>) is true if <var>I</var>(<var>H</var>) is true where <var>H</var> is the <a href="http://www.w3.org/TR/rdf11-mt/#dfn-merge">merge</a> of all the RDF graphs, named or default, appearing in <var>D</var>.</p>
+ </section>
- <h3 class="formal" id="f2-2">Formalization: second version</h3>
- <p>We define a dataset-interpretation with respect to an entailment regime <var>E</var> as an <var>E</var>-interpretation. Given a dataset-interpretation <var>I</var> and a dataset <var>D</var> having default graph <var>G</var> and named graphs <var>NG</var>, <var>I</var>(<var>D</var>) is true if and only if <var>I</var>(<var>H</var>) is true where <var>H</var> is the union of all the RDF graphs, named or default, appearing in <var>D</var>.</p>
- <p>An alternative presentation of this variant is the following: define <var>I</var>+<var>A</var> to be an extended interpretation which is like <var>I</var> except that it uses <var>A</var> to give the interpretation of blank nodes; define <var>blank</var>(<var>D</var>) to be the set of blank nodes in <var>D</var>. Then <var>I</var>(<var>D</var>) is true if and only if [<var>I</var>+<var>A</var>](<var>D</var>) is true for some mapping <var>A</var> from <var>blank</var>(<var>D</var>) to the set of resources in <var>I</var>.</p>
-
- <h4 class="ex" id="e2" aria-level="2" role="heading">Examples</h4>
- <p>Consider the following dataset:</p>
- <div class="example"><div class="example-title"><span>Example 6</span></div><pre class="example">{ :s :p :o . } # default graph
-:g1 { :a :b :c }</pre></div>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="formalization-second-version">
+ <h4 class="formal" id="f2-2" aria-level="3" role="heading"><span class="secno">3.2.2 </span>Formalization: second version</h4>
+ <p>We define a dataset-interpretation with respect to an entailment regime <var>E</var> as an <var>E</var>-interpretation. Given a dataset-interpretation <var>I</var> and a dataset <var>D</var> having default graph <var>G</var> and named graphs <var>NG</var>, <var>I</var>(<var>D</var>) is true if and only if <var>I</var>(<var>H</var>) is true where <var>H</var> is the union of all the RDF graphs, named or default, appearing in <var>D</var>.</p>
+ <p>An alternative presentation of this variant is the following: define <var>I</var>+<var>A</var> to be an extended interpretation which is like <var>I</var> except that it uses <var>A</var> to give the interpretation of blank nodes; define <var>blank</var>(<var>D</var>) to be the set of blank nodes in <var>D</var>. Then <var>I</var>(<var>D</var>) is true if and only if [<var>I</var>+<var>A</var>](<var>D</var>) is true for some mapping <var>A</var> from <var>blank</var>(<var>D</var>) to the set of resources in <var>I</var>.</p>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="examples">
+ <h4 class="ex" id="e2" aria-level="3" role="heading"><span class="secno">3.2.3 </span>Examples</h4>
+ <p>Consider the following dataset:</p>
+ <div class="example"><div class="example-title"><span>Example 6</span></div><pre class="example">{ ex:s ex:p ex:o . } # default graph
+ex:g1 { ex:a ex:b ex:c }</pre></div>
<p>dataset-entails:</p>
- <div class="example"><div class="example-title"><span>Example 7</span></div><pre class="example">{ :s :p :o .
-:a :b :c .}</pre></div>
+ <div class="example"><div class="example-title"><span>Example 7</span></div><pre class="example">{ ex:s ex:p ex:o .
+ ex:a ex:b ex:c .}</pre></div>
<p>If the entailment regime <var>E</var> is RDFS with the recognized datatype <code>xsd:integer</code>, then the following RDF dataset is RDFS-dataset-inconsistent:</p>
<div class="example"><div class="example-title"><span>Example 8</span></div><pre class="example">{ } # empty default graph
-:g1 { :age rdfs:range xsd:integer . }
-:g2 { :bob :age "twenty" .}</pre></div>
-
- <h4 class="prop" id="p2">Properties of this dataset semantics</h4>
- <p>This semantics allows one to partition the triples of an RDF graph into multiple named graphs for easier data management, yet retaining the meaning of the overall RDF graph. Note that this choice of semantics does not impact the way graph names are interpreted: it is possible to further constrain the graph names to denote the RDF graph associated with it, or other possible constraints. The possible interpretations of graph names, and their consequences, are presented in the next sections.</p>
- <p>This semantics is implicitly assumed by existing graph store implementations. The OWLIM RDF database management system implements reasoning techniques over RDF datasets that materialize inferred statements into the database [[citation needed]]. This is done by taking the union of the graphs in the named graphs, applying standard entailment regimes over this RDF graph and putting the inferred triples into the default graph.</p>
- <p>This dataset semantics makes all triples in the named graphs contribute to a global knowledge, thus making the whole dataset inconsistent whenever two graphs are mutually contradictory. In situations where named graphs are used to store RDF graphs obtained from various sources on the open Web, inconsistencies or contradictions can easily occur. Notably, Web crawlers of search engines harvest all RDF documents, and it is known as a fact that the Web contains documents serializing inconsistent RDF graphs as well as documents that are mutually contradicting yet consistent on their own. In this case, this semantics can be seen as problematic.</p>
+ex:g1 { ex:age rdfs:range xsd:integer . }
+ex:g2 { ex:bob ex:age "twenty" .}</pre></div>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="properties-of-this-dataset-semantics-1">
+ <h4 class="prop" id="p2" aria-level="3" role="heading"><span class="secno">3.2.4 </span>Properties of this dataset semantics</h4>
+ <p>This semantics allows one to partition the triples of an RDF graph into multiple named graphs for easier data management, yet retaining the meaning of the overall RDF graph. Note that this choice of semantics does not impact the way graph names are interpreted: it is possible to further constrain the graph names to denote the RDF graph associated with it, or other possible constraints. The possible interpretations of graph names, and their consequences, are presented in the next sections.</p>
+ <p>This semantics is implicitly assumed by existing graph store implementations. The OWLIM RDF database management system implements reasoning techniques over RDF datasets that materialize inferred statements into the database [[citation needed]]. This is done by taking the union of the graphs in the named graphs, applying standard entailment regimes over this RDF graph and putting the inferred triples into the default graph.</p>
+ <p>This dataset semantics makes all triples in the named graphs contribute to a global knowledge, thus making the whole dataset inconsistent whenever two graphs are mutually contradictory. In situations where named graphs are used to store RDF graphs obtained from various sources on the open Web, inconsistencies or contradictions can easily occur. Notably, Web crawlers of search engines harvest all RDF documents, and it is known as a fact that the Web contains documents serializing inconsistent RDF graphs as well as documents that are mutually contradicting yet consistent on their own. In this case, this semantics can be seen as problematic.</p>
+ </section>
</section>
<section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="the-graph-name-denotes-the-named-graph-or-the-graph">
<h3 id="naming" aria-level="2" role="heading"><span class="secno">3.3 </span>The graph name denotes the named graph or the graph</h3>
<p>It is common to use the graph name as a way to identify the RDF graph inside the named graphs, or rather, to identify a particular occurrence of the graph. This allows one to describe the graph or the graph source in triples. For instance, one may want to say who the creator of a particular occurrence of a graph is. Assuming this semantics for graph names amounts to say that each named graph pair is an assertion that sets the <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-referent">referent</a> of the graph name to be the associated graph or named graph pair.</p>
- <p>Intuitively, this semantics can be seen as quoting the RDF graphs inside the named graphs. In this sense, <code>:alice {:bob :is :smart}</code> has to be understood as <q>Alice said: “Bob is smart”</q> which does not entail <q>Alice said: “Bob is intelligent”</q> because Alice did not use the word “intelligent”, even though “smart” and “intelligent” can be understood as equivalent. Note, however, that this analogy is only valid insofar as it can provide an intuition of this type of semantics, but the formalization does not actually refer to speech and the act of asserting.</p>
+ <p>Intuitively, this semantics can be seen as quoting the RDF graphs inside the named graphs. In this sense, <code>ex:alice {ex:bob ex:is ex:smart}</code> has to be understood as <q>Alice said: “Bob is smart”</q> which does not entail <q>Alice said: “Bob is intelligent”</q> because Alice did not use the word “intelligent”, even though “smart” and “intelligent” can be understood as equivalent. Note, however, that this analogy is only valid insofar as it can provide an intuition of this type of semantics, but the formalization does not actually refer to speech and the act of asserting.</p>
- <h3 class="formal" id="f3">Formalization</h3>
- <p>In order to be consistent with RDF model theory, blank nodes used as graph names are treated like existential variables. Consequently, their semantics is formalized according to the same notation presented in [<cite><a class="bibref" href="#bib-RDF11-MT">RDF11-MT</a></cite>]:</p>
- <blockquote cite="http://www.w3.org/TR/2014/REC-rdf11-mt-20140225/#blank-nodes">Suppose I is an interpretation and A is a mapping from a set of blank nodes to the universe IR of I. Define the mapping [I+A] to be I on names, and A on blank nodes on the set: [I+A](x)=I(x) when x is a name and [I+A](x)=A(x) when x is a blank node; and extend this mapping to triples and RDF graphs using the rules given above for ground graphs.</blockquote>
- <p>A dataset-interpretation <var>I</var> with respect to an entailment regime <var>E</var> is an <var>E</var>-interpretation extended to named graphs and datasets as follows:</p>
- <ul><li>if (<var>n</var>,<var>g</var>) is a named graph where the graph name is an IRI, then <var>I</var>(<var>n</var>,<var>g</var>) is true if and only if <var>I</var>(<var>n</var>) = (<var>n</var>,<var>g</var>).
- </li><li>if <var>D</var> is a dataset comprising default graph <var>DG</var> and named graphs <var>NG</var>, then <var>I</var>(<var>D</var>) is true if and only if there exists a mapping from blank nodes to the universe <var>IR</var> of <var>I</var> such that [<var>I</var>+<var>A</var>](<var>DG</var>) is true and for all named graph (<var>n</var>,<var>g</var>) in <var>NG</var>, [<var>I</var>+<var>A</var>](<var>n</var>) = (<var>n</var>,<var>g</var>).</li>
- </ul>
-
- <h3 class="ex" id="ex3">Examples</h3>
- <p>Consider the following dataset:</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="formalization-1">
+ <h4 class="formal" id="f3" aria-level="3" role="heading"><span class="secno">3.3.1 </span>Formalization</h4>
+ <p>In order to be consistent with RDF model theory, blank nodes used as graph names are treated like existential variables. Consequently, their semantics is formalized according to the same notation presented in [<cite><a class="bibref" href="#bib-RDF11-MT">RDF11-MT</a></cite>]:</p>
+ <blockquote cite="http://www.w3.org/TR/2014/REC-rdf11-mt-20140225/#blank-nodes">Suppose I is an interpretation and A is a mapping from a set of blank nodes to the universe IR of I. Define the mapping [I+A] to be I on names, and A on blank nodes on the set: [I+A](x)=I(x) when x is a name and [I+A](x)=A(x) when x is a blank node; and extend this mapping to triples and RDF graphs using the rules given above for ground graphs.</blockquote>
+ <p>A dataset-interpretation <var>I</var> with respect to an entailment regime <var>E</var> is an <var>E</var>-interpretation extended to named graphs and datasets as follows:</p>
+ <ul><li>if (<var>n</var>,<var>g</var>) is a named graph where the graph name is an IRI, then <var>I</var>(<var>n</var>,<var>g</var>) is true if and only if <var>I</var>(<var>n</var>) = (<var>n</var>,<var>g</var>).
+ </li><li>if <var>D</var> is a dataset comprising default graph <var>DG</var> and named graphs <var>NG</var>, then <var>I</var>(<var>D</var>) is true if and only if there exists a mapping from blank nodes to the universe <var>IR</var> of <var>I</var> such that [<var>I</var>+<var>A</var>](<var>DG</var>) is true and for all named graph (<var>n</var>,<var>g</var>) in <var>NG</var>, [<var>I</var>+<var>A</var>](<var>n</var>) = (<var>n</var>,<var>g</var>).</li>
+ </ul>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="examples-1">
+ <h4 class="ex" id="ex3" aria-level="3" role="heading"><span class="secno">3.3.2 </span>Examples</h4>
+ <p>Consider the following dataset:</p>
<div class="example"><div class="example-title"><span>Example 9</span></div><pre class="example">{ } # empty default graph
-:g1 { :a :b :c }
-:g2 { :x :y :z }</pre></div>
+ex:g1 { ex:a ex:b ex:c }
+ex:g2 { ex:x ex:y ex:z }</pre></div>
<p>dataset-entails:</p>
<div class="example"><div class="example-title"><span>Example 10</span></div><pre class="example">{ }
-_:b { :a :b :c }
-:g2 { :x :y :z }</pre></div>
+_:b { ex:a ex:b ex:c }
+ex:g2 { ex:x ex:y ex:z }</pre></div>
<p>but does not dataset-entail:</p>
<div class="example"><div class="example-title"><span>Example 11</span></div><pre class="example">{ }
-:g1 { [] :b :c }
-:g2 { :x :y :z }</pre></div>
+ex:g1 { [] ex:b ex:c }
+ex:g2 { ex:x ex:y ex:z }</pre></div>
<p>nor:</p>
<div class="example"><div class="example-title"><span>Example 12</span></div><pre class="example">{ }
-:g1 { }</pre></div>
- <p>If the entailment regime <var>E</var> is RDFS with the recognized datatype <code>xsd:integer</code>, then the following RDF dataset is RDFS-dataset-inconsistent:</p>
- <div class="example"><div class="example-title"><span>Example 13</span></div><pre class="example">{ :age rdfs:range xsd:integer .
-:me :age :g1 . } # default graph
-:g1 { :s :p :o }</pre></div>
- <p>The graph name can be used in triples to attached metadata (here <code>:hasNextVersion</code> is a custom term that does not enforce a formal constraint, so it is up to the implementation to decide how to treat it):</p>
- <div class="example"><div class="example-title"><span>Example 14</span></div><pre class="example">{ :g1 :published "2013-08-26"^^xsd:date .
- :g1 :hasNextVersion :g2 .}
-:g1 { :s1 :p1 :o1 .
- :s2 :p2 :o2 }
-:g2 { :s1 :p1 :o1 }</pre></div>
+ex:g1 { }</pre></div>
+ <p>If the entailment regime <var>E</var> is RDFS with the recognized datatype <code>xsd:integer</code>, then the following RDF dataset is RDFS-dataset-inconsistent:</p>
+ <div class="example"><div class="example-title"><span>Example 13</span></div><pre class="example">{ ex:age rdfs:range xsd:integer .
+ ex:me ex:age ex:g1 . } # default graph
+ex:g1 { ex:s ex:p ex:o }</pre></div>
+ <p>The graph name can be used in triples to attached metadata (here <code>ex:hasNextVersion</code> is a custom term that does not enforce a formal constraint, so it is up to the implementation to decide how to treat it):</p>
+ <div class="example"><div class="example-title"><span>Example 14</span></div><pre class="example">{ ex:g1 ex:published "2013-08-26"^^xsd:date .
+ ex:g1 ex:hasNextVersion ex:g2 .}
+ex:g1 { ex:s1 ex:p1 ex:o1 .
+ ex:s2 ex:p2 ex:o2 }
+ex:g2 { ex:s1 ex:p1 ex:o1 }</pre></div>
+ </section>
- <h4 class="prop" id="p3" aria-level="2" role="heading">Properties of this dataset semantics</h4>
- <p>There are important implications with this semantics. In this case, a named graph pair can only entail itself or a graph that is structurally equivalent if the graph name is a blank node. Graph names have to be handled almost like literals. Unlike other IRIs or blank nodes, their denotation is strictly fixed, like literals are. This means that graph IRIs may possibly clash with constraints on datatypes, as in the example above.</p>
- <p>A variant of this dataset semantics imposes that the graph name denotes the RDF graph itself, rather than the pair. This means that two occurrences of the same graph in different named graph pairs actually identify the same thing. Thus, the graph names associated with the same RDF graphs are interchangeable in any triple in this case.</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="properties-of-this-dataset-semantics-2">
+ <h4 class="prop" id="p3" aria-level="3" role="heading"><span class="secno">3.3.3 </span>Properties of this dataset semantics</h4>
+ <p>There are important implications with this semantics. In this case, a named graph pair can only entail itself or a graph that is structurally equivalent if the graph name is a blank node. Graph names have to be handled almost like literals. Unlike other IRIs or blank nodes, their denotation is strictly fixed, like literals are. This means that graph IRIs may possibly clash with constraints on datatypes, as in the example above.</p>
+ <p>A variant of this dataset semantics imposes that the graph name denotes the RDF graph itself, rather than the pair. This means that two occurrences of the same graph in different named graph pairs actually identify the same thing. Thus, the graph names associated with the same RDF graphs are interchangeable in any triple in this case.</p>
+ </section>
</section>
<section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="each-named-graph-defines-its-own-context">
<h3 id="context" aria-level="2" role="heading"><span class="secno">3.4 </span>Each named graph defines its own context</h3>
<p>Named graphs in RDF datasets are sometimes used to delimit a context in which the triples of the named graphs are true. From the truth of these triples according to the graph semantics, follows the truth of the named graph pair. An example of such situation occurs when one wants to keep track of the evolution of facts with time. Another example is when one wants to allow different viewpoints to be expressed and reasoned with, without creating a conflict or inconsistency. By having inferences done at the named graph level, one can prevent for instance that triples coming from untrusted parties are influencing trusted knowledge. Yet it does not disallow reasoning with and drawing conclusions from untrusted information.</p>
- <p>Intuitively, this semantics can be seen as interpreting the RDF graphs inside the named graphs. In this sense, <code>:alice {:bob :is :smart}</code> has to be understood as <q>Alice said that Bob is smart</q> which entails <q>Alice said that Bob is intelligent</q> because it is what Bob means, whether he used the term “smart”, “intelligent”, or “bright”. Neither sentence implies that Alice used these actual words.</p>
+ <p>Intuitively, this semantics can be seen as interpreting the RDF graphs inside the named graphs. In this sense, <code>ex:alice {ex:bob ex:is ex:smart}</code> has to be understood as <q>Alice said that Bob is smart</q> which entails <q>Alice said that Bob is intelligent</q> because it is what Bob means, whether he used the term “smart”, “intelligent”, or “bright”. Neither sentence implies that Alice used these actual words.</p>
- <h3 class="formal" id="f4">Formalization</h3>
- <p>There are several possible formalizations of this leading to similar entailments. One way is to interpret the graph name as denoting a graph, and a named graph pair is true if this graph entails the graph inside the pair. In this case, a dataset-interpretation with respect to an entailment regime <var>E</var> is an <var>E</var>-interpretation such that:</p>
- <ul>
- <li>given a mapping <var>A</var> from blank nodes to the univers <var>IR</var> and a named graph pair <var>ng</var> = (<var>n</var>,<var>G</var>), [<var>I</var>+<var>A</var>](<var>ng</var>) is true if [<var>I</var>+<var>A</var>](<var>n</var>) is an RDF graph and <var>E</var>-entails <var>G</var>;</li>
- <li>for a dataset <var>D</var> = (<var>DG</var>,<var>NG</var>), <var>I</var>(<var>D</var>) is true if there exists a mapping <var>A</var> from blank nodes to the universe <var>IR</var> such that [<var>I</var>+<var>A</var>](<var>DG</var>) is true and for all named graph <var>ng</var> in <var>NG</var>, [<var>I</var>+<var>A</var>](<var>ng</var>) is true;
- </li><li><var>I</var>(<var>D</var>) is false otherwise.</li>
- </ul>
-
- <h3 class="ex" id="ex4">Examples</h3>
- <p>Consider the following dataset:</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="formalization-2">
+ <h4 class="formal" id="f4" aria-level="3" role="heading"><span class="secno">3.4.1 </span>Formalization</h4>
+ <p>There are several possible formalizations of this leading to similar entailments. One way is to interpret the graph name as denoting a graph, and a named graph pair is true if this graph entails the graph inside the pair. In this case, a dataset-interpretation with respect to an entailment regime <var>E</var> is an <var>E</var>-interpretation such that:</p>
+ <ul>
+ <li>given a mapping <var>A</var> from blank nodes to the univers <var>IR</var> and a named graph pair <var>ng</var> = (<var>n</var>,<var>G</var>), [<var>I</var>+<var>A</var>](<var>ng</var>) is true if [<var>I</var>+<var>A</var>](<var>n</var>) is an RDF graph and <var>E</var>-entails <var>G</var>;</li>
+ <li>for a dataset <var>D</var> = (<var>DG</var>,<var>NG</var>), <var>I</var>(<var>D</var>) is true if there exists a mapping <var>A</var> from blank nodes to the universe <var>IR</var> such that [<var>I</var>+<var>A</var>](<var>DG</var>) is true and for all named graph <var>ng</var> in <var>NG</var>, [<var>I</var>+<var>A</var>](<var>ng</var>) is true;
+ </li><li><var>I</var>(<var>D</var>) is false otherwise.</li>
+ </ul>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="examples-2">
+ <h4 class="ex" id="ex4" aria-level="3" role="heading"><span class="secno">3.4.2 </span>Examples</h4>
+ <p>Consider the following dataset:</p>
<div class="example"><div class="example-title"><span>Example 15</span></div><pre class="example">{ } # empty default graph
-:g1 { :YoutubeEmployee rdfs:subClassOf :GoogleEmployee .
-:steveChen rdf:type :YoutubeEmployee . }
-:g2 { :chadHurley rdf:type :YoutubeEmployee }</pre></div>
+ex:g1 { ex:YoutubeEmployee rdfs:subClassOf ex:GoogleEmployee .
+ ex:steveChen rdf:type ex:YoutubeEmployee . }
+ex:g2 { ex:chadHurley rdf:type ex:YoutubeEmployee }</pre></div>
<p>RDFS-dataset-entails:</p>
<div class="example"><div class="example-title"><span>Example 16</span></div><pre class="example">{ }
-:g1 { :steveChen rdf:type :GoogleEmployee }</pre></div>
+ex:g1 { ex:steveChen rdf:type ex:GoogleEmployee }</pre></div>
<p>but does not RDFS-dataset-entail:</p>
<div class="example"><div class="example-title"><span>Example 17</span></div><pre class="example">{ }
-:g2 { :chadHurley rdf:type :GoogleEmployee }</pre></div>
+ex:g2 { ex:chadHurley rdf:type ex:GoogleEmployee }</pre></div>
<p>Graph names used in triples that express metadata do not necessarily generate inconsistency:</p>
- <div class="example"><div class="example-title"><span>Example 18</span></div><pre class="example">{ :g1 :validAfter "2006"^^xsd:gYear .
- :g1 :published "2013-08-26"^^xsd:date .
- :g2 :validAt "2005"^^:xsd:gYear .}
-:g1 { :YoutubeEmployee rdfs:subClassOf :GoogleEmployee .
-:steveChen rdf:type :YoutubeEmployee . }
-:g2 { :chadHurley rdf:type :YoutubeEmployee }</pre></div>
- <p>(here, <code>:validAfter</code> and <code>:validAt</code> are custom terms that do not enforce a formal constraint, but may be used internally for, e.g., checking the temporal validity of triples in the named graph).</p>
-
- <h4 class="prop" id="p4" aria-level="2" role="heading">Properties of this dataset semantics</h4>
- <p>This semantics assumes that the truth of named graphs is preserved when replacing the RDF graphs inside named graphs with equivalent graphs. This means in particular, that one can normalize literals and still preserve the truth of a named graph. This means too that standard RDF inferences that can be drawn from the RDF graphs inside named graphs can be added to the graph associated with the graph name without impacting the truth of the RDF dataset.</p>
- <p>While this semantics does not guarantee that reasoning with RDF datasets will preserve the exact triples of an original dataset, it is semantically valid to store both the original and any entailed datasets.</p>
- <p>An example implementation of such a context-based semantics is Sindice [<cite><a class="bibref" href="#bib-DELBRU-ET-AL-2008">DELBRU-ET-AL-2008</a></cite>].</p>
+ <div class="example"><div class="example-title"><span>Example 18</span></div><pre class="example">{ ex:g1 ex:validAfter "2006"^^xsd:gYear .
+ ex:g1 ex:published "2013-08-26"^^xsd:date .
+ ex:g2 ex:validAt "2005"^^xsd:gYear .}
+ex:g1 { ex:YoutubeEmployee rdfs:subClassOf ex:GoogleEmployee .
+ ex:steveChen rdf:type ex:YoutubeEmployee . }
+ex:g2 { ex:chadHurley rdf:type ex:YoutubeEmployee }</pre></div>
+ <p>(here, <code>ex:validAfter</code> and <code>ex:validAt</code> are custom terms that do not enforce a formal constraint, but may be used internally for, e.g., checking the temporal validity of triples in the named graph).</p>
+ </section>
- <h4 class="other" id="v4">Variants of this dataset semantics</h4>
- <p>There are several variants of this type of dataset-semantics</p>
- <ul>
- <li>The default graph is interpreted as universal truth, that is, for a named graph (<var>n</var>,<var>G</var>), <var>I</var>(<var>n</var>) <var>E</var>-entails the default graph.</li>
- <li>The graph name does not denote an RDF graph but a resource associated with an RDF graph.</li>
- <li>Each named graph could be associated with a distinct <var>E</var>-interpretation and impose all interpretations to be true for their corresponding graph, in order for the dataset to be true.</li>
- </ul>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="properties-of-this-dataset-semantics-3">
+ <h4 class="prop" id="p4" aria-level="3" role="heading"><span class="secno">3.4.3 </span>Properties of this dataset semantics</h4>
+ <p>This semantics assumes that the truth of named graphs is preserved when replacing the RDF graphs inside named graphs with equivalent graphs. This means in particular, that one can normalize literals and still preserve the truth of a named graph. This means too that standard RDF inferences that can be drawn from the RDF graphs inside named graphs can be added to the graph associated with the graph name without impacting the truth of the RDF dataset.</p>
+ <p>While this semantics does not guarantee that reasoning with RDF datasets will preserve the exact triples of an original dataset, it is semantically valid to store both the original and any entailed datasets.</p>
+ <p>An example implementation of such a context-based semantics is Sindice [<cite><a class="bibref" href="#bib-DELBRU-ET-AL-2008">DELBRU-ET-AL-2008</a></cite>].</p>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="variants-of-this-dataset-semantics">
+ <h4 class="other" id="v4" aria-level="3" role="heading"><span class="secno">3.4.4 </span>Variants of this dataset semantics</h4>
+ <p>There are several variants of this type of dataset-semantics</p>
+ <ul>
+ <li>The default graph is interpreted as universal truth, that is, for a named graph (<var>n</var>,<var>G</var>), <var>I</var>(<var>n</var>) <var>E</var>-entails the default graph.</li>
+ <li>The graph name does not denote an RDF graph but a resource associated with an RDF graph.</li>
+ <li>Each named graph could be associated with a distinct <var>E</var>-interpretation and impose all interpretations to be true for their corresponding graph, in order for the dataset to be true.</li>
+ </ul>
+ </section>
</section>
<section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="named-graph-are-in-a-particular-relationship-with-what-the-graph-name-dereferences-to">
@@ -576,21 +626,27 @@
<p>In accordance with linked data principles, IRIs may be assumed to reference the document that is obtained by dereferencing it. If the document contains an RDF graph it can be assumed that the graph in the named graph is in a special relationship (such as, equals, entails) with this RDF graph.</p>
<p>In such case, the truth of an RDF dataset is dependent on the state of the Web, and the same dataset may entail different statements at different times.</p>
- <h3 class="formal" id="hbox">Formalization</h3>
- <p>Let <var>d</var> be the function that maps an IRI to an RDF graph that can be obtained from dereferencing the IRI. For an IRI <var>u</var>, <var>d</var>(<var>u</var>) is empty when dereferencing returns an error or a document that does not encode an RDF graph.</p>
- <p>A dataset-interpretation <var>I</var> with respect to an entailment regime <var>E</var> is an <var>E</var>-interpretation such that:</p>
- <ul>
- <li>for a named graph pair <var>ng</var> = (<var>n</var>,<var>G</var>), <var>I</var>(<var>ng</var>) is true if <var>d</var>(<var>n</var>) equals (respectively, is a subgraph of, is entailed by) <var>G</var>;</li>
- <li>for a dataset <var>D</var> = (<var>DG</var>,<var>NG</var>), <var>I</var>(<var>D</var>) is true if <var>I</var>(<var>DG</var>) is true and for all named graph <var>ng</var> in <var>NG</var>, <var>I</var>(<var>ng</var>) is true;
- </li><li><var>I</var>(<var>D</var>) is false otherwise.</li>
- </ul>
-
- <h3 class="ex" id="exbox">Examples</h3>
- <p>Entailments in this semantics depend not only on the content of a dataset but also on the content of the Web and the ability of a reasoner to accept this content. Moreover, the entailments vary whether the considered relation is “equals”, or “subgraph of”, or “entailed by”.</p>
- <p>For instance, if the reasoner is offline, then the dereferencing function <var>d</var> in the previous definition always return an empty graph. In this case, if the relation is “equals” or “subgraph of”, only empty named graphs can be true; if the relation is “entails by”, then only named graphs containing axiomatic triples are true. In general, if the relationship is “equals”, named graph do not provide extra entailments.</p>
-
- <h4 class="prop" id="pbox" aria-level="2" role="heading">Properties of this dataset semantics</h4>
- <p>The distinguishing characteristic of this dataset semantics is the fact that a single RDF dataset can lead to different entailments, depending on the state of the Web. This can be seen as a feature for systems that need to be in line with what is found online, but is a drawback for systems that must retain consistency even when they go offline.</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="formalization-3">
+ <h4 class="formal" id="hbox" aria-level="3" role="heading"><span class="secno">3.5.1 </span>Formalization</h4>
+ <p>Let <var>d</var> be the function that maps an IRI to an RDF graph that can be obtained from dereferencing the IRI. For an IRI <var>u</var>, <var>d</var>(<var>u</var>) is empty when dereferencing returns an error or a document that does not encode an RDF graph.</p>
+ <p>A dataset-interpretation <var>I</var> with respect to an entailment regime <var>E</var> is an <var>E</var>-interpretation such that:</p>
+ <ul>
+ <li>for a named graph pair <var>ng</var> = (<var>n</var>,<var>G</var>), <var>I</var>(<var>ng</var>) is true if <var>d</var>(<var>n</var>) equals (respectively, is a subgraph of, is entailed by) <var>G</var>;</li>
+ <li>for a dataset <var>D</var> = (<var>DG</var>,<var>NG</var>), <var>I</var>(<var>D</var>) is true if <var>I</var>(<var>DG</var>) is true and for all named graph <var>ng</var> in <var>NG</var>, <var>I</var>(<var>ng</var>) is true;
+ </li><li><var>I</var>(<var>D</var>) is false otherwise.</li>
+ </ul>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="examples-3">
+ <h4 class="ex" id="exbox" aria-level="3" role="heading"><span class="secno">3.5.2 </span>Examples</h4>
+ <p>Entailments in this semantics depend not only on the content of a dataset but also on the content of the Web and the ability of a reasoner to accept this content. Moreover, the entailments vary whether the considered relation is “equals”, or “subgraph of”, or “entailed by”.</p>
+ <p>For instance, if the reasoner is offline, then the dereferencing function <var>d</var> in the previous definition always return an empty graph. In this case, if the relation is “equals” or “subgraph of”, only empty named graphs can be true; if the relation is “entails by”, then only named graphs containing axiomatic triples are true. In general, if the relationship is “equals”, named graph do not provide extra entailments.</p>
+ </section>
+
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="properties-of-this-dataset-semantics-4">
+ <h4 class="prop" id="pbox" aria-level="3" role="heading"><span class="secno">3.5.3 </span>Properties of this dataset semantics</h4>
+ <p>The distinguishing characteristic of this dataset semantics is the fact that a single RDF dataset can lead to different entailments, depending on the state of the Web. This can be seen as a feature for systems that need to be in line with what is found online, but is a drawback for systems that must retain consistency even when they go offline.</p>
+ </section>
</section>
@@ -609,25 +665,29 @@
<p>This approach consists in considering named graph as sets of quadruples, having the subject, predicate and object of the triples as first three components, and the graph IRI as the fourth element. Each quadruple is interpreted similarly to a triple in RDF, except that the relation that the predicate denotes is not indicating a binary relation but a ternary relation.</p>
<p>This semantics is extending the semantics of RDF rather than simply reusing it.</p>
- <h3 class="formal" id="f5">Formalization</h3>
- <p>A quad-interpretation is a tuple (<var>IR</var>,<var>IP</var>,<var>IEXT</var>,<var>IS</var>,<var>IL</var>,<var>LV</var>) where <var>IR</var>, <var>IP</var>, <var>IS</var>, <var>IL</var> and <var>LV</var> are defined as in RDF and <var>IEXT</var> is a mapping from <var>IP</var> into the powerset of <var>IR</var> × <var>IR</var> union <var>IR</var> × <var>IR</var> × <var>IR</var>.</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="formalization-4">
+ <h4 class="formal" id="f5" aria-level="3" role="heading"><span class="secno">3.6.1 </span>Formalization</h4>
+ <p>A quad-interpretation is a tuple (<var>IR</var>,<var>IP</var>,<var>IEXT</var>,<var>IS</var>,<var>IL</var>,<var>LV</var>) where <var>IR</var>, <var>IP</var>, <var>IS</var>, <var>IL</var> and <var>LV</var> are defined as in RDF and <var>IEXT</var> is a mapping from <var>IP</var> into the powerset of <var>IR</var> × <var>IR</var> union <var>IR</var> × <var>IR</var> × <var>IR</var>.</p>
- <p>Since this option modifies the notion of simple-interpretation, which is the basis for all <var>E</var>-interpretations in any entailment regime E, it is not clear how it can be extended to arbitrary entailment regimes. For instance, does the following quad set:</p>
- <div class="example"><div class="example-title"><span>Example 19</span></div><pre class="example">:a rdf:type :c :x .
-:c rdfs:subClassOf :d :x .</pre></div>
+ <p>Since this option modifies the notion of simple-interpretation, which is the basis for all <var>E</var>-interpretations in any entailment regime E, it is not clear how it can be extended to arbitrary entailment regimes. For instance, does the following quad set:</p>
+ <div class="example"><div class="example-title"><span>Example 19</span></div><pre class="example">ex:a rdf:type ex:c ex:x .
+ex:c rdfs:subClassOf ex:d ex:x .</pre></div>
<p>RDFS-dataset-entails:</p>
- <div class="example"><div class="example-title"><span>Example 20</span></div><pre class="example">:a rdf:type :d :x .</pre></div>
+ <div class="example"><div class="example-title"><span>Example 20</span></div><pre class="example">ex:a rdf:type ex:d ex:x .</pre></div>
+ </section>
- <h3 class="prop" id="p5">Properties of this dataset semantics</h3>
- <p>With this semantics, all inferences that are valid with normal RDF triples are preserved, but it is necessary to extend RDFS in order to accommodate for ternary relations. There are several existing proposals that extend this quad semantics by dealing with a specific “dimension”, such as time, uncertainty, provenance. For instance, temporal RDF [<cite><a class="bibref" href="#bib-TEMPORAL-RDF">TEMPORAL-RDF</a></cite>] uses the fourth element to denote a time frame and thus allow reasoning to be performed per time frame. Special semantic rules allow one to combine triples in overlapping time frames. Fuzzy RDF [<cite><a class="bibref" href="#bib-FUZZY-RDF">FUZZY-RDF</a></cite>] extends the semantics to deal with uncertainty. stRDF [<cite><a class="bibref" href="#bib-ST-RDF">ST-RDF</a></cite>] extends temporal RDF to deal with spatial information. Annotated RDF [<cite><a class="bibref" href="#bib-ANNOTATED-RDF">ANNOTATED-RDF</a></cite>] generalizes the previous proposals.</p>
+ <section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="properties-of-this-dataset-semantics-5">
+ <h4 class="prop" id="p5" aria-level="3" role="heading"><span class="secno">3.6.2 </span>Properties of this dataset semantics</h4>
+ <p>With this semantics, all inferences that are valid with normal RDF triples are preserved, but it is necessary to extend RDFS in order to accommodate for ternary relations. There are several existing proposals that extend this quad semantics by dealing with a specific “dimension”, such as time, uncertainty, provenance. For instance, temporal RDF [<cite><a class="bibref" href="#bib-TEMPORAL-RDF">TEMPORAL-RDF</a></cite>] uses the fourth element to denote a time frame and thus allow reasoning to be performed per time frame. Special semantic rules allow one to combine triples in overlapping time frames. Fuzzy RDF [<cite><a class="bibref" href="#bib-FUZZY-RDF">FUZZY-RDF</a></cite>] extends the semantics to deal with uncertainty. stRDF [<cite><a class="bibref" href="#bib-ST-RDF">ST-RDF</a></cite>] extends temporal RDF to deal with spatial information. Annotated RDF [<cite><a class="bibref" href="#bib-ANNOTATED-RDF">ANNOTATED-RDF</a></cite>] generalizes the previous proposals.</p>
+ </section>
</section>
<section typeof="bibo:Chapter" resource="#ref" rel="bibo:Chapter" id="quoted-graphs">
<h3 id="quote" aria-level="2" role="heading"><span class="secno">3.7 </span>Quoted graphs</h3>
<p>Quoted graphs are a way to associate information to a specific RDF graph without constraining the relationship between a graph name and the graph associated with it in a dataset. An RDF graph is “quoted” by using a literal having a lexical form that is a syntactic expression of the graph. For instance:</p>
- <div class="example"><div class="example-title"><span>Example 21</span></div><pre class="example">{ :g :quotes ":a :b []"^^:turtle . }
-:g { :b rdf:type rdf:Property .
- :a :b _:x . }</pre></div>
+ <div class="example"><div class="example-title"><span>Example 21</span></div><pre class="example">{ ex:g ex:quotes "ex:a ex:b []"^^ex:turtle . }
+ex:g { ex:b rdf:type rdfex:Property .
+ ex:a ex:b _:x . }</pre></div>
<p>This technique allows one to assume a dataset semantics of contexts (as in Section 3.4) and still preserve an initial version of a graph. However, quoting big graphs may be cumbersome and would require a custom datatype to be recognized.</p>
</section>
@@ -637,17 +697,17 @@
<p>There is a strong relationship between SPARQL ASK queries with an entailment regime [<cite><a class="bibref" href="#bib-SPARQL11-ENTAILMENT">SPARQL11-ENTAILMENT</a></cite>] and inferences in the regime. If an ASK query does not contain variables and its WHERE clause only contains a basic graph pattern, then the query can be seen as an RDF graph. If such a graph query <var>Q</var> returns <code>true</code> when issued against an RDF graph <var>G</var> with entailment regime <var>E</var>, then <var>G</var> <var>E</var>-entails <var>Q</var>. If it returns <code>false</code>, then <var>G</var> does not <var>E</var>-entail <var>Q</var>.</p>
<p>A dataset semantics can also be compared to what ASK queries return when they do not contain variables but may contain basic graph patterns or graph graph patterns. For instance, consider the dataset:</p>
<div class="example"><div class="example-title"><span>Example 22</span></div><pre class="example">{ }
-:g1 { :x rdf:type :c .
- :c rdfs:subClassOf :d . }
-:g2 { :y rdf:type :c . }</pre></div>
+ex:g1 { ex:x rdf:type ex:c .
+ ex:c rdfs:subClassOf ex:d . }
+ex:g2 { ex:y rdf:type ex:c . }</pre></div>
<p>Then the query:</p>
<div class="example"><div class="example-title"><span>Example 23</span></div><pre class="example">ASK WHERE {
- GRAPH :g1 { :x rdf:type :d }
+ GRAPH ex:g1 { ex:x rdf:type ex:d }
}</pre></div>
<p>with RDFS entailment regime would answer <code>true</code>, but the query:</p>
<div class="example"><div class="example-title"><span>Example 24</span></div><pre class="example">ASK WHERE {
- GRAPH :g1 { :x rdf:type :d }
- GRAPH :g2 { :y rdf:type :d }
+ GRAPH ex:g1 { ex:x rdf:type ex:d }
+ GRAPH ex:g2 { ex:y rdf:type ex:d }
}</pre></div>
<p>would answer <code>false</code>.</p>
<p>This can lead to a classification of dataset semantics in terms of whether they are compatible with SPARQL ASK queries or not. It can be noted that a semantics where each named graph defines its own context is “SPARQL-ASK-compatible”, while a semantics where the graph name denotes the graph or named graph is not compatible in this sense.</p>
@@ -697,6 +757,8 @@
<!--OddPage-->
<h2 aria-level="1" role="heading" id="h2_changes"><span class="secno">B. </span>Changes since the first public working draft of 17 December 2013</h2>
<ul>
+ <li>2014-02-21: Fixed wrong style for some section titles.</li>
+ <li>2014-02-21: Defined prefixes and updated TriG examples.</li>
<li>2014-02-19: Updated references to [<cite><a class="bibref" href="#bib-SPARQL11-QUERY">SPARQL11-QUERY</a></cite>].</li>
<li>2014-02-19: Removed Issue 2, adding support for blank nodes in the formalization of the semantics.</li>
<li>2014-02-19: Removed Issue 1 and added a sentence to mitigate the issue.</li>
@@ -723,5 +785,6 @@
</dd><dt id="bib-SPARQL11-SERVICE-DESCRIPTION">[SPARQL11-SERVICE-DESCRIPTION]</dt><dd rel="dcterms:references">Gregory Williams. <a href="http://www.w3.org/TR/sparql11-service-description/"><cite>SPARQL 1.1 Service Description</cite></a>. 21 March 2013. W3C Recommendation. URL: <a href="http://www.w3.org/TR/sparql11-service-description/">http://www.w3.org/TR/sparql11-service-description/</a>
</dd><dt id="bib-ST-RDF">[ST-RDF]</dt><dd rel="dcterms:references">Manolis Koubarakis, Kostis Kyzirakos. <cite>Modeling and Querying Metadata in the Semantic Sensor Web: The Model stRDF and the Query Language stSPARQL.</cite> In The Semantic Web: Research and Applications, 7th Extended Semantic Web Conference, ESWC 2010, Heraklion, Crete, Greece, May 30 - June 3, 2010, Proceedings, Part I. Springer, LNCS 6088, pp. 425-439.
</dd><dt id="bib-TEMPORAL-RDF">[TEMPORAL-RDF]</dt><dd rel="dcterms:references">Claudio Gutiérrez, Carlos A. Hurtado, Alejandro A. Vaisman. <cite>Temporal RDF.</cite> In The Semantic Web: Research and Applications, Second European Semantic Web Conference, ESWC 2005, Heraklion, Crete, Greece, May 29 - June 1, 2005, Proceedings. Springer, LNCS 3532, pp. 93-107
+</dd><dt id="bib-TRIG">[TRIG]</dt><dd rel="dcterms:references">Gavin Carothers, Andy Seaborne. <cite><a href="http://www.w3.org/TR/2014/REC-trig-20140225/">TriG: RDF Dataset Language</a></cite>. W3C Recommendation, 25 February 2014. URL: <a href="http://www.w3.org/TR/2014/REC-trig-20140225/">http://www.w3.org/TR/2014/REC-trig-20140225/</a>. The latest edition is available at <a href="http://www.w3.org/TR/trig/">http://www.w3.org/TR/trig/</a>
</dd><dt id="bib-VOID">[VOID]</dt><dd rel="dcterms:references">Keith Alexander; Richard Cyganiak; Michael Hausenblas; Jun Zhao. <a href="http://www.w3.org/TR/void/"><cite>Describing Linked Datasets with the VoID Vocabulary</cite></a>. 3 March 2011. W3C Note. URL: <a href="http://www.w3.org/TR/void/">http://www.w3.org/TR/void/</a>
</dd></dl></section></section></body></html>
\ No newline at end of file