--- a/rdf-concepts/index.html Tue May 07 15:41:55 2013 -0400
+++ b/rdf-concepts/index.html Wed May 08 14:04:54 2013 -0400
@@ -226,10 +226,13 @@
<section id="referents">
<h3>The Referent of an IRI</h3>
- <p>The <a>resource</a> <a title="denote">denoted</a> by an <a>IRI</a>
- is also called its <dfn>referent</dfn>.
- What exactly is denoted by any given IRI is not defined by this
- specification.</p>
+ <p>The <a>resource</a> <a title="denote">denoted</a> by an <a>IRI</a>
+ is also called its <dfn>referent</dfn>. For some IRIs with particular
+ meanings, such as those identifying XSD datatypes, the referent is
+ fixed by this specification. For all other IRIs, what exactly is
+ denoted by any given IRI is not defined by this specification. Other
+ specifications may fix IRI referents, or apply other constraints on
+ what may be the referent of any IRI.</p>
<p>Guidelines for determining the <a>referent</a> of an <a>IRI</a> are
provided in other documents, like
@@ -279,7 +282,6 @@
<h3>RDF Vocabularies and Namespace IRIs</h3>
<p>An <dfn>RDF vocabulary</dfn> is a collection of <a title="IRI">IRIs</a>
- with clearly established <a title="referent">referents</a>
intended for use in <a title="RDF graph">RDF graphs</a>. For example,
the IRIs documented in [[RDF-SCHEMA]] are the RDF Schema vocabulary.
RDF Schema can itself be used to define and document additional
@@ -370,7 +372,7 @@
<h3>Working with Multiple RDF Graphs</h3>
<p>As RDF graphs are sets of triples, they can be
- <a title="merge">merged</a> easily, supporting the use of data from
+ <a title="merge">combined</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>
@@ -385,10 +387,7 @@
<p>There are many possible uses for <a title="RDF dataset">RDF datasets</a>.
One such use is to hold snapshots of multiple
- <a title="RDF source">RDF sources</a>. It is common to have the
- <a>default graph</a> contain <a title="RDF triple">triples</a>
- that involve the <a title="graph name">graph names</a>
- of the other graphs in the dataset.</p>
+ <a title="RDF source">RDF sources</a>.</p>
</section>
@@ -440,8 +439,7 @@
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="RDF vocabulary">vocabularies</a>.
- Some entailment regimes are defined with respect to a
- <a>datatype map</a>.</p>
+ </p>
<p>This specification does not constrain how implementations
use the logical relationships defined by
@@ -633,8 +631,14 @@
The language tag MUST be well-formed according to
<a href="http://tools.ietf.org/html/bcp47#section-2.2.9">section 2.2.9</a>
of [[!BCP47]], and MUST be normalized to lowercase.</li>
+ <li>A badly formed language tag MUST be treated as a syntax error.</li>
</ul>
+ <p class="note" id="note-language-tag-regex">
+ Implementors might wish to note that language tags conform to the
+ regular expression <code>'@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)*</code>
+ before normalizing to lowercase.</p>
+
<p>Concrete syntaxes MAY support <dfn title="simple literal">simple
literals</dfn>, consisting of only a <a>lexical form</a>
without any datatype IRI or language tag. Simple literals only
@@ -643,28 +647,20 @@
<a title="literal">literals</a> with the <a>datatype IRI</a>
<code>http://www.w3.org/2001/XMLSchema#string</code>.</p>
- <p><dfn>Literal equality</dfn>:
- Two literals are equal if and only if the two
- <a title="lexical form">lexical forms</a>, the two
- <a title="datatype IRI">datatype IRIs</a>, and the two
- <a title="language tag">language tags</a> (if any)
- compare equal, character by character.</p>
-
<p><dfn>Literal term equality</dfn>: Two literals are term-equals
(the same RDF literal) if and only if the two <a title="lexical form">lexical forms</a>, the
two <a title="datatype IRI">datatype IRIs</a>, and the two <a title="language tag">language tags</a> (if any) compare equal,
character by character.</p>
- <p><dfn>Literal value equality</dfn>: Two literals that are associated
- with the same value as said to be value-equals. Two literals can
- be value-equals without being the same <a title="RDF Term">RDF term</a>. For example:
+ <p>Two literals can share equal values without being the same
+ <a title="RDF Term">RDF term</a>. For example:
<pre>
"1"^^xs:integer
"01"^^xs:integer
</pre>
- <p>are associated with the same value, but are not the same literal
+ <p>denotes the same value, but are not the same literal
<a title="RDF Term">RDF terms</a> and are not term-equals.</p>
</section>
@@ -689,9 +685,7 @@
part of the RDF abstract syntax, but are entirely dependent
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. The syntactic restrictions
- on blank node identifiers, if any, therefore also depend on the concrete
- RDF syntax or implementation. Implementations that handle blank node
+ the concrete RDF syntax or implementation. Implementations that handle blank node
identifiers in concrete syntaxes need to be careful not to create the
same blank node from multiple occurences of the same blank node identifier
except in situations where this is supported by the syntax.</p>
@@ -719,8 +713,8 @@
for blank nodes.</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. This allows the system to map IRIs back to a blank node
+ recognize the IRIs as having been introduced solely to replace blank
+ nodes. This allows a system to map IRIs back to blank nodes
if needed.</p>
<p>Systems that want Skolem IRIs to be recognizable outside of the system
@@ -762,7 +756,7 @@
<var>G'</var></li>
</ol>
- <p>See also: <a>IRI equality</a>, <a>literal equality</a>.</p>
+ <p>See also: <a>IRI equality</a>, <a>literal term equality</a>.</p>
<p>With this definition, <var>M</var> shows how each blank node
in <var>G</var> can be replaced with
@@ -833,7 +827,7 @@
format that supports the expression of both <a title="RDF Dataset">RDF datasets</a> and
<a title="RDF graph">RDF graphs</a>. If an <a title="RDF Dataset">RDF dataset</a>
is returned and the consumer is expecting an <a title="RDF graph">RDF graph</a>,
- the consumer SHOULD use the <a title="RDF Dataset">RDF dataset's</a> default graph.</p>
+ the consumer is expected to use the <a title="RDF Dataset">RDF dataset's</a> default graph.</p>
</section>
@@ -853,7 +847,7 @@
and provides two additional built-in datatypes,
<code><a>rdf:HTML</a></code> and <code><a>rdf:XMLLiteral</a></code>.
The list of datatypes supported by an implementation is determined
- by its <a>datatype map</a>.</p>
+ by its <a>recognized datatype IRIs</a>.</p>
<p>A <dfn>datatype</dfn> consists of a <a>lexical space</a>,
a <a>value space</a> and a <a>lexical-to-value mapping</a>, and
@@ -923,7 +917,7 @@
</table>
-<section id="xsd-datatypes">
+<section id="xsd-datatypes" name="xsd-datatypes">
<h3>The XML Schema Built-in Datatypes</h3>
<p><a title="IRI">IRIs</a> of the form
@@ -1147,32 +1141,42 @@
</section>
<section id="datatype-maps">
- <h3>Datatype Maps</h3>
-
- <p>A <dfn>datatype map</dfn> is an implementation-defined set of
- <<a>IRI</a>, <a>datatype</a>> pairs such that no
- IRI appears twice in the set.
- It can be seen as a function from IRIs to datatypes,
- where the IRIs denote the datatypes.</p>
+ <h3>Datatype IRIs</h3>
- <p>If a <a>datatype map</a> contains the IRI
- <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral</code>,
- then it MUST be paired with the datatype
- <code><a>rdf:XMLLiteral</a></code>.</p>
+ <p>Datatypes are identified by <a title="IRI">IRIs</a>. If
+ <var>D</var> is a set of IRIs which are used to refer to
+ datatypes, then the elements of <var>D</var> are called <dfn>recognized
+ datatype IRIs</dfn>. Recognized IRIs have fixed
+ <a href="#referents">referents</a>, which MUST satisfy these
+ conditions:
- <p>If a <a>datatype map</a> contains the IRI
- <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML</code>,
- then it MUST be paired with the datatype
- <code><a>rdf:HTML</a></code>.</p>
+ <ol>
+ <li>If the IRI
+ <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral</code>
+ is recognized then it refers to the datatype
+ <code>rdf:XMLLiteral</code>;</li>
+ <li>If the IRI
+ <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML</code>
+ is recognized then it refers to the datatype <code>rdf:HTML</code>;</li>
+ <li>If any IRI of the form
+ <code>http://www.w3.org/2001/XMLSchema#xxx</code>
+ is recognized then it refers to the RDF-compatible XSD type
+ named <code>xsd:xxx</code>, for every XSD type listed in
+ <a href="#xsd-datatypes">section 5.1</a>.</li>
+ </ol>
- <p>If a <a>datatype map</a> contains an IRI of the form
- <code>http://www.w3.org/2001/XMLSchema#<em>xxx</em></code>,
- then it MUST be paired with the
- <a title="RDF-compatible XSD types">RDF-compatible XSD type</a>
- named <code>xsd:<em>xxx</em></code>.<p>
+ <p>Semantic extensions of RDF MAY recognize other datatype IRIs
+ and require them to refer to a fixed datatype.</p>
+
+ <p>RDF processors are not required to recognize datatype IRIs.
+ Any literal typed with an unrecognized IRI is treated just like
+ an unknown IRI, i.e. as referring to an unknown thing. Applications
+ MAY give a warning message if they are unable to determine the
+ referent of an IRI used in a typed literal, but they SHOULD NOT
+ reject such RDF as either a syntactic or semantic error.<p>
<p>Other specifications
- MAY impose additional constraints on the <a>datatype map</a>,
+ MAY impose additional constraints on <a>datatype IRIs</a>,
for example, require support for certain datatypes.</p>
<p class="note" id="note-custom-datatypes">The Web Ontology Language
@@ -1196,15 +1200,16 @@
<li><strong>If the literal is a <a>language-tagged string</a>,</strong>
then the literal value is a pair consisting of its <a>lexical form</a>
and its <a>language tag</a>, in that order.</li>
- <li><strong>If the literal's <a>datatype IRI</a> is not in the
- implementation-defined <a>datatype map</a>,</strong> then the literal value
+ <li><strong>If the literal's <a>datatype IRI</a> is not
+ <a title="recognized datatype IRIs">recognized</a> by an
+ implementation,</strong> then the literal value
is not defined by this specification.</li>
- <li>Let <em>d</em> be the <a>datatype</a> associated with the
- datatype IRI in the implementation-defined datatype map.</li>
+ <li>Let <var>d</var> be the <a>referent</a> of the
+ datatype IRI in the set of <a>recognized datatype IRIs</a>.</li>
<li><strong>If the literal's <a>lexical form</a> is in the
- <a>lexical space</a> of <em>d</em>,</strong> then the literal value
+ <a>lexical space</a> of <var>d</var>,</strong> then the literal value
is the result of applying the <a>lexical-to-value mapping</a>
- of <em>d</em> to the <a>lexical form</a>.</li>
+ of <var>d</var> to the <a>lexical form</a>.</li>
<li><strong>Otherwise</strong>, the <dfn>literal</dfn> is ill-typed,
and no literal value can be associated with the literal. Such a case
produces a semantic inconsistency but is not <em>syntactically</em>
@@ -1343,7 +1348,7 @@
language tags do not conform to RDF 1.1.</p>
<p>The <code>xsd:string</code> datatype does not
- permit the <code>#x0</code> character, and implementations may not permit
+ permit the <code>#x0</code> character, and implementations might not permit
control codes in the <code>#x1-#x1F</code> range. Earlier versions of
RDF allowed these characters in
<a title="simple literal">simple literals</a>, although they
@@ -1365,6 +1370,10 @@
<em>RDF 1.1 Concepts and Abstract Syntax</em>.</p>
<ul>
+ <li>2013-05-08: Minor change to note that a badly formed language tag is a syntax error (<a href="http://www.w3.org/2011/rdf-wg/track/actions/262">ACTION-262</a>)</li>
+ <li>2013-05-08: Migrated language related to datatype maps to recognized datatype IRIs (<a href="http://www.w3.org/2011/rdf-wg/track/issues/118">ISSUE-118</a>)</li>
+ <li>2013-05-08: Editorial changes in response to <a href="http://lists.w3.org/Archives/Public/public-rdf-wg/2013May/0058.html">a discussion of literal equality</a></li>
+ <li>2013-05-08: Editorial changes in response to <a href="http://lists.w3.org/Archives/Public/public-rdf-wg/2013May/0075.html">review by Sandro Hawke</a></li>
<li>2013-05-07: Revised the definition of blank nodes (<a href="http://www.w3.org/2011/rdf-wg/track/issues/107">ISSUE-107</a>)</li>
<li>2013-05-07: Defined the consequence of a literal being ill-typed (<a href="http://www.w3.org/2011/rdf-wg/track/issues/109">ISSUE-109</a>)</li>
<li>2013-05-07: Clarified the existence of null control characters in xsd:strings (<a href="http://www.w3.org/2011/rdf-wg/track/issues/126">ISSUE-126</a>)</li>