numerous changes, see change log section; plus various editorial changes
authorRichard Cyganiak <richard@cyganiak.de>
Sat, 17 Nov 2012 21:27:05 +0000
changeset 545 41dcedd4735c
parent 541 0a3b11bad202
child 546 80e3eb4fca3c
numerous changes, see change log section; plus various editorial changes
rdf-concepts/index.html
--- a/rdf-concepts/index.html	Tue Nov 13 14:53:57 2012 +0000
+++ b/rdf-concepts/index.html	Sat Nov 17 21:27:05 2012 +0000
@@ -219,11 +219,6 @@
     <a href="http://www.w3.org/TR/swbp-n-aryRelations/">indirectly
     expressed in RDF</a> [[SWBP-N-ARYRELATIONS]].)</p>
 
-    <p>The assertion of an <a>RDF graph</a> amounts to asserting all the
-    triples in it, so the meaning of an RDF graph is the conjunction
-    (logical AND) of the <a title="RDF statement">statements</a>
-    corresponding to all the triples it contains.</p>
-
     <p>Unlike <a title="IRI">IRIs</a> and <a title="literal">literals</a>,
     <a title="blank node">blank nodes</a> do not denote specific
     <a title="resource">resources</a>.
@@ -247,6 +242,9 @@
     A very brief, informal and partial account follows:</p>
 
     <ul>
+    <li>IRIs have global scope: An IRI is assumed to <a>denote</a>
+    the same <a>resource</a> regardless of where the IRI occurs.</li>
+
     <li>By social convention, the
     <a href="http://www.w3.org/TR/webarch/#uri-ownership">IRI owner</a>
     [[WEBARCH]] gets to say what an <a>IRI</a> <a title="denote">denotes</a>.
@@ -346,9 +344,8 @@
     <p class="issue">“G-box” is a placeholder term. What term should
     we use instead? This is <a href="https://www.w3.org/2011/rdf-wg/track/issues/110">ISSUE-110</a>.</p>
 
-    <p>While this is not explicitly captured in the data model or its
-    formal semantics, intuitively speaking, changes in the world
-    are reflected in an RDF description of the world in the following way:</p>
+    <p>Intuitively speaking, changes in the universe of discourse
+    can be reflected in the following ways:</p>
 
     <ul>
       <li>An <a>IRI</a>, once <a title="minting">minted</a>, should never
@@ -372,90 +369,114 @@
 
 
 <section id="managing-graphs">
-    <h3>Merging and Managing RDF Graphs</h3>
-
-    <div class="issue">
-    <p>This section is work in progress. It should explain:</p>
+    <h3>Working with Multiple RDF Graphs and G-Boxes</h3>
 
-    <ul>
-      <li>The terminology around <a title="RDF dataset">RDF datasets</a></li>
-      <li>The fact that graphs merge easily</li>
-      <li>The concept of a “graph store” (as in SPARQL Update)</li>
-      <li>How RDF datasets can be used to record a snapshot of a graph store</li>
-      <li>The distinction between graph syntaxes and dataset syntaxes</li>
-    </ul>
-    </div>
+    <p>As RDF graphs are sets of triples, they can be
+    <a title="merge">merged</a> easily, supporting the use of data from
+    multiple sources. Nevertheless, it is sometimes desirable to work
+    with multiple RDF graphs while keeping their contents separate.
+    <a title="RDF dataset">RDF datasets</a> support this requirement.</p>
 
-    <p>The RDF data model expresses information as
-    <a title="RDF graph">RDF graphs</a> consisting of
-    <a title="triple">triples</a> with subject, predicate and object.
-    Often, one wants to hold multiple RDF graphs and record information
-    about each graph, allowing an application to work with datasets
-    that involve information from more than one graph.</p>
+    <p>An <a>RDF dataset</a> is a collection of
+    <a title="RDF graph">RDF graphs</a>. All but one are
+    <a title="named graph">named graphs</a> associated with an <a>IRI</a>.
+    The last one is the unnamed <a>default graph</a>, and is often used
+    to hold <a title="RDF triple">triples</a> that involve the graph names.</p>
 
-    <p>An <dfn>RDF document</dfn> is a document that encodes an
-    <a>RDF graph</a> in a <dfn>concrete RDF syntax</dfn>, such as
-    Turtle [[TURTLE-TR]], RDFa [[RDFA-PRIMER]], RDF/XML [[RDF-SYNTAX-GRAMMAR]],
-    or N-Triples [[N-TRIPLES]].</p>
+    <p>A common use of <a title="RDF dataset">RDF datasets</a> is to hold
+    snapshots of multiple <a title="g-box">g-boxes</a>.</p>
 </section>
 
 
 <section id="entailment">
-    <h3>Formal Meaning and Entailment</h3>
-
-    <div class="issue">
-    <p>This section is work in progress.</p>
-
-    <p>The relationship between this document and RDF Semantics
-    [[RDF-MT]] is poorly defined and needs to be clarified. A principled
-    decision is necessary on what exactly the “interface” between Concepts
-    and Semantics is. What notions should be defined in what spec? What notions
-    should Concepts import from Semantics (if any)? Does conformance to
-    Concepts depend on conformance to Semantics?</p>
-
-    <p>Content in this document that perhaps should be in Semantics:</p>
+    <h3>Equivalence, Entailment and Inconsistency</h3>
 
-    <ul>
-      <li>Everything in this subsection</li>
-      <li><a>Literal value</a> is more a semantic concept than an abstract syntax concept</li>
-    </ul>
-
-    <p>Semantics-related content that should perhaps be in Concepts:</p>
+    <p class="issue">No Editor's Draft of <em>RDF 1.1 Semantics</em> is
+    available yet, and its relationship to this document is not yet
+    entirely clear. Some Semantics-related material may be moved here,
+    in particular the definition of <dfn title="merge">graph merge</dfn> and
+    <dfn>subgraph</dfn></li>, and informative
+    <a href="http://www.w3.org/TR/rdf-mt/#rules">entailment rules</a>
+    for the entailments over the RDF data model
+    (excluding any specific vocabulary). This is
+    <a href="https://www.w3.org/2011/rdf-wg/track/issues/106">ISSUE-106</a>.</p>
 
-    <ul>
-      <li>Definition of Graph Merge</li>
-      <li>Definition of Lean Graphs</li>
-      <li>Import (via reference to Semantics) of notions of equivalence, entailment, inconsistency between RDF graphs (at least informatively)</li>
-      <li>At least an informative definition of “entailment regime”?</li>
-      <li>Informative entailment rules?</li>
-    </ul>
+    <p>An <a>RDF triple</a> encodes a <a title="RDF statement">statement</a>—a
+    simple <dfn>logical expression</dfn>, or claim about the world.
+    An <a>RDF graph</a> is the conjunction (logical <em>AND</em>) of
+    its triples, and the conjunction of two RDF graphs is their <a>merge</a>.
+    This treatment of RDF graphs as logical expressions is
+    normatively defined in the
+    <a href="http://www.w3.org/TR/rdf-mt/">RDF Semantics</a>
+    specification [[RDF-MT]], using the formalism of Model Theory.
+    It yields various relationships between RDF graphs:</p>
 
-    <p>This is <a href="https://www.w3.org/2011/rdf-wg/track/issues/106">ISSUE-106</a>. It is somewhat blocked as no Editor's Draft of <em>RDF 1.1 Semantics</em> is available yet.</p>
-    </div>
+    <dl>
+    <dt><dfn>Entailment</dfn></dt>
+    <dd>An <a>RDF graph</a> <em>A</em> entail another RDF graph <em>B</em>
+    if every possible arrangement of things in the world
+    that makes <em>A</em> true also makes <em>B</em> true.
+    If the truth of <em>A</em> is presumed or demonstrated,
+    then the truth of <em>B</em> can be inferred.</dd>
+
+    <dt><dfn>Equivalence</dfn></dt>
+    <dd>Two <a title="RDF graph">RDF graphs</a> <em>A</em> and <em>B</em>
+    are equivalent if they make the same claim about the world.
+    <em>A</em> is equivalent to <em>B</em> if and only if
+    <em>A</em> <a title="entailment">entails</a> <em>B</em> and
+    <em>B</em> entails <em>A</em>.</dd>
+
+    <dt><dfn>Inconsistency</dfn></dt>
+    <dd>An <a>RDF graph</a> is inconsistent if it contains
+    an internal contradiction. There is no possible arrangement
+    of the world that would make the expression true.</dd>
+    </dl>
+
+    <p>What <a title="RDF graph">graphs</a> exactly are considered
+    to have these relationships is specified by an
+    <dfn>entailment regime</dfn> [[RDF-MT]] combined with a
+    <a>datatype map</a>. RDF itself recognizes only some basic conditions.
+    Other specifications, such as
+    <a href="http://www.w3.org/TR/rdf-schema/">RDF Schema</a> [[RDF-SCHEMA]]
+    and <a href="http://www.w3.org/TR/owl2-overview/">OWL 2</a>
+    [[OWL2-OVERVIEW]], add more powerful entailment regimes,
+    as do some domain-specific <a title="vocabulary">vocabularies</a>.</p>
+
+    <p>This specification does not constrain how implementations
+    use the logical relationships defined by 
+    <a title="entailment regime">entailment regimes</a>.
+    Implementations may or may not detect
+    <a title="inconsistency">inconsistencies</a>, and may make all,
+    some or no <a title="entailment">entailed</a> information
+    available to users.</p>
 
     <p class="issue">The Working Group intends to publish a Working Group
     Note detailing some of its efforts to define a formal semantics for
     RDF datasets. This is
     <a href="http://www.w3.org/2011/rdf-wg/track/actions/209">ACTION-209</a>.
     It should be referenced here when available.</p>
+</section>
 
-    <p>The idea of meaning in RDF is underpinned by the formal concept
-    of <dfn>entailment</dfn>. In brief, an <a>RDF graph</a> <em>A</em>
-    is said to <em>entail</em> another RDF graph <em>B</em> if every
-    possible arrangement of things in the world that makes <em>A</em> true
-    also makes <em>B</em> true. On this basis, if the truth of <em>A</em>
-    is presumed or demonstrated then the truth of <em>B</em> can be inferred.
-    An account of meaning and entailment in RDF, using the formalism of
-    model theory, is given in [[RDF-MT]].</p>
 
-    <p>In application contexts,
-    comparing the <a title="literal value">values of literals</a> is usually
-    more helpful than comparing their syntactic forms
-    (<a>literal equality</a>).
-    Similarly, for comparing <a title="RDF graph">RDF graphs</a>,
-    semantic notions of <a>entailment</a> are usually more helpful
-    than syntactic <a>graph isomorphism</a>.</p>
+<section id="rdf-documents">
+    <h2>RDF Documents and Syntaxes</h2>
 
+    <p>An <dfn>RDF document</dfn> is a document that encodes an
+    <a>RDF graph</a> or <a>RDF dataset</a> in a <dfn>concrete RDF syntax</dfn>,
+    such as Turtle [[TURTLE-TR]], RDFa [[RDFA-PRIMER]],
+    RDF/XML [[RDF-SYNTAX-GRAMMAR]], or N-Triples [[N-TRIPLES]].  
+    RDF documents enable the exchange of RDF graphs and RDF datasets
+    between systems.</p>
+
+    <p>A <a title="concrete RDF syntax">concrete RDF syntaxes<a> may offer
+    many different ways to encode the same <a>RDF graph</a> or
+    <a>RDF dataset</a>, for example through the use of
+    <a title="namespace prefix">namespace prefixes</a>,
+    relative IRIs, <a title="blank node identifier">blank node identifiers</a>,
+    and different ordering of statmenets. While these aspects can have great
+    effect on the convenience of working with the <a>RDF document</a>,
+    they have no effect on its semantics, which lies exclusively in the
+    encoded graph or dataset.</p>
 </section>
 
 
@@ -505,9 +526,16 @@
     It is possible for a predicate IRI to also occur as a node in
     the same graph.</p>
 
-    <p><a title="IRI">IRIs</a>, <a title="blank node">blank nodes</a> and
-    <a title="literal">literals</a> are collectively known as
+    <p><a title="IRI">IRIs</a>, <a title="literal">literals</a> and
+    <a title="blank node">blank nodes</a> are collectively known as
     <dfn title="RDF term">RDF terms</dfn>.</p>
+
+    <p class="note"><a title="IRI">IRIs</a>, <a title="literal">literals</a>
+    and <a title="blank node">blank nodes</a> are distinct and distinguishable.
+    For example, <code>http://example.org/</code> as a string literal
+    is not equal to <code>http://example.org/</code> as an IRI,
+    nor to a blank node with the <a>blank node identifier</a>
+    <code>http://example.org/</code>.</p>
 </section>
 
 
@@ -644,37 +672,29 @@
  RDF implementation to actually normalize the case. Crucially, the result
  of comparing two language tags should not be sensitive to the case of
  the original input.</p>
-
-    <p class="note">RDF Literals are distinct and distinguishable
-    from <a title="IRI">IRIs</a>; e.g. <code>http://example.org/</code>
-    as a string <a>literal</a> is not equal to <code>http://example.org/</code>
-    as an IRI.</p>
-
-
 </section>
 
 
 <section id="section-blank-nodes">
     <h2>Blank Nodes</h2>
 
-    <p class="issue">There is no consensus that the current state of this section is an improvement over <a href="http://www.w3.org/TR/2012/WD-rdf11-concepts-20120605/#section-blank-nodes">its previous state</a>. This is <a href="http://www.w3.org/2011/rdf-wg/track/issues/107">ISSUE-107</a>.</p>
-
-    <p>The <dfn title="blank node">blank nodes</dfn> in an <a>RDF graph</a>
-    are drawn from some arbitrary infinite set that fulfils
-    the following conditions:</p>
+    <p class="issue">Re-wordings of this section have been proposed. This is <a href="https://www.w3.org/2011/rdf-wg/track/issues/107">ISSUE-107</a>.</p>
 
-    <ul>
-      <li>It is disjoint from the set of <a title="IRI">IRIs</a> and
-      the set of all <a title="literal">literals</a>.</li>
-      <li>Equality within the set is well-defined
-      (<dfn>blank node equality</dfn>).</li>
-    </ul>
+    <p class="issue">Proposals for a major re-write of this section have been made, making the notion of a “scope” for blank node identifiers explicit, and defining the concept of a “fresh” blank node. This is ISSUE-XX.</p>
 
-    <p>Allocating a <dfn>fresh blank node</dfn> is the action of drawing
-    a new node from the set of blank nodes.</p>
+    <p>The <dfn title="blank node">blank nodes</dfn> in an RDF graph 
+    are drawn from an infinite set. This set is disjoint from the set
+    of all <a title="IRI">IRIs</a> and the set of all
+    <a title="literal">literals</a>.
+    Otherwise, this set of blank nodes is arbitrary.</p>
 
-    <div class="note" id="note-bnode-id">
-    <p><dfn title="blank node identifier">Blank node identifiers</dfn>
+    <p>Given two blank nodes, it is 
+    possible to determine whether or not they are the same.
+    Besides that, RDF makes no reference to any internal structure
+    of blank nodes.</p>
+
+    <p class="note" id="note-bnode-id">
+    <dfn title="blank node identifier">Blank node identifiers</dfn>
     are local identifiers that are used in some
     <a title="concrete RDF syntax">concrete RDF syntaxes</a>
     or RDF store implementations.
@@ -685,14 +705,6 @@
     on the concrete syntax or implementation. The syntactic restrictions
     on blank node identifiers, if any, therefore also depend on
     the concrete RDF syntax or implementation.</p>
-
-    <p>Since RDF systems generally refer to
-    <a title="blank node">blank nodes</a> only via such local identifiers,
-    it is necessary to “standardize apart” the blank node identifiers
-    when incorporating data that originates from an external source.
-    This may be done by systematically replacing the blank node identifiers
-    in incoming data with freshly allocated blank node identifiers.</p>
-    </div>
 </section>
 
 
@@ -705,16 +717,21 @@
     local scope and are purely an artifact of the serialization.</p>
 
     <p>In situations where stronger identification is needed, systems MAY
-    systematically transform some or all of the blank nodes in an RDF graph
-    into IRIs [[!RFC3987]].  Systems wishing to do this SHOULD mint a new, globally
-    unique IRI (a <dfn>Skolem IRI</dfn>) for each blank node so transformed.</p>
+    systematically replace some or all of the blank nodes in an RDF graph
+    with <a title="IRI">IRIs</a>.  Systems wishing to do this SHOULD
+    <a title="minting">mint</a> a new, globally
+    unique IRI (a <dfn>Skolem IRI</dfn>) for each blank node so replaced.</p>
 
     <p>This transformation does not change the meaning of an RDF graph,
-    provided that the Skolem IRIs do not occur anywhere else.</p>
+    provided that the Skolem IRIs do not occur anywhere else.
+    It does however permit the possibility of other graphs
+    subsequently using the IRI to also refer to the same entity,
+    which was not possible when the node was blank.</p>
 
     <p>Systems may wish to mint Skolem IRIs in such a way that they can
     recognize the IRIs as having been introduced solely to replace a blank
-    node, and map back to the source blank node where possible.</p>
+    node. This allows the system to map IRIs back to the source blank node
+    if needed.</p>
 
     <p>Systems that want Skolem IRIs to be recognizable outside of the system
     boundaries SHOULD use a well-known IRI [[WELL-KNOWN]] with the registered
@@ -1175,7 +1192,7 @@
     for example, require support for certain datatypes.</p>
 
     <p class="note" id="note-custom-datatypes">The Web Ontology Language
-    [[OWL2-SYNTAX]] offers facilities for formally defining 
+    [[OWL2-OVERVIEW]] offers facilities for formally defining 
     <a href="http://www.w3.org/TR/owl2-syntax/#Datatype_Definitions">custom
     datatypes</a> that can be used with RDF. Furthermore, a practice for 
     identifying 
@@ -1246,38 +1263,43 @@
     <p>This section discusses the handling of fragment identifiers
     in representations that encode <a title="RDF graph">RDF graphs</a>.</p>
 
-    <p>In RDF-bearing representations of a resource <code>&lt;foo&gt;</code>,
-    the secondary resource identified by a fragment <code>#bar</code>
-    is the entity denoted by the full IRI <code>&lt;foo#bar&gt;</code>
-    in the RDF graph.
+    <p>In RDF-bearing representations of a primary resource
+    <code>&lt;foo&gt;</code>,
+    the secondary resource identified by a fragment <code>bar</code>
+    is the <a>resource</a> <a title="denote">denoted</a> by the
+    full <a>IRI</a> <code>&lt;foo#bar&gt;</code> in the <a>RDF graph</a>.
     Since IRIs in RDF graphs can denote anything, this can be
     something external to the representation, or even external
-    to the Web.</p>
+    to the web.</p>
 
-    <p>In this way, the RDF representation acts as an intermediary
-    between some web-retrievable document, and some set of possibly
-    non-web or abstract entities that the RDF may describe.</p>
+    <p>In this way, the RDF-bearing representation acts as an intermediary
+    between the web-accessible primary resource, and some set of possibly
+    non-web or abstract entities that the <a>RDF graph</a> may describe.</p>
 
-    <p>Primary resources may have multiple representations
-    (a.k.a. content negotiation). Fragments in RDF-bearing representations
-    should be used consistently with the semantics imposed by any
+    <p>In cases where other specifications constrain the semantics of
+    fragment identifiers in RDF-bearing representations, the encoded
+    <a>RDF graph</a> should use fragment identifiers in a way that is consistent
+    with these constraints. For example, in an HTML+RDFa document [[HTML-RDFA]],
+    the fragment <code>chapter1</code> may identify a document section
+    via the semantics of HTML's <code>@name</code> or <code>@id</code>
+    attributes. The <a>IRI</a> <code>&lt;#chapter1&gt;</code> should
+    then be taken to <a>denote</a> that same section in any RDFa-encoded
+    <a title="RDF triple">triples</a> within the same document.
+    Similarly, if the <code>@xml:id</code> attribute [[XML-ID]] is used
+    in an RDF/XML document, then the corresponding IRI
+    should be taken to denote an XML element.</p>
+
+    <p>Primary resources may have multiple representations that are
+    made available via
+    <a href="http://www.w3.org/TR/webarch/#frag-coneg">content negotiation</a>
+    [[WEBARCH]]. Fragments in RDF-bearing representations
+    should be used in a way that is consistent with the semantics imposed by any
     non-RDF representations. For example, if the fragment
-    <code>#chapter1</code> identifies a document section in an
-    HTML representation of a primary resource, then <code>#chapter1</code>
-    should be taken to denote that same section in all RDF-bearing
+    <code>chapter1</code> identifies a document section in an
+    HTML representation of the primary resource, then the <a>IRI</a>
+    <code>&lt;#chapter1&gt;</code>
+    should be taken to <a>denote</a> that same section in all RDF-bearing
     representations of the same primary resource.</p>
-
-    <p>Likewise, RDF graphs embedded in non-RDF representations
-    with mechanism such as RDFa [[RDFA-PRIMER]]
-    should use fragment identifiers consistently with the semantics
-    imposed by the host language.
-    For example, if the fragment <code>#chapter1</code> identifies
-    a document section
-    in an HTML+RDFa representation, then <code>#chapter1</code>
-    should be taken
-    to denote that same section in any RDFa-encoded statements
-    in the document.
-    </p>
 </section>
 
 
@@ -1371,6 +1393,9 @@
   <em>RDF 1.1 Concepts and Abstract Syntax</em>.</p>
 
   <ul>
+    <li>2012-11-17: Many changes to Introduction, including mostly new subsections on <a href="#managing-graphs">Working with Multiple RDF Graphs and G-Boxes</a>, <a href="#entailment">Equivalence, Entailment and Inconsistencies</a>, and <a href="#rdf-documents">RDF Documents and Syntaxes</a></li>
+    <li>2012-11-17: Reverted section on <a href="#section-blank-nodes">Blank Nodes</a> to earlier state</li>
+    <li>2012-11-17: Changes, mostly but not exclusively editorial, to section on <a href="#section-fragID">Fragment Identifiers</a></li>
     <li>2012-11-13: Remove the notion of other specs conforming to this spec from the <a href="#conformance">Conformance</a> section. This spec simply provides definitions that other specs can use.</li>
     <li>2012-11-09: Updated the <a href="#section-dataset">section on RDF datasets</a> to reflect <a href="http://www.w3.org/2011/rdf-wg/meeting/2012-10-29">various WG resolutions</a> around named graphs</li>
     <li>2012-11-09: Re-wrote the <a href="#section-blank-nodes">section on Blank Nodes</a>, including a definition of “fresh blank nodes” and an extended Note on standardizing apart blank node IDs</li>