--- a/rdf-concepts/index.html Sat Nov 17 17:23:26 2012 -0500
+++ b/rdf-concepts/index.html Sat Nov 17 17:24:03 2012 -0500
@@ -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><foo></code>,
- the secondary resource identified by a fragment <code>#bar</code>
- is the entity denoted by the full IRI <code><foo#bar></code>
- in the RDF graph.
+ <p>In RDF-bearing representations of a primary resource
+ <code><foo></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><foo#bar></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><#chapter1></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><#chapter1></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>