Update "Literals" section in RDF Concepts
authorMarkus Lanthaler <mail@markus-lanthaler.com>
Wed, 04 Dec 2013 18:34:40 +0100
changeset 1471 a702808708ab
parent 1470 35495afd3078
child 1472 ff6d041b8705
Update "Literals" section in RDF Concepts

... as discussed on the mailing list. See
http://lists.w3.org/Archives/Public/public-rdf-wg/2013Nov/0078.html
rdf-concepts/index.html
--- a/rdf-concepts/index.html	Wed Dec 04 09:16:33 2013 -0800
+++ b/rdf-concepts/index.html	Wed Dec 04 18:34:40 2013 +0100
@@ -111,6 +111,7 @@
     <style type="text/css">
       figure { text-align: center; }
       table td, table th { border: 1px solid #ddd; padding: 0.2em 0.5em; }
+      ol ol { list-style-type: lower-latin; }
     </style>
   </head>
 
@@ -615,89 +616,86 @@
 <section id="section-Graph-Literal">
     <h2>Literals</h2>
 
-    <p>Literals are used for values such as strings, numbers and dates.</p>
+    <p>Literals are used for values such as strings, numbers, and dates.</p>
 
     <p>A <dfn>literal</dfn> in an <a>RDF graph</a> consists of two or three
-    elements:</p>
+      elements:</p>
 
     <ul>
-    <li>a <dfn>lexical form</dfn>, being a Unicode [[!UNICODE]] string,
-    which SHOULD be in Normal Form C [[!NFC]],</li>
-    <li>a <dfn>datatype IRI</dfn>, being an <a title="IRI">IRI</a> identifying a
-    datatype that determines how the lexical form maps to a
-    <a>literal value</a>.</li>
-    </ul>
-
-    <p>A literal is a <dfn>language-tagged string</dfn> if and only if its
-    <a>datatype IRI</a> is
-    <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>
-    and the third element is present:</p>
-
-    <ul>
-    <li>a non-empty <dfn>language tag</dfn> as defined by [[!BCP47]].
-    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]]. Lexical representations of language tags MAY be converted to
-    lower case.  The value space of language tags is always in lower case.</li>
-    <li>A badly formed language tag MUST be treated as a syntax error.</li>
+      <li>a <dfn>lexical form</dfn>, being a Unicode [[!UNICODE]] string,
+        which SHOULD be in Normal Form&nbsp;C [[!NFC]],</li>
+      <li>a <dfn>datatype IRI</dfn>, being an <a title="IRI">IRI</a>
+        identifying a datatype that determines how the lexical form maps
+        to a <a>literal value</a>, and</li>
+      <li>if and only if the <a>datatype IRI</a> is
+        <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>, a
+        non-empty <dfn>language tag</dfn> as defined by [[!BCP47]]. 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]].</li>
     </ul>
 
-    <p class="note" id="note-language-tag-regex">
-    Implementors might wish to note that language tags conform to the
-    regular expression <code>&#8217;@&#8217; [a-zA-Z]{1,8} (&#8217;-&#8217;
-    [a-zA-Z0-9]{1,8})*</code>
-    before normalizing to lowercase.</p>
-
-    <p>Multiple literals may have the same lexical form.</p>
+    <p>A literal is a <dfn>language-tagged string</dfn> if the third element
+      is present. Lexical representations of language tags MAY be converted
+      to lower case. The value space of language tags is always in lower
+      case.</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
-    exist in concrete syntaxes, and are treated as
-    syntactic sugar for abstract syntax
-    <a title="literal">literals</a> with the <a>datatype IRI</a>
-    <code>http://www.w3.org/2001/XMLSchema#string</code>.</p>
-
-    <p><dfn>Literal term equality</dfn>: Two literals are term-equal
-    (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>Two literals can have the same value without being the same
-    <a title="RDF Term">RDF term</a>.  For example:
-
-    <pre>
-    "1"^^xs:integer
-    "01"^^xs:integer
-    </pre>
-
-    <p>denote the same value, but are not the same literal
-    <a title="RDF Term">RDF terms</a> and are not term-equals.</p>
+    <p>Please note that concrete syntaxes MAY support
+      <dfn title="simple literal">simple literals</dfn> consisting of only a
+      <a>lexical form</a> without any <a>datatype IRI</a> or <a>language tag</a>.
+      Simple literals are syntactic sugar for abstract syntax
+      <a title="literal">literals</a>
+      with the <a>datatype IRI</a>
+      <code>http://www.w3.org/2001/XMLSchema#string</code>. Similarly, most
+      concrete syntaxes represent
+      <a title="language-tagged string">language-tagged strings</a> without
+      the <a>datatype IRI</a> because it always equals
+      <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>.</p>
 
     <p>The <dfn>literal value</dfn> associated with a <a>literal</a> is:</p>
 
     <ol>
-    <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
-    <a title="recognized datatype IRIs">recognized</a> by an
-    implementation,</strong> then the literal value
-    is not defined by this specification.</li>
-    <li>Let <var>d</var> be the <a>referent</a> of the
-    datatype IRI in the set of <a>recognized datatype IRIs</a>.
-    <strong>If the literal's <a>lexical form</a> is in the
-    <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 <var>d</var> to the <a>lexical form</a>.</li>
-    <li><strong>Otherwise</strong>, the literal 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>
-    ill-formed and implementations MUST accept ill-typed literals and produce
-    RDF graphs from them.  Implementations MAY produce warnings when
-    encountering ill-typed literals.</li>
+      <li>If the literal is a <a>language-tagged string</a>,
+        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>If the literal's <a>datatype IRI</a> is in the set of
+        <a>recognized datatype IRIs</a>, let <var>d</var> be the
+        <a>referent</a> of the datatype IRI.
+        <ol>
+          <li>If the literal's <a>lexical form</a> is in the <a>lexical space</a>
+            of <var>d</var>, then the literal value is the result of applying
+            the <a>lexical-to-value mapping</a> of <var>d</var> to the
+            <a>lexical form</a>.</li>
+          <li>Otherwise, the literal 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> ill-formed.
+             Implementations MUST accept ill-typed literals and produce RDF
+             graphs from them. Implementations MAY produce warnings when
+             encountering ill-typed literals.</li>
+        </ol>
+      </li>
+      <li>If the literal's <a>datatype IRI</a> is <em>not</em> in the set of
+        <a>recognized datatype IRIs</a>, then the literal value is
+        not defined by this specification.</li>
     </ol>
 
+    <p><dfn>Literal term equality</dfn>: Two literals are term-equal (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. Thus, two literals can have the same value
+      without being the same RDF term. For example:</p>
+
+    <pre>
+      "1"^^xs:integer
+      "01"^^xs:integer
+    </pre>
+
+    <p>denote the same <a title="literal value">value</a>, but are not the
+      same literal <a title="RDF Term">RDF terms</a> and are not
+      <a title="literal term equality">term-equal</a> because their
+      <a>lexical form</a> differs.</p>
 </section>
 
 
@@ -1447,6 +1445,7 @@
     <a href="http://www.w3.org/TR/2013/CR-rdf11-concepts-20131105/">5 November 2013 Candidate Recommendation (CR)</a>.</p>
 
   <ul>
+    <li>2013-12-04: Editorial changes to <a href="#section-Graph-Literal" class="sectionRef"></a> as <a href="http://lists.w3.org/Archives/Public/public-rdf-wg/2013Nov/0078.html">discussed on the mailing list</a>.</li>
     <li>2013-11-06: Editorial changes in response to a <a href="http://lists.w3.org/Archives/Public/public-rdf-wg/2013Nov/0027.html">review by Guus Schreiber</a></li>
   </ul>
 </section>