index.html
50.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>rdf:PlainLiteral: A Datatype for RDF Plain Literals</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<style type="text/css">
.editsection { display: none; }
</style>
<link href="owl.css" rel="stylesheet" type="text/css" />
<link href="http://www.w3.org/StyleSheets/TR/W3C-REC" rel="stylesheet" type="text/css" />
<script src="http://www.w3.org/2007/OWL/toggles.js" type="text/javascript"></script>
</head>
<body>
<div class="head">
<a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72" /></a><h1 id="title" style="clear:both"><span id="short-title">rdf:PlainLiteral: A Datatype for RDF Plain Literals</span></h1>
<h2 id="W3C-doctype">W3C Recommendation 27 October 2009</h2>
<!-- no inplace warning -->
<dl>
<dt>This version:</dt>
<dd><a href="http://www.w3.org/TR/2009/REC-rdf-plain-literal-20091027/" id="this-version-url">http://www.w3.org/TR/2009/REC-rdf-plain-literal-20091027/</a></dd>
<dt>Latest version (series 1):</dt>
<dd><a href="http://www.w3.org/TR/rdf-plain-literal-1/">http://www.w3.org/TR/rdf-plain-literal-1/</a></dd>
<dt>Latest Recommendation:</dt>
<dd><a href="http://www.w3.org/TR/rdf-plain-literal/">http://www.w3.org/TR/rdf-plain-literal/</a></dd>
<dt>Previous version:</dt>
<dd><a href="http://www.w3.org/TR/2009/PR-rdf-plain-literal-20090922/">http://www.w3.org/TR/2009/PR-rdf-plain-literal-20090922/</a> (<a href="http://www.w3.org/TR/2009/REC-rdf-plain-literal-20091027/diff-from-20090922">color-coded diff</a>)</dd>
</dl>
<dl><dt>Editors:</dt><dd><a href="http://www.cs.rpi.edu/~baojie/">Jie Bao</a>, Rensselaer Polytechnic Institute</dd>
<dd><a href="http://www.w3.org/People/Sandro/">Sandro Hawke</a>, W3C/MIT</dd>
<dd><a href="http://web.comlab.ox.ac.uk/people/Boris.Motik/">Boris Motik</a>, Oxford University Computing Laboratory</dd>
<dd><a href="http://ect.bell-labs.com/who/pfps/">Peter F. Patel-Schneider</a>, Bell Labs Research, Alcatel-Lucent</dd>
<dd><a href="http://www.polleres.net/">Axel Polleres</a>, DERI Galway at the National University of Ireland</dd>
</dl>
<p>Please refer to the <a href="http://www.w3.org/2007/OWL/errata"><strong>errata</strong></a> for this document, which may include some normative corrections.</p>
<p>This document is also available in these non-normative formats: <a href="http://www.w3.org/2009/pdf/REC-rdf-plain-literal-20091027.pdf">PDF version</a>.</p>
<p>See also <a href="http://www.w3.org/2007/OWL/translation/rdf-plain-literal">translations</a>.</p>
<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2009 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
</div>
<hr />
<h2><a id="abstract" name="abstract">Abstract</a></h2>
<div>
<div>This document presents the specification of a primitive datatype for the plain literals of RDF.</div>
</div>
<h2 class="no-toc no-num">
<a id="status" name="status">Status of this Document</a>
</h2>
<h4 class="no-toc no-num" id="may-be">May Be Superseded</h4>
<p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
<!-- no eventStatusExtra -->
<!-- no statusExtra -->
<div>
<h4 class="no-toc no-num" id="sotd-xml-dep">XML Schema Datatypes Dependency</h4>
<p>OWL 2 is defined to use datatypes defined in the <a href="http://www.w3.org/TR/xmlschema-2/">XML Schema Definition Language (XSD)</a>. As of this writing, the latest W3C Recommendation for XSD is version 1.0, with <a href="http://www.w3.org/TR/xmlschema11-1/">version 1.1</a> progressing toward Recommendation. OWL 2 has been designed to take advantage of the new datatypes and clearer explanations available in XSD 1.1, but for now those advantages are being partially put on hold. Specifically, until XSD 1.1 becomes a W3C Recommendation, the elements of OWL 2 which are based on it should be considered <em>optional</em>, as detailed in <a href="http://www.w3.org/TR/2009/REC-owl2-conformance-20091027/#XML_Schema_Datatypes">Conformance, section 2.3</a>. Upon the publication of XSD 1.1 as a W3C Recommendation, those elements cease to be optional and are to be considered required as otherwise specified.</p>
<p>We suggest that for now developers and users follow the <a href="http://www.w3.org/TR/2009/CR-xmlschema11-1-20090430/">XSD 1.1 Candidate Recommendation</a>. Based on discussions between the Schema and OWL Working Groups, we do not expect any implementation changes will be necessary as XSD 1.1 advances to Recommendation.</p>
</div>
<h4 class="no-toc no-num" id="status-changes">Summary of Changes</h4>
<div>There have been no <a href="http://www.w3.org/2005/10/Process-20051014/tr#substantive-change">substantive</a> changes since the <a href="http://www.w3.org/TR/2009/PR-rdf-plain-literal-20090922/">previous version</a>. For details on the minor changes see the <a href="#changelog">change log</a> and <a href="http://www.w3.org/TR/2009/REC-rdf-plain-literal-20091027/diff-from-20090922">color-coded diff</a>.</div>
<h4 class="no-toc no-num" id="please">Please Send Comments</h4><p>Please send any comments to <a class="mailto" href="mailto:public-owl-comments@w3.org">public-owl-comments@w3.org</a>
(<a class="http" href="http://lists.w3.org/Archives/Public/public-owl-comments/">public
archive</a>). Although work on this document by the <a href="http://www.w3.org/2007/OWL/">OWL Working Group</a> and the <a class="http" href="http://www.w3.org/2005/rules/wg.html">Rule Interchange Format (RIF) Working Group</a> is complete, comments may be addressed in the <a href="http://www.w3.org/2007/OWL/errata">errata</a> or in future revisions. Open discussion among developers is welcome at <a class="mailto" href="mailto:public-owl-dev@w3.org">public-owl-dev@w3.org</a> (<a class="http" href="http://lists.w3.org/Archives/Public/public-owl-dev/">public archive</a>).</p>
<h4 class="no-toc no-num" id="endorsement">Endorsed By W3C</h4>
<p><em>This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.</em></p>
<h4 class="no-toc no-num" id="patents">Patents</h4>
<p><em>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/41712/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent.</em></p>
<hr title="Separator After Status Section" />
<table class="toc" id="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Table of Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="#Introduction"><span class="tocnumber">1</span> <span class="toctext">Introduction</span></a></li>
<li class="toclevel-1"><a href="#Preliminaries"><span class="tocnumber">2</span> <span class="toctext">Preliminaries</span></a></li>
<li class="toclevel-1"><a href="#Definition_of_the_rdf:PlainLiteral_Datatype"><span class="tocnumber">3</span> <span class="toctext">Definition of the rdf:PlainLiteral Datatype</span></a></li>
<li class="toclevel-1"><a href="#Syntax_for_rdf:PlainLiteral_Literals"><span class="tocnumber">4</span> <span class="toctext">Syntax for rdf:PlainLiteral Literals</span></a></li>
<li class="toclevel-1"><a href="#Functions_on__rdf:PlainLiteral_Data_Values"><span class="tocnumber">5</span> <span class="toctext">Functions on rdf:PlainLiteral Data Values</span></a>
<ul>
<li class="toclevel-2"><a href="#Functions_for_Assembling_and_Disassembling_rdf:PlainLiteral_Data_Values"><span class="tocnumber">5.1</span> <span class="toctext">Functions for Assembling and Disassembling rdf:PlainLiteral Data Values</span></a>
<ul>
<li class="toclevel-3"><a href="#plfn:PlainLiteral-from-string-lang"><span class="tocnumber">5.1.1</span> <span class="toctext">plfn:PlainLiteral-from-string-lang</span></a></li>
<li class="toclevel-3"><a href="#plfn:string-from-PlainLiteral"><span class="tocnumber">5.1.2</span> <span class="toctext">plfn:string-from-PlainLiteral</span></a></li>
<li class="toclevel-3"><a href="#plfn:lang-from-PlainLiteral"><span class="tocnumber">5.1.3</span> <span class="toctext">plfn:lang-from-PlainLiteral</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="#The_Comparison_of_rdf:PlainLiteral_Data_Values"><span class="tocnumber">5.2</span> <span class="toctext">The Comparison of rdf:PlainLiteral Data Values</span></a>
<ul>
<li class="toclevel-3"><a href="#plfn:compare"><span class="tocnumber">5.2.1</span> <span class="toctext">plfn:compare</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="#Other_Functions_on_rdf:PlainLiteral_Data_Values"><span class="tocnumber">5.3</span> <span class="toctext">Other Functions on rdf:PlainLiteral Data Values</span></a>
<ul>
<li class="toclevel-3"><a href="#plfn:length"><span class="tocnumber">5.3.1</span> <span class="toctext">plfn:length</span></a></li>
<li class="toclevel-3"><a href="#plfn:matches-language-range"><span class="tocnumber">5.3.2</span> <span class="toctext">plfn:matches-language-range</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="toclevel-1"><a href="#Acknowledgments"><span class="tocnumber">6</span> <span class="toctext">Acknowledgments</span></a></li>
<li class="toclevel-1"><a href="#References"><span class="tocnumber">7</span> <span class="toctext">References</span></a></li>
<li class="toclevel-1"><a href="#Appendix:_Change_Log_.28Informative.29"><span class="tocnumber">8</span> <span class="toctext">Appendix: Change Log (Informative)</span></a>
<ul>
<li class="toclevel-2"><a href="#Changes_Since_Proposed_Recommendation"><span class="tocnumber">8.1</span> <span class="toctext">Changes Since Proposed Recommendation</span></a></li>
<li class="toclevel-2"><a href="#Changes_Since_Candidate_Recommendation"><span class="tocnumber">8.2</span> <span class="toctext">Changes Since Candidate Recommendation</span></a></li>
<li class="toclevel-2"><a href="#Changes_Since_Last_Call"><span class="tocnumber">8.3</span> <span class="toctext">Changes Since Last Call</span></a></li>
</ul>
</li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<p><br />
</p>
<a name="Introduction"></a><h2> <span class="mw-headline">1 Introduction </span></h2>
<p>The Resource Description Framework [<cite><a href="#ref-rdf-concepts" title="">RDF</a></cite>] is defined to have an extensible system of <a class="external text" href="http://www.w3.org/TR/rdf-concepts/#dfn-typed-literal" title="http://www.w3.org/TR/rdf-concepts/#dfn-typed-literal">typed literals</a>, based on XML Schema datatypes [<cite><a href="#ref-xml-schema-datatypes" title="">XSD</a></cite>], and also to have <a class="external text" href="http://www.w3.org/TR/rdf-concepts/#dfn-plain-literal" title="http://www.w3.org/TR/rdf-concepts/#dfn-plain-literal">plain literals</a>. In the RDF specification, plain literals differ from typed literals in that plain literals have no datatype and can optionally have a language tag, indicating the natural language of the content. (See <a class="external text" href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt" title="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">Tags for Identifying Languages</a> [<cite><a href="#ref-bcp-47" title="">BCP 47</a></cite>]). These options for expressing RDF literals complicate specifications which interact with RDF, such as RIF and OWL. Furthermore, RDF does not provide a name for the set of all plain literals, which, for example, prevents one from stating in RDFS or OWL that the range of some property must be a plain literal.
</p><p>In response, this specification introduces a datatype called rdf:PlainLiteral. The datatype is in the "rdf:" namespace because it refers to parts of the conceptual model of RDF. This extension, however, does not change that conceptual model, and thus does not affect specifications that depend on it, such as SPARQL [<cite><a href="#ref-sparql" title="">SPARQL</a></cite>]. The value space of rdf:PlainLiteral consists of all data values represented by RDF plain literals, which allows RDF applications to explicitly refer to this set (e.g., in rdfs:range assertions).
</p><p>Because RDF plain literals are already a part of RDF and SPARQL syntaxes, rdf:PlainLiteral literals are written as RDF plain literals in RDF and SPARQL syntaxes.
</p><p>As with plain literals, this datatype can associate language tags with Unicode strings, but it does not provide its own facilities for representing natural language utterances. Unicode <a class="external text" href="http://www.w3.org/International/questions/qa-bidi-controls" title="http://www.w3.org/International/questions/qa-bidi-controls">bidirectional control characters</a> [<cite><a href="#ref-bidi" title="">BIDI</a></cite>] may be used within these literals, like all other Unicode characters. (Richer, XML-based representations such as <a class="external text" href="http://www.w3.org/TR/xhtml1/" title="http://www.w3.org/TR/xhtml1/">XHTML</a> [<cite><a href="#ref-xhtml" title="">XHTML</a></cite>] and <a class="external text" href="http://www.w3.org/TR/ruby/#what" title="http://www.w3.org/TR/ruby/#what">Ruby annotations</a> [<cite><a href="#ref-ruby" title="">RUBY</a></cite>] can be expressed using the <a class="external text" href="http://www.w3.org/TR/rdf-concepts/#dfn-rdf-XMLLiteral" title="http://www.w3.org/TR/rdf-concepts/#dfn-rdf-XMLLiteral">rdf:XMLLiteral</a> datatype.)
</p>
<a name="Preliminaries"></a><h2> <span class="mw-headline">2 Preliminaries </span></h2>
<p>A <i>character</i> is an atomic unit of text. Each character has a Universal Character Set (UCS) code point [<cite><a href="#ref-iso-iec-10646" title="">ISO/IEC 10646</a></cite>] (or, equivalently, a Unicode code point [<cite><a href="#ref-unicode" title="">UNICODE</a></cite>]) that <em class="RFC2119" title="MUST in RFC 2119 context">MUST</em> match the <a class="external text" href="http://www.w3.org/TR/xml/#NT-Char" title="http://www.w3.org/TR/xml/#NT-Char">Char</a> production from XML [<cite><a href="#ref-xml" title="">XML</a></cite>] thus ensuring compatibility with XML Schema Datatypes [<cite><a href="#ref-xml-schema-datatypes" title="">XML Schema Datatypes</a></cite>]. Code points are sometimes represented in this document as U+ followed by a four-digit hexadecimal value of the code point.
</p><p>A <i>string</i> is a finite sequence of zero or more characters. The <i>length</i> of a string is the number of characters in it. Strings are written in this specification by enclosing them in double quotes. Two strings are identical if and only if they contain exactly the same characters in exactly the same sequence.
</p>
<div class="anexample">
<p>UCS [<cite><a href="#ref-iso-iec-10646" title="">ISO/IEC 10646</a></cite>] and Unicode [<cite><a href="#ref-unicode" title="">UNICODE</a></cite>] provide for 1,114,112 different code points. The <a class="external text" href="http://www.w3.org/TR/xml/#NT-Char" title="http://www.w3.org/TR/xml/#NT-Char">Char</a> production from XML [<cite><a href="#ref-xml" title="">XML</a></cite>], however, excludes the surrogate code points and the code points U+FFFE and U+FFFF. Thus, <tt>rdf:PlainLiteral</tt> provides a total of 1,112,033 different characters. This number is important, as it can affect the satisfiability of an OWL 2 ontology. Consider the following example:
</p>
<table class="fss">
<caption class="fss" style="display: none">Functional-Style Syntax:</caption>
<tr valign="top"><td colspan="2"> ClassAssertion( MinCardinality( <i>n</i> a:property DatatypeRestriction( xs:string xs:length 1 ) ) a:i )
</td></tr>
</table>
<p>This OWL 2 axiom states that the individual <tt>a:i</tt> is connected by the property <tt>a:property</tt> to at least <i>n</i> different strings of length one. The number of such strings is limited to 1,112,033 by the above definitions, so this ontology is satisfiable if and only if <i>n</i> is smaller than or equal to 1,112,033.
</p>
</div>
<p>A <i>language tag</i> is a string matching the <tt>langtag</tt> production from BCP 47 [<cite><a href="#ref-bcp-47" title="">BCP 47</a></cite>]. Furthermore, note that this definition corresponds to the <i>well-formed</i> rather than the <i>valid</i> class of conformance in BCP 47. A language tag <em class="RFC2119" title="MAY in RFC 2119 context">MAY</em> contain subtags that are not registered in the IANA Language Subtag Registry, although an <tt>rdf:PlainLiteral</tt> implementation <em class="RFC2119" title="MAY in RFC 2119 context">MAY</em> also choose to reject such invalid language tags.
</p>
<div class="anexample">
<p>The language tag <tt>"en-fubar"</tt> is not registered with the IANA Language Subtag Registry, so an <tt>rdf:PlainLiteral</tt> implementation is allowed to reject it. This string, however, matches the <tt>langtag</tt> production from BCP 47, so it is a perfectly valid language tag for the purpose of this specification. Consequently, the value space of <tt>rdf:PlainLiteral</tt> (see <a href="#Definition_of_the_rdf:PlainLiteral_Datatype" title="">Section 3</a> for its definition) contains, say, the pair <<tt> "some string" , "en-fubar" </tt>>.
</p>
</div>
<p>This specification uses Uniform Resource Identifiers (URIs), which are defined in RFC 3986 [<cite><a href="#ref-rfc-3986" title="">RFC 3986</a></cite>], for naming datatypes and their components. For readability, URIs prefixes are often abbreviated using a short prefix name according to the convention of RDF [<cite><a href="#ref-rdf-concepts" title="">RDF</a></cite>]. The following prefix names are used throughout this document:
</p>
<ul><li> the prefix name <tt>xs:</tt> stands for <tt>http://www.w3.org/2001/XMLSchema#</tt>
</li><li> the prefix name <tt>rdf:</tt> stands for <tt>http://www.w3.org/1999/02/22-rdf-syntax-ns#</tt>
</li></ul>
<p>The names of the built-in functions defined in Section 5 are QNames, as defined in the XML namespaces specification [<cite><a href="#ref-xml-namespaces" title="">XML Namespaces</a></cite>]. The following namespace abbreviations are used in Section 5:
</p>
<ul><li> <tt>fn</tt> stands for the <tt>http://www.w3.org/2005/xpath-functions</tt> namespace
</li><li> <tt>plfn</tt> stands for the <tt>http://www.w3.org/2009/rdf-PlainLiteral-functions</tt> namespace
</li></ul>
<p>Whether an expression of the form <tt>pr:ln</tt> denotes an abbreviated URI or a QName should be clear from the context: only the names of the built-in functions in Section 5 are QNames; all other such expressions denote abbreviated URIs.
</p><p>Datatypes are defined in this document along the lines of XML Schema Datatypes [<cite><a href="#ref-xml-schema-datatypes" title="">XML Schema Datatypes</a></cite>]. Each datatype is identified by a URI and is described by the following components:
</p>
<ul><li> The <i>value space</i> is a set determining the set of values of the datatype. Elements of the value space are called <i>data values</i>.
</li><li> The <i>lexical space</i> is a set of strings that can be used to refer to data values. Each member of the lexical space is called a <i>lexical form</i>, and it is mapped to a particular data value.
</li><li> The <i>facet space</i> is a set of facet pairs of the form <tt>( F v )</tt>, where <tt>F</tt> is a URI called a <i>constraining facet</i>, and <tt>v</tt> is an arbitrary data value called a <i>constraining value</i>. Each such facet pair is mapped to a subset of the value space of the datatype.
</li></ul>
<p>A <i>plain literal</i> is a string with an optional language tag [<cite><a href="#ref-rdf-concepts" title="">RDF</a></cite>]. A plain literal without a language tag is interpreted in an RDF interpretation [<cite><a href="#ref-rdf-semantics" title="">RDF Semantics</a></cite>] by itself. A plain literal with a language tag can be written as <tt>"<i>abc</i>"@<i>langTag</i></tt>, and is interpreted in an RDF interpretation as a pair <<tt> "<i>abc</i>" , "<i>langTag</i>" </tt>>.
</p><p>A <i>typed literal</i> consists of a string and a datatype URI [<cite><a href="#ref-rdf-concepts" title="">RDF</a></cite>] and can be written as <tt>"abc"^^datatypeURI</tt>.
Given an RDF datatype identified by <tt>datatypeURI</tt>,
an RDF datatyped-interpretation that includes the datatype interprets the typed literal as the data value that the datatype assigns to the lexical form <tt>"abc"</tt>.
</p><p>The italicized keywords <em class="RFC2119" title="MUST in RFC 2119 context">MUST</em>, <em class="RFC2119" title="MUST NOT in RFC 2119 context">MUST NOT</em>, <em class="RFC2119" title="SHOULD in RFC 2119 context">SHOULD</em>, <em class="RFC2119" title="SHOULD NOT in RFC 2119 context">SHOULD NOT</em>, and <em class="RFC2119" title="MAY in RFC 2119 context">MAY</em> specify certain aspects of the normative behavior of tools implementing this specification, and are interpreted as specified in RFC 2119 [<cite><a href="#ref-rfc-2119" title="">RFC 2119</a></cite>].
</p>
<a name="Definition_of_the_rdf:PlainLiteral_Datatype"></a><h2> <span class="mw-headline">3 Definition of the <tt>rdf:PlainLiteral</tt> Datatype </span></h2>
<p>The datatype identified by the URI <tt>http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral</tt> (abbreviated <tt>rdf:PlainLiteral</tt>) is defined as follows.
</p><p><b>Value Space.</b> The value space of <tt>rdf:PlainLiteral</tt> consists of
</p>
<ul><li> all strings, and
</li><li> all pairs of the form <<tt> "<i>abc</i>" , "<i>lc-langtag</i>" </tt>> where <tt>"<i>abc</i>"</tt> is a string and <tt>"<i>lc-langtag</i>"</tt> is a lowercase language tag.
</li></ul>
<p><b>Lexical Space.</b> An <tt>rdf:PlainLiteral</tt> lexical form is a string of the form <tt>"<i>abc</i>@<i>langTag</i>"</tt> where <tt>"<i>abc</i>"</tt> is an arbitrary (possibly empty) string, and <tt>"<i>langTag</i>"</tt> is either the empty string or a (not necessarily lowercase) language tag. Each such lexical form is mapped to a data value <tt>dv</tt> as follows:
</p>
<ul><li> If <tt>"<i>langTag</i>"</tt> is empty, then <tt>dv</tt> is equal to the string <tt>"<i>abc</i>"</tt> and
</li><li> If <tt>"<i>langTag</i>"</tt> is not empty, then <tt>dv</tt> is equal to the pair <<tt> "<i>abc</i>", "<i>lc-langtag</i>" </tt>> where <tt>"<i>lc-langtag</i>"</tt> is <tt>"<i>langTag</i>"</tt> normalized to lowercase.
</li></ul>
<div class="anexample">
<p>The following table shows several <tt>rdf:PlainLiteral</tt> lexical forms and their corresponding data values.
</p>
<table border="1" cellpadding="10" style="border-collapse: collapse">
<tr>
<th> Lexical form
</th><th> Corresponding data value
</th></tr>
<tr>
<td> <tt>"Family Guy@en"</tt>
</td><td> <<tt> "Family Guy" , "en" </tt>>
</td></tr>
<tr>
<td> <tt>"Family Guy@EN"</tt>
</td><td> <<tt> "Family Guy" , "en" </tt>>
</td></tr>
<tr>
<td> <tt>"Family Guy@FOX@en"</tt>
</td><td> <<tt> "Family Guy@FOX" , "en" </tt>>
</td></tr>
<tr>
<td> <tt>"Family Guy@"</tt>
</td><td> <tt>"Family Guy"</tt>
</td></tr>
<tr>
<td> <tt>"Family Guy@FOX@"</tt>
</td><td> <tt>"Family Guy@FOX"</tt>
</td></tr>
</table>
<p>The following table shows several of strings that are not <tt>rdf:PlainLiteral</tt> lexical forms.
</p>
<table border="1" cellpadding="10" style="border-collapse: collapse">
<tr>
<th> String
</th><th> The reason for not being an <tt>rdf:PlainLiteral</tt> lexical form
</th></tr>
<tr>
<td> <tt>"Family Guy"</tt>
</td><td> does not contain at least one <tt>@</tt> (U+0040) character
</td></tr>
<tr>
<td> <tt>"Family Guy@12"</tt>
</td><td> <tt>"12"</tt> is not a language tag according to BCP 47
</td></tr>
</table>
</div>
<p><b>Facet Space.</b> The facet space of <tt>rdf:PlainLiteral</tt> is defined as shown in Table 1.
</p>
<div class="center">
<table border="1" cellpadding="5" style="text-align: left">
<caption> <span class="caption">Table 1.</span> The Facet Space of <tt>rdf:PlainLiteral</tt>
</caption><tr>
<th> A facet pair <tt>( F v )</tt> is in the facet space of <tt>rdf:PlainLiteral</tt> if...
</th><th> Each such facet pair is mapped to the subset of the value space of <tt>rdf:PlainLiteral</tt> containing...
</th></tr>
<tr>
<td> ...<tt>F</tt> is <tt>xs:length</tt>,<br /> <tt>xs:minLength</tt>,<br /> <tt>xs:maxLength</tt>,<br /> <tt>xs:pattern</tt>,<br /> <tt>xs:enumeration</tt>, or<br /> <tt>xs:assertion</tt> and <tt>( F v )</tt> is in the facet space of <tt>xs:string</tt>.
</td><td> ...all strings of the form <tt>"<i>abc</i>"</tt> and all pairs of the form <<tt> "<i>abc</i>" , "<i>lc-langtag</i>" </tt>> such that <tt>"<i>abc</i>"</tt> is contained in the subset of the value space of <tt>xs:string</tt> determined by <tt>( F v )</tt> as specified by XML Schema Datatypes [<cite><a href="#ref-xml-schema-datatypes" title="">XML Schema Datatypes</a></cite>].
</td></tr>
<tr>
<td> ...<tt>F</tt> is <span id="langRange"><tt>rdf:langRange</tt></span> and<br /> <tt>v</tt> is an <i>extended language range</i> as specified in Section 2.2 of [<cite><a href="#ref-rfc-4647" title="">RFC4647</a></cite>].
</td><td> ...all pairs of the form <<tt> "<i>abc</i>" , "<i>lc-langtag</i>" </tt>> such that <tt>"<i>lc-langtag</i>"</tt> matches <tt>v</tt> under <i>extended filtering</i> as specified in Section 3.3.2 of [<cite><a href="#ref-rfc-4647" title="">RFC4647</a></cite>].
</td></tr>
</table>
</div>
<div class="anexample">
<p>The facet <tt>xs:length</tt> can be used to refer to a subset of strings of a particular length regardless of whether they have a language tag or not. Thus, the subset of the value space of <tt>rdf:PlainLiteral</tt> corresponding to the facet pair <tt>( xs:length 3 )</tt> contains the string <tt>"abc"</tt>, as well as the pairs <<tt> "abc" , "en" </tt>> and <<tt> "abc" , "de" </tt>>.
</p>
</div>
<div class="anexample">
<p>The facet <tt>rdf:langRange</tt> can be used to refer to a subset of strings containing the language tag. Note that the language range need not be in lowercase, and that the matching algorithm is case-insensitive. Thus, the subset of the value space of <tt>rdf:PlainLiteral</tt> corresponding to the facet pair <tt>( rdf:langRange "de-DE" )</tt> contains the pairs <<tt> "abc" , "de-de" </tt>> and <<tt> "abc" , "de-de-1996" </tt>> (because these match the language range <tt>"de-DE"</tt> according to RFC 4647), but not the string <tt>"abc"</tt> (because it is not a pair with a language tag) or the pairs <<tt> "abc" , "de-deva" </tt>> and <<tt> "abc" , "de-latn-de" </tt>> (because these do not match the language range <tt>"de-DE"</tt> according to RFC 4647).
</p>
</div>
<div class="anexample">
<p>The facet pair <tt>( rdf:langRange "*" )</tt> is mapped to the subset of the value space of <tt>rdf:PlainLiteral</tt> containing all pairs of the form <<tt> "<i>abc</i>" , "<i>lc-langtag</i>" </tt>>. In languages such as OWL 2, this can be used to specify that a data value must contain a language tag.
</p>
</div>
<a name="Syntax_for_rdf:PlainLiteral_Literals"></a><h2> <span class="mw-headline">4 Syntax for rdf:PlainLiteral Literals </span></h2>
<p>It follows from the above that in datatyped interpretations that include the rdf:PlainLiteral datatype, the value space of rdf:PlainLiteral contains exactly all data values assigned to plain literals (with or without a language tag). The rdf:PlainLiteral datatype thus provides an explicit way of referring to this set.
</p><p>To eliminate another source of syntactic redundancy and to retain a large degree of interoperability with applications that do not understand the rdf:PlainLiteral datatype, the form of rdf:PlainLiteral literals in syntaxes for RDF graphs and for SPARQL is the already existing syntax for the corresponding plain literal, not the syntax for a typed literal. Therefore, typed literals with rdf:PlainLiteral as the datatype are considered by this specification to be not valid in syntaxes for RDF graphs or SPARQL.
</p><p>To implement this design and provide this interoperability, applications that employ this datatype <em class="RFC2119" title="MUST in RFC 2119 context">MUST</em> use plain literals (instead of rdf:PlainLiteral typed literals) whenever a syntax for plain literals is provided, such as in existing syntaxes for RDF graphs and SPARQL results.
</p><p>Additionally, systems may need similar restrictions for non-syntactic public interfaces. For instance, in <a class="external text" href="http://www.w3.org/TR/rdf-sparql-query/#sparqlBGPExtend" title="http://www.w3.org/TR/rdf-sparql-query/#sparqlBGPExtend">extended SPARQL basic graph matching</a>, the results of matching SPARQL basic graph patterns in an entailment regime that understands rdf:PlainLiteral <em class="RFC2119" title="MUST in RFC 2119 context">MUST</em> provide variable bindings in existing RDF plain literal form.
</p>
<a name="Functions_on__rdf:PlainLiteral_Data_Values"></a><h2> <span class="mw-headline">5 Functions on <tt>rdf:PlainLiteral</tt> Data Values </span></h2>
<p>This section defines functions that construct and operate on <tt>rdf:PlainLiteral</tt> data values. The terminology used and the way in which these functions are described are in accordance with the XQuery 1.0 and XPath 2.0 Functions and Operators [<cite><a href="#ref-xpath-func" title="">XPathFunc</a></cite>]. Each function is identified by a QName [<cite><a href="#ref-xml-namespaces" title="">XML Namespaces</a></cite>]. The error codes used in this section are given in Appendix G of the XPath 2.0 specification [<cite><a href="#ref-xpath20" title="">XPath20</a></cite>] and Appendix C of XQuery and XPath function specification [<cite><a href="#ref-xpath-func" title="">XPathFunc</a></cite>].
</p>
<a name="Functions_for_Assembling_and_Disassembling_rdf:PlainLiteral_Data_Values"></a><h3> <span class="mw-headline">5.1 Functions for Assembling and Disassembling <tt>rdf:PlainLiteral</tt> Data Values </span></h3>
<a name="plfn:PlainLiteral-from-string-lang"></a><h4> <span class="mw-headline">5.1.1 <tt>plfn:PlainLiteral-from-string-lang</tt> </span></h4>
<pre>plfn:PlainLiteral-from-string-lang( $arg1 as xs:string, $arg2 as xs:string) as rdf:PlainLiteral
</pre>
<p>Summary: returns the data value <<tt> $arg1, lowercase($arg2) </tt>> if <tt>$arg2</tt> is present, and returns the data value <tt>$arg1</tt> otherwise. Both arguments must be of type <tt>xs:string</tt> or one of its subtypes, and <tt>$arg2</tt> — if present — must be a (nonempty) language tag; otherwise, this function raises type error <a class="external text" href="http://www.w3.org/TR/xpath-functions/#ERRFORG0006" title="http://www.w3.org/TR/xpath-functions/#ERRFORG0006">err:FORG0006</a>. Note that, since in the value space of <tt>rdf:PlainLiteral</tt> language tags are in lowercase, this function converts <tt>$arg2</tt> to lowercase.
</p>
<a name="plfn:string-from-PlainLiteral"></a><h4> <span class="mw-headline">5.1.2 <tt> plfn:string-from-PlainLiteral</tt> </span></h4>
<pre> plfn:string-from-PlainLiteral( $arg as rdf:PlainLiteral) as xs:string
</pre>
<p>Summary: returns the string part <tt>s</tt> if <tt>$arg</tt> is a <tt>rdf:PlainLiteral</tt> data value of the form <<tt> s, l </tt>> or of the form <tt>s</tt>. If <tt>$arg</tt> is not of type <tt>rdf:PlainLiteral</tt>, this function raises type error <a class="external text" href="http://www.w3.org/TR/xpath-functions/#ERRFORG0006" title="http://www.w3.org/TR/xpath-functions/#ERRFORG0006">err:FORG0006</a>.
</p>
<a name="plfn:lang-from-PlainLiteral"></a><h4> <span class="mw-headline">5.1.3 <tt> plfn:lang-from-PlainLiteral</tt> </span></h4>
<pre> plfn:lang-from-PlainLiteral( $arg as rdf:PlainLiteral ) as xs:language
</pre>
<p>Summary: returns the language tag <tt>l</tt> if <tt>$arg</tt> is an <tt>rdf:PlainLiteral</tt> data value of the form <<tt> s, l </tt>>, and returns the empty string if <tt>$arg</tt> is an <tt>rdf:PlainLiteral</tt> data value of the form <tt>s</tt>. If <tt>$arg </tt> is not of type <tt>rdf:PlainLiteral</tt>, this function raises type error <a class="external text" href="http://www.w3.org/TR/xpath-functions/#ERRFORG0006" title="http://www.w3.org/TR/xpath-functions/#ERRFORG0006">err:FORG0006</a>.
</p>
<a name="The_Comparison_of_rdf:PlainLiteral_Data_Values"></a><h3> <span class="mw-headline">5.2 The Comparison of <tt>rdf:PlainLiteral</tt> Data Values </span></h3>
<p>The notion of collations used in this section is taken from <a class="external text" href="http://www.w3.org/TR/xpath-functions/#collations" title="http://www.w3.org/TR/xpath-functions/#collations">Section 7.3.1</a> of XPath and XQuery function specification [<cite><a href="#ref-xpath-func" title="">XPathFunc</a></cite>].
</p>
<a name="plfn:compare"></a><h4> <span class="mw-headline">5.2.1 <tt> plfn:compare</tt> </span></h4>
<pre> plfn:compare( $comparand1 as rdf:PlainLiteral?, $comparand2 as rdf:PlainLiteral? ) as xs:integer?
</pre>
<pre> plfn:compare( $comparand1 as rdf:PlainLiteral?, $comparand2 as rdf:PlainLiteral?, $collation as xs:string ) as xs:integer?
</pre>
<p>Summary: if either <tt>$comparand1</tt> or <tt>$comparand2</tt> is not of type <tt>rdf:PlainLiteral</tt>, of if <tt>$collation</tt> is specified but is not of type <tt>xs:string</tt>, this function raises type error <a class="external text" href="http://www.w3.org/TR/xpath-functions/#ERRFORG0006" title="http://www.w3.org/TR/xpath-functions/#ERRFORG0006">err:FORG0006</a>. Otherwise, the function returns the empty sequence if one of the arguments is empty, if one of <tt>$comparand1</tt> and <tt>$comparand2</tt> has a language tag and the other one does not, or if the language parts of <tt>$comparand1</tt> and <tt>$comparand2</tt> are unequal; otherwise, this function returns -1, 0, or 1 depending on whether the value of the string-part of <tt>$comparand1</tt> (or <tt>$comparand1</tt> itself if it has no language tag) is respectively less than, equal to, or greater than the value of the string-part of <tt>$comparand2</tt> (or <tt>$comparand2</tt> itself if it has no language tag). The collation used by the invocation of this function is determined according to the rules in Section 7.3.1 of the XPath and XQuery functions specification [<cite><a href="#ref-xpath-func" title="">XPathFunc</a></cite>].
</p><p>The first version of this function enables the comparison of <tt>rdf:PlainLiteral</tt> values using the XQuery operators <tt>"eq"</tt>, <tt>"ne"</tt>, <tt>"gt"</tt>, <tt>"lt"</tt>, <tt>"le"</tt>, and <tt>"ge"</tt>.
</p><p>The two functions may be viewed as declared XQuery functions with the following definitions:
</p>
<pre>declare function plfn:compare( $comparand1 as rdf:PlainLiteral?, $comparand2 as rdf:PlainLiteral? ) as xs:integer?
{
return
if ( fn:empty($comparand1) ) then $comparand1
else if ( fn:empty($comparand2) ) then $comparand2
else if ( fn:compare ( plfn:lang-from-PlainLiteral( $comparand1 ), plfn:lang-from-PlainLiteral( $comparand2 ) ) = 0 ) then
fn:compare ( plfn:string-from-PlainLiteral( $comparand1 ), plfn:string-from-PlainLiteral( $comparand2 ) )
}
</pre>
<pre>declare function plfn:compare( $comparand1 as rdf:PlainLiteral?, $comparand2 as rdf:PlainLiteral? $collation as xs:string ) as xs:integer?
{
return
if ( fn:empty($comparand1) ) then $comparand1
else if ( fn:empty($comparand2) ) then $comparand2
else if ( fn:compare ( plfn:lang-from-PlainLiteral( $comparand1 ), plfn:lang-from-PlainLiteral( $comparand2 ) ) = 0 ) then
fn:compare ( plfn:string-from-PlainLiteral( $comparand1 ) , plfn:string-from-PlainLiteral( $comparand2 ), $collation)
}
</pre>
<a name="Other_Functions_on_rdf:PlainLiteral_Data_Values"></a><h3> <span class="mw-headline">5.3 Other Functions on <tt>rdf:PlainLiteral</tt> Data Values </span></h3>
<a name="plfn:length"></a><h4> <span class="mw-headline">5.3.1 <tt> plfn:length</tt> </span></h4>
<pre> plfn:length($arg as rdf:PlainLiteral) as xs:integer
</pre>
<p>Summary: returns the number of characters in the string part <tt>s</tt> if <tt>$arg</tt> is an <tt>rdf:PlainLiteral</tt> data value of the form <<tt> s, l </tt>> or a string value <tt>s</tt>, respectively. If <tt>$arg</tt> is not of type <tt>rdf:PlainLiteral</tt>, this function raises type error <a class="external text" href="http://www.w3.org/TR/xpath-functions/#ERRFORG0006" title="http://www.w3.org/TR/xpath-functions/#ERRFORG0006">err:FORG0006</a>.
</p><p>This function may be viewed as a declared XQuery function with the following definition:
</p>
<pre>declare function plfn:length($arg as rdf:PlainLiteral?) as xs:integer
{
return
fn:string-length ( plfn:string-from-PlainLiteral( $arg ) )
}
</pre>
<a name="plfn:matches-language-range"></a><h4> <span class="mw-headline">5.3.2 <tt> plfn:matches-language-range</tt> </span></h4>
<pre> plfn:matches-language-range($arg as rdf:PlainLiteral?, $range as xs:string) as xs:boolean
</pre>
<p>Summary: This function is only defined if <tt>$arg</tt> is a sequence of length 0 or 1 of literals of type <tt>rdf:PlainLiteral</tt> and <tt>$range</tt> is of type <tt>xs:string</tt>; if the parameters do not satisfy these typing conditions, the function raises a type error err:FORG0006. If the typing conditions are fulfilled, the function returns <tt>true</tt> in case <tt>$arg</tt> is an <tt>rdf:PlainLiteral</tt> data value of the form <<tt> s, l </tt>> with <tt>l</tt> a language tag that matches the extended language range <tt>$range</tt> as specified by the extended filtering algorithm for "Matching of Language Tags" [<cite><a href="#ref-bcp-47" title="">BCP-47</a></cite>]; otherwise, it returns <tt>false</tt>. This means that the function returns <tt>false</tt> if the argument <tt>$arg</tt> is a string <tt>rdf:PlainLiteral</tt> data value. An empty input sequence is treated as a <tt>rdf:PlainLiteral</tt> data value consisting of the empty string, and accordingly on such input this function also returns <tt>false</tt>.
</p>
<a name="Acknowledgments"></a><h2> <span class="mw-headline">6 Acknowledgments </span></h2>
<p>The RIF and OWL Working Groups made parallel efforts to support strings with associated language tags, as found in RDF. This specification is the outcome of a collaboration between the two groups, and it is based on the work on the datatypes <tt>rif:text</tt> and <tt>owl:internationalizedString</tt>.
</p><p>In addition to members and chairs of both Working Groups, the editors would like to thank Addison Phillips, C. Michael Sperberg-McQueen, Eric Prud'hommeaux, Andy Seaborne, and Pat Hayes, along with other participants of the <a class="external text" href="http://lists.w3.org/Archives/Public/public-rdf-text/" title="http://lists.w3.org/Archives/Public/public-rdf-text/">public-rdf-text</a> mailing list, for their assistance in working out the details of this specification.
</p>
<a name="References"></a><h2> <span class="mw-headline">7 References </span></h2>
<dl><dt> <span id="ref-bcp-47">[BCP 47]</span>
</dt><dd> <cite><a class="external text" href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt" title="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">BCP 47 - Tags for Identifying Languages</a></cite>. A. Phillips and M. Davis, eds. IETF, September 2006. http://www.rfc-editor.org/rfc/bcp/bcp47.txt
</dd><dt> <span id="ref-bidi">[BIDI]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/International/questions/qa-bidi-controls" title="http://www.w3.org/International/questions/qa-bidi-controls">Unicode controls vs. markup for bidi support</a></cite>, Richard Ishida. Retrieved 11 June 2009 from http://www.w3.org/International/questions/qa-bidi-controls.
</dd><dt><span id="ref-iso-iec-10646">[ISO/IEC 10646]</span>
</dt><dd> <cite>ISO/IEC 10646-1:2000. Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane and ISO/IEC 10646-2:2001. Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 2: Supplementary Planes, as, from time to time, amended, replaced by a new edition or expanded by the addition of new parts. [Geneva]: International Organization for Standardization.</cite> ISO (International Organization for Standardization).
</dd><dt> <span id="ref-rdf-concepts">[RDF Concepts]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/" title="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">Resource Description Framework (RDF): Concepts and Abstract Syntax</a></cite>. Graham Klyne and Jeremy J. Carroll, eds. W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/. Latest version available as http://www.w3.org/TR/rdf-concepts/.
</dd><dt> <span id="ref-rdf-semantics">[RDF Semantics]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/" title="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">RDF Semantics</a></cite>. Patrick Hayes, ed., W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-mt-20040210/. Latest version available as http://www.w3.org/TR/rdf-mt/.
</dd><dt> <span id="ref-rfc-2119">[RFC 2119]</span>
</dt><dd> <cite><a class="external text" href="http://www.ietf.org/rfc/rfc2119.txt" title="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119: Key words for use in RFCs to Indicate Requirement Levels</a></cite>. Network Working Group, S. Bradner. IETF, March 1997, http://www.ietf.org/rfc/rfc2119.txt
</dd><dt> <span id="ref-rfc-3986">[<a class="external" href="http://tools.ietf.org/html/rfc3986" title="http://tools.ietf.org/html/rfc3986">RFC 3986</a>]</span>
</dt><dd> <cite><a class="external text" href="http://www.ietf.org/rfc/rfc3986.txt" title="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986: Uniform Resource Identifier (URI): Generic Syntax</a></cite>. T. Berners-Lee, R. Fielding, and L. Masinter. IETF, January 2005, http://www.ietf.org/rfc/rfc3986.txt
</dd><dt> <span id="ref-rfc-4647">[RFC 4647]</span>
</dt><dd> <cite><a class="external text" href="http://www.rfc-editor.org/rfc/rfc4647.txt" title="http://www.rfc-editor.org/rfc/rfc4647.txt">RFC 4647 - Matching of Language Tags</a></cite>. A. Phillips and M. Davis, IETF, September 2006.
</dd><dt> <span id="ref-ruby">[Ruby]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2001/REC-ruby-20010531" title="http://www.w3.org/TR/2001/REC-ruby-20010531">Ruby Annotation</a></cite>, M. Sawicki, M. Ishikawa, M. J. Dürst, T. Texin, M. Suignard, Editors, W3C Recommendation, 31 May 2001, http://www.w3.org/TR/2001/REC-ruby-20010531 . <a class="external text" href="http://www.w3.org/TR/ruby/" title="http://www.w3.org/TR/ruby/">Latest version</a> available at http://www.w3.org/TR/ruby/ .
</dd><dt> <span id="ref-sparql">[SPARQL]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/" title="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/">SPARQL Query Language for RDF</a></cite>. Eric Prud'hommeaux and Andy Seaborne, eds. W3C Recommendation, 15 January 2008, http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/. Latest version available as http://www.w3.org/TR/rdf-sparql-query/.
</dd><dt> <span id="ref-unicode">[UNICODE]</span>
</dt><dd> <cite><a class="external text" href="http://www.unicode.org/unicode/standard/versions/" title="http://www.unicode.org/unicode/standard/versions/">The Unicode Standard</a></cite>. Unicode The Unicode Consortium, Version 5.1.0, ISBN 0-321-48091-0, as updated from time to time by the publication of new versions. (See <a class="external free" href="http://www.unicode.org/unicode/standard/versions" title="http://www.unicode.org/unicode/standard/versions">http://www.unicode.org/unicode/standard/versions</a> for the latest version and additional information on versions of the standard and of the Unicode Character Database)."
</dd><dt> <span id="ref-xhtml">[XHTML]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2002/REC-xhtml1-20020801" title="http://www.w3.org/TR/2002/REC-xhtml1-20020801">XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition)</a></cite>, S. Pemberton, Editor, W3C Recommendation, 1 August 2002, http://www.w3.org/TR/2002/REC-xhtml1-20020801 . <a class="external text" href="http://www.w3.org/TR/xhtml1" title="http://www.w3.org/TR/xhtml1">Latest version</a> available at http://www.w3.org/TR/xhtml1 .
</dd><dt> <span id="ref-xml-namespaces">[XML Namespaces]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2006/REC-xml-names-20060816/" title="http://www.w3.org/TR/2006/REC-xml-names-20060816/">Namespaces in XML 1.0 (Second Edition)</a></cite>. Tim Bray, Dave Hollander, Andrew Layman, and Richard Tobin, eds. W3C Recommendation, 16 August 2006, http://www.w3.org/TR/2006/REC-xml-names-20060816/. Latest version available as http://www.w3.org/TR/REC-xml-names/.
</dd><dt> <span id="ref-xml-schema-datatypes">[XML Schema Datatypes]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/" title="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part 2: Datatypes Second Edition</a></cite>. Paul V. Biron, and Ashok Malhotra, eds. W3C Recommendation 28 October 2004, http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/. Latest version available as http://www.w3.org/TR/xmlschema-2/. This reference is to be considered a reference to <a class="external text" href="http://www.w3.org/TR/xmlschema11-2/" title="http://www.w3.org/TR/xmlschema11-2/">XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes</a> upon its expected publication as a W3C Recommendation (see <a href="http://www.w3.org/TR/2009/REC-owl2-conformance-20091027/#XML_Schema_Datatypes" title="Conformance">Section 2.3</a> in OWL 2 Conformance). The (non-normative) version of the XSD 1.1 document available at publication time is the <a class="external text" href="http://www.w3.org/TR/2009/CR-xmlschema11-2-20090430/" title="http://www.w3.org/TR/2009/CR-xmlschema11-2-20090430/">30 April 2009 Candidate Recommendation</a>.
</dd><dt> <span id="ref-xml">[XML]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/2008/REC-xml-20081126/" title="http://www.w3.org/TR/2008/REC-xml-20081126/">Extensible Markup Language (XML) 1.0 (Fifth Edition)</a></cite>. Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and François Yergeau, eds. W3C Recommendation, 26 November 2008, http://www.w3.org/TR/2008/REC-xml-20081126/. Latest version available as http://www.w3.org/TR/xml/.
</dd><dt> <span id="ref-xpath-func">[XPathFunc]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/xpath-functions/" title="http://www.w3.org/TR/xpath-functions/">XQuery 1.0 and XPath 2.0 Functions and Operators</a></cite>. Ashok Malhotra, Jim Melton, and Norman Walsh, eds. W3C Recommendation 23 January 2007.
</dd><dt> <span id="ref-xpath20">[XPath20]</span>
</dt><dd> <cite><a class="external text" href="http://www.w3.org/TR/xpath20/" title="http://www.w3.org/TR/xpath20/">XML Path Language (XPath) 2.0</a></cite>. Anders Berglund, Scott Boag, Don Chamberlin, Mary F. Fernández, Michael Kay, Jonathan Robie, and Jérôme Siméon, eds. W3C Recommendation 23 January 2007.
</dd></dl>
<div id="changelog">
<a name="Appendix:_Change_Log_.28Informative.29"></a><h2> <span class="mw-headline">8 Appendix: Change Log (Informative) </span></h2>
<a name="Changes_Since_Proposed_Recommendation"></a><h3> <span class="mw-headline">8.1 Changes Since Proposed Recommendation </span></h3>
<p>This section summarizes the changes to this document since the <a class="external text" href="http://www.w3.org/TR/2009/PR-rdf-plain-literal-20090922/" title="http://www.w3.org/TR/2009/PR-rdf-plain-literal-20090922/">Proposed Recommendation</a> of 22 September, 2009.
</p>
<ul><li> Several editorial clarifications and improvements were made.
</li></ul>
<a name="Changes_Since_Candidate_Recommendation"></a><h3> <span class="mw-headline">8.2 Changes Since Candidate Recommendation </span></h3>
<p>This section summarizes the changes to this document since the <a class="external text" href="http://www.w3.org/TR/2009/CR-rdf-plain-literal-20090611/" title="http://www.w3.org/TR/2009/CR-rdf-plain-literal-20090611/">Candidate Recommendation</a> of 11 June, 2009.
</p>
<ul><li> The "At Risk" warnings were removed. The indicated features remain in the document.
</li><li> An error in the order of parameters in an example was corrected
</li><li> xs:assertions and xs:lang were corrected to xs:assertion and xs:language
</li><li> The references to XML Schema Datatypes were rephrased to account for version 1.1 not yet being a Recommendation
</li></ul>
<a name="Changes_Since_Last_Call"></a><h3> <span class="mw-headline">8.3 Changes Since Last Call </span></h3>
<p>Since the <a class="external text" href="http://www.w3.org/TR/2009/WD-rdf-text-20090421/" title="http://www.w3.org/TR/2009/WD-rdf-text-20090421/">last call draft</a> of 21 April 2009, the following changes have been made:
</p>
<ul><li> The name of the datatype was changed from rdf:text to rdf:PlainLiteral, to clarify the role and purpose of the datatype
</li><li> The names of the builtins and their namespace were changed to match the change in the name of the datatype
</li><li> The introduction and section 4 were rewritten to reframe this datatype as having a special relationship to RDF plain literals.
</li><li> The notion of an entailment relationship between plain literals and rdf:PlainLiteral typed literals was removed, since rdf:PlainLiterals are now more clearly understood to not occur in RDF graph syntaxes.
</li><li> The characters used to delimit pairs was changed, since problems were reported with &lang; and &rang; in some browsers
</li></ul>
</div>
</body>
</html>