You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4332 lines
207 KiB
4332 lines
207 KiB
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
|
<head>
|
|
<meta name="rcsid" content="$Id: Overview.html,v 1.1 2003/09/04 16:15:55 vivien Exp $"/>
|
|
<title>RDF/XML Syntax Specification (Revised)</title>
|
|
<style type="text/css">
|
|
.added {
|
|
color: green;
|
|
text-decoration: underline;
|
|
background: white;
|
|
}
|
|
.removed {
|
|
color: red;
|
|
background: white;
|
|
text-decoration: line-through;
|
|
}
|
|
|
|
.actionLabel {
|
|
font-weight: bold
|
|
}
|
|
|
|
.actionDecision {
|
|
color: black;
|
|
background: #99ffff;
|
|
}
|
|
|
|
div.issue,
|
|
div.block,
|
|
div.note { margin-left: 2em; }
|
|
|
|
|
|
|
|
div.productionOuter {
|
|
margin: 0em;
|
|
padding: 0em;
|
|
}
|
|
|
|
div.productionInner {
|
|
color: black;
|
|
/* tan */
|
|
/* background-color: #d2b48c; */
|
|
/* cyan */
|
|
/* background-color: #99ffff; */
|
|
/* mauve */
|
|
background-color: #efeff8;
|
|
padding: 0.5em;
|
|
margin: 0em;
|
|
}
|
|
|
|
div.productionInner p {
|
|
margin-left: 0em;
|
|
margin-top: 0em;
|
|
margin-bottom: 0em
|
|
}
|
|
|
|
div.ntripleOuter {
|
|
margin: 0em;
|
|
padding: 0em;
|
|
}
|
|
|
|
div.ntripleInner {
|
|
color: black;
|
|
/* LightGoldenrod1 */
|
|
background-color: #ffec8b;
|
|
padding: 0.5em;
|
|
margin: 0em;
|
|
}
|
|
|
|
div.ntripleInner p {
|
|
margin-left: 0em;
|
|
margin-top: 0em;
|
|
margin-bottom: 0em
|
|
}
|
|
|
|
div.exampleOuter {
|
|
border: 4px double gray;
|
|
margin: 0em;
|
|
padding: 0em;
|
|
}
|
|
|
|
div.exampleInner {
|
|
color: black;
|
|
/* mauve */
|
|
background-color: #efeff8;
|
|
border-top-style: double;
|
|
border-top-color: #d3d3d3;
|
|
border-bottom-width: 4px;
|
|
border-bottom-style: double;
|
|
border-bottom-color: #d3d3d3;
|
|
padding: 4px;
|
|
margin: 0em;
|
|
}
|
|
|
|
div.exampleInner pre {
|
|
margin-left: 0em;
|
|
margin-top: 0em;
|
|
margin-bottom: 0em;
|
|
font-family: monospace;
|
|
/* font-size: smaller */
|
|
}
|
|
|
|
div.preExample {
|
|
margin-left: 0em;
|
|
margin-top: 0em;
|
|
margin-bottom: 0em;
|
|
font-family: monospace;
|
|
/* font-size: smaller */
|
|
}
|
|
|
|
span.nodeStripe {
|
|
color: #ff0000;
|
|
}
|
|
|
|
span.termdef {
|
|
color: #850021;
|
|
}
|
|
|
|
a.termref:visited, a.termref:link {
|
|
font-family: sans-serif;
|
|
font-style: normal;
|
|
color: black;
|
|
text-decoration: none
|
|
}
|
|
|
|
span.arrow {
|
|
font-style: normal;
|
|
font-weight: bold
|
|
}
|
|
|
|
.figure {
|
|
font-weight: bold;
|
|
text-align: center;
|
|
padding: 2px;
|
|
}
|
|
|
|
</style>
|
|
<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
|
|
</head>
|
|
<body>
|
|
|
|
<div class="head">
|
|
<a href="http://www.w3.org/"><img height="48"
|
|
width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home" /></a>
|
|
|
|
<h1 id="title">RDF/XML Syntax Specification (Revised)</h1>
|
|
|
|
<h2 id="doctype">W3C Working Draft 05 September 2003</h2>
|
|
|
|
<dl>
|
|
<dt>This version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20030905">http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20030905</a><br />
|
|
</dd>
|
|
|
|
<dt>Latest Version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/rdf-syntax-grammar">http://www.w3.org/TR/rdf-syntax-grammar</a><br />
|
|
</dd>
|
|
|
|
<dt>Previous Version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20030123">http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20030123</a><br />
|
|
</dd>
|
|
|
|
<dt>Editor:</dt>
|
|
<dd><a href="http://purl.org/net/dajobe/">Dave Beckett</a> (University of Bristol)</dd>
|
|
|
|
<dt>Series editor:</dt>
|
|
<dd><a href="http://www-uk.hpl.hp.com/people/bwm/">Brian McBride</a> (Hewlett Packard Labs)</dd>
|
|
</dl>
|
|
|
|
<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"> Copyright</a> © 2003 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.lcs.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>, <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</a> rules apply.</p>
|
|
|
|
<hr title="Separator for header" />
|
|
</div>
|
|
|
|
|
|
<h2 class="nonum">
|
|
<a id="abstract" name="abstract">Abstract</a>
|
|
</h2>
|
|
|
|
<p>The Resource Description Framework
|
|
(<abbr title="Resource Description Framework">RDF</abbr>) is a
|
|
general-purpose language for representing information in the Web.</p>
|
|
|
|
<p>This document defines an
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML</a>
|
|
syntax for RDF called RDF/XML in terms of
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a>,
|
|
the
|
|
<a href="http://www.w3.org/TR/2001/REC-xml-infoset-20011024/">XML Information Set</a>
|
|
and <a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a>.
|
|
The <a href="#section-Infoset-Grammar">formal grammar</a> for the syntax
|
|
is annotated with actions generating triples of the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-graph">RDF graph</a>
|
|
as defined in
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">RDF Concepts and Abstract Syntax</a>.
|
|
The triples are written using the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>
|
|
RDF graph serializing format which enables more precise recording of
|
|
the mapping in a machine processable form. The mappings are
|
|
recorded as tests cases, gathered and published in
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/">RDF Test Cases</a>.</p>
|
|
|
|
|
|
<h2 class="nonum">
|
|
<a id="status" name="status">Status of this Document</a>
|
|
</h2>
|
|
|
|
<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>
|
|
|
|
<p>This is a W3C
|
|
<a href="http://www.w3.org/2003/06/Process-20030618/tr.html#RecsWD">Working Draft</a>
|
|
of the <a href="http://www.w3.org/2001/sw/RDFCore/">RDF Core Working Group</a>
|
|
and has been produced as part of the W3C
|
|
<a href="http://www.w3.org/2001/sw/">Semantic Web Activity</a>
|
|
(<a href="http://www.w3.org/2001/sw/Activity">Activity Statement</a>).</p>
|
|
|
|
<p>In this version the main changes are for
|
|
<code>parseType="Collection"</code> to remove one generated triple
|
|
per-item, the removal of <code>rdf:bagID</code> entirely and in the
|
|
simplification of typed literals to remove language tags (such as
|
|
from <code>xml:lang</code>). The Working Group particularly seeks
|
|
feedback on the impact of this change on the datatype
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#section-XMLLiteral">rdf:XMLLiteral</a>.
|
|
Detailed changes from the previous
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20030123/">23 January 2003 working draft</a> are described in
|
|
the <a href="#section-Changes">Changes section</a>.
|
|
These are
|
|
<a href="#section-Changes-non-editorial">non-trivial changes</a>
|
|
as approved by the RDF Core WG, and
|
|
<a href="#section-Changes-editorial">editorial changes</a>
|
|
made, typically in response to last call comments, at the discretion
|
|
of the editors.
|
|
</p>
|
|
|
|
<p>
|
|
This Working Draft consolidates changes and editorial improvements undertaken in response to
|
|
feedback received during the <a
|
|
href="http://www.w3.org/2003/06/Process-20030618/tr#last-call">Last Call</a> publication
|
|
of the RDFCore specifications which began on 23 January 2003. A list of the Last Call
|
|
issues addressed by the Working Group is
|
|
<a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/">also available</a>.
|
|
This document has been endorsed by the RDF Core Working Group.
|
|
</p>
|
|
|
|
<p>This document is being released for review by W3C Members and
|
|
other interested parties to encourage feedback and comments,
|
|
especially with regard to how the changes made affect existing
|
|
implementations and content.</p>
|
|
|
|
<p>In conformance with
|
|
<a href="http://www.w3.org/Consortium/Process-20010719/#ipr">W3C policy</a>
|
|
requirements, known patent and
|
|
<acronym title="Intellectual Property Rights">IPR</acronym>
|
|
constraints associated with this Working Draft are detailed on the
|
|
<a href="http://www.w3.org/2001/sw/RDFCore/ipr-statements" rel="disclosure">RDF Core Working Group Patent Disclosure</a> page.</p>
|
|
|
|
<p>Comments on this document are invited and should be sent to the
|
|
public mailing list
|
|
<a href="mailto:www-rdf-comments@w3.org">www-rdf-comments@w3.org</a>.
|
|
An archive of comments is available at
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/">http://lists.w3.org/Archives/Public/www-rdf-comments/</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Publication as a Working Draft does not imply endorsement
|
|
by the W3C Membership. This is a draft document and may be
|
|
updated, replaced or obsoleted by other documents at any time.
|
|
It is inappropriate to cite this document as other than work in progress.
|
|
A list of current W3C Recommendations and other technical documents can
|
|
be found at <a href="/TR/">http://www.w3.org/TR/</a>.
|
|
</p>
|
|
|
|
|
|
|
|
<div class="toc">
|
|
<h2 class="nonum">
|
|
<a id="contents" name="contents">Table of Contents</a>
|
|
</h2>
|
|
|
|
<p class="toc">
|
|
1 <a href="#section-Introduction">Introduction</a><br />
|
|
2 <a href="#section-Syntax">An XML Syntax for RDF</a><br />
|
|
  2.1 <a href="#section-Syntax-intro">Introduction</a><br />
|
|
  2.2 <a href="#section-Syntax-node-property-elements">Node Elements and Property Elements</a><br />
|
|
  2.3 <a href="#section-Syntax-multiple-property-elements">Multiple Property Elements</a><br />
|
|
  2.4 <a href="#section-Syntax-empty-property-elements">Empty Property Elements</a><br />
|
|
  2.5 <a href="#section-Syntax-property-attributes">Property Attributes</a><br />
|
|
  2.6 <a href="#section-Syntax-complete-document">Completing the Document: Document Element and XML Declaration</a><br />
|
|
  2.7 <a href="#section-Syntax-languages">Languages: <code>xml:lang</code></a><br />
|
|
  2.8 <a href="#section-Syntax-XML-literals">XML Literals: <code>rdf:parseType="Literal"</code></a><br />
|
|
  2.9 <a href="#section-Syntax-datatyped-literals">Typed Literals: <code>rdf:datatype</code></a><br />
|
|
  2.10 <a href="#section-Syntax-blank-nodes">Identifying Blank Nodes: <code>rdf:nodeID</code></a><br />
|
|
  2.11 <a href="#section-Syntax-parsetype-resource">Omitting Blank Nodes: <code>rdf:parseType="Resource"</code></a><br />
|
|
  2.12 <a href="#section-Syntax-property-attributes-on-property-element">Omitting Nodes: Property Attributes on an empty Property Element</a><br />
|
|
  2.13 <a href="#section-Syntax-typed-nodes">Typed Node Elements</a><br />
|
|
  2.14 <a href="#section-Syntax-ID-xml-base">Abbreviating URI References: <code>rdf:ID</code> and <code>xml:base</code></a><br />
|
|
  2.15 <a href="#section-Syntax-list-elements">Container Membership Property Elements: <code>rdf:li</code> and <code>rdf:_</code><em>n</em></a><br />
|
|
  2.16 <a href="#section-Syntax-parsetype-Collection">Collections: <code>rdf:parseType="Collection"</code></a><br />
|
|
  2.17 <a href="#section-Syntax-reifying">Reifying Statements: <code>rdf:ID</code></a><br />
|
|
3 <a href="#section-Terminology">Terminology</a><br />
|
|
4 <a href="#section-MIME-Type">RDF MIME Type, File Extension and Macintosh File Type</a><br />
|
|
5 <a href="#section-Global">Global Issues</a><br />
|
|
  5.1 <a href="#section-Namespace">The RDF Namespace and Vocabulary</a><br />
|
|
  5.2 <a href="#section-Identifiers">Identifiers</a><br />
|
|
  5.3 <a href="#section-baseURIs">Resolving URIs</a><br />
|
|
  5.4 <a href="#section-constraints">Constraints</a><br />
|
|
  5.5 <a href="#section-conformance">Conformance</a><br />
|
|
6 <a href="#section-Data-Model">Syntax Data Model</a><br />
|
|
  6.1 <a href="#section-Nodes">Events</a><br />
|
|
  6.2 <a href="#section-Infoset-Mapping">Information Set Mapping</a><br />
|
|
  6.3 <a href="#section-Infoset-Grammar-Notation">Grammar Notation</a><br />
|
|
7 <a href="#section-Infoset-Grammar">RDF/XML Grammar</a><br />
|
|
  7.1 <a href="#section-grammar-summary">Grammar Summary</a><br />
|
|
  7.2 <a href="#section-grammar-productions">Grammar Productions</a><br />
|
|
  7.3 <a href="#section-Reification">Reification Rules</a><br />
|
|
  7.4 <a href="#section-List-Expand">List Expansion Rules</a><br />
|
|
8 <a href="#section-Serialising">Serializing an RDF Graph to RDF/XML</a><br />
|
|
9 <a href="#section-rdf-in-HTML">Using RDF/XML with HTML and XHTML</a><br />
|
|
10 <a href="#section-rdf-in-SVG">Using RDF/XML with SVG</a><br />
|
|
11 <a href="#section-Acknowledgments">Acknowledgments</a><br />
|
|
12 <a href="#section-References">References</a></p>
|
|
|
|
<h3><a id="section-Appendices-TOC" name="section-Appendices-TOC">Appendices</a></h3>
|
|
|
|
<p class="toc">
|
|
A <a href="#section-Schemas">Syntax Schemas</a> (Informative)<br />
|
|
  A.1 <a href="#section-RELAXNG-Schema">RELAX NG Compact Syntax Schema</a> (Informative)<br />
|
|
B <a href="#section-Changes">Changes</a> (Informative)
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<h2>
|
|
<a id="section-Introduction" name="section-Introduction">1 Introduction</a>
|
|
<a id="section-Syntax-more" name="section-Syntax-more"></a>
|
|
</h2>
|
|
|
|
<p>This document defines the
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML</a>
|
|
<a href="#ref-xml">[XML]</a>
|
|
syntax for RDF graphs
|
|
which was originally defined in the
|
|
<a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">RDF Model & Syntax</a> <a href="#ref-rdfms">[RDF-MS]</a> W3C
|
|
Recommendation. Subsequent implementations of this syntax and
|
|
comparison of the resulting RDF graphs have shown that there was
|
|
ambiguity — implementations generated different graphs and certain
|
|
syntax forms were not widely implemented.</p>
|
|
|
|
<p>This document revises the
|
|
<a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/#grammar">original RDF/XML grammar</a>
|
|
in terms of
|
|
<a href="http://www.w3.org/TR/2001/REC-xml-infoset-20011024/">XML Information Set</a>
|
|
<a href="#ref-xml-infoset">[INFOSET]</a> information items which moves
|
|
away from the rather low-level details of XML, such as particular
|
|
forms of empty elements. This allows the grammar to be more
|
|
precisely recorded and the mapping from the XML syntax to the RDF
|
|
Graph more clearly shown. The mapping to the RDF graph is done by
|
|
emitting statements in the form defined in the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>
|
|
section of
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/">RDF Test Cases</a> <a href="#ref-test-cases">[RDF-TESTS]</a>
|
|
which creates an RDF graph, that has semantics defined by
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-mt-20030905/">RDF Semantics</a> <a href="#ref-rdf-model">[RDF-SEMANTICS]</a>.
|
|
</p>
|
|
|
|
|
|
<p>The complete specification of RDF consists of a number of documents:</p>
|
|
|
|
<ul>
|
|
<li><a href="http://www.w3.org/TR/2003/WD-rdf-primer-20030905/">RDF Primer</a> <a href="#ref-rdfprimer">[RDF-PRIMER]</a></li>
|
|
|
|
<li><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">RDF Concepts and Abstract Syntax</a> <a href="#ref-rdfconcepts">[RDF-CONCEPTS]</a></li>
|
|
|
|
<li><a href="http://www.w3.org/TR/2003/WD-rdf-mt-20030905/">RDF Semantics</a> <a href="#ref-rdf-model">[RDF-SEMANTICS]</a></li>
|
|
|
|
<li><a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML Syntax</a> (this document)</li>
|
|
|
|
<li><a href="http://www.w3.org/TR/2003/WD-rdf-schema-20030905/">RDF Vocabulary Description Language 1.0: RDF Schema</a> <a href="#ref-rdfvocab">[RDF-VOCABULARY]</a></li>
|
|
|
|
<li><a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/">RDF Test Cases</a> <a href="#ref-test-cases">[RDF-TESTS]</a></li>
|
|
|
|
</ul>
|
|
|
|
<p>For a longer introduction to the RDF/XML syntax with a historical
|
|
perspective, see
|
|
<a href="http://www.w3.org/2001/10/stripes/">RDF: Understanding the Striped RDF/XML Syntax</a> <a href="#ref-stripedrdf">[STRIPEDRDF]</a>.</p>
|
|
|
|
|
|
|
|
|
|
<h2>
|
|
<a id="section-Syntax" name="section-Syntax">2 An XML Syntax for RDF</a>
|
|
</h2>
|
|
|
|
<p>This section introduces the RDF/XML syntax, describes how it
|
|
encodes RDF graphs and explains this with examples. If there is any
|
|
conflict between this informal description and the formal description
|
|
of the syntax and grammar in sections
|
|
<a href="#section-Data-Model">6 Syntax Data Model</a> and
|
|
<a href="#section-Infoset-Grammar">7 RDF/XML Grammar</a>, the
|
|
latter two sections take precedence.
|
|
</p>
|
|
|
|
|
|
<h3><a id="section-Syntax-intro" name="section-Syntax-intro">2.1 Introduction</a></h3>
|
|
|
|
<p>The
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">RDF Concepts and Abstract Syntax</a> <a href="#ref-rdfconcepts">[RDF-CONCEPTS]</a>
|
|
defines the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#section-data-model">RDF Graph data model</a> (Section 3.1)
|
|
and the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#section-Graph-syntax">RDF Graph abstract syntax</a> (Section 6).
|
|
Along with the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-mt-20030905/">RDF Semantics</a> <a href="#ref-rdf-model">[RDF-SEMANTICS]</a>
|
|
this provides an abstract syntax with a formal semantics for it.
|
|
The RDF graph has
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-node">nodes</a>
|
|
and labeled directed <em>arcs</em>
|
|
that link pairs of nodes and this is represented as a set of
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-triple">RDF triples</a>
|
|
where each triple contains a
|
|
<em>subject node</em>, <em>predicate</em> and <em>object node</em>.
|
|
Nodes are
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>,
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-literal">RDF literals</a>
|
|
or are <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node">blank nodes</a>.
|
|
Blank nodes may be given
|
|
a document-local, non-<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> identifier called a
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifier</a>.
|
|
Predicates are
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
and can be interpreted as either a relationship between the two
|
|
nodes or as defining an attribute value (object node) for some
|
|
subject node.</p>
|
|
|
|
<p>In order to encode the graph in XML, the nodes and predicates have to be
|
|
represented in XML terms — element names, attribute names, element contents
|
|
and attribute values.
|
|
RDF/XML uses XML
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName">QNames</a>
|
|
as defined in <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a> <a href="#ref-namespaces">[XML-NS]</a>
|
|
to represent
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>.
|
|
All QNames have a <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-NSName">namespace name</a> which is a URI reference
|
|
and a short
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-LocalPart">local name</a>.
|
|
In addition, QNames can either have a short
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-Prefix">prefix</a>
|
|
or be declared with the default namespace declaration and have none (but
|
|
still have a namespace name)</p>
|
|
|
|
<p>The
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
represented by a QName is determined by appending the
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-LocalPart">local name</a>
|
|
part of the QName after the
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-NSName">namespace name</a> (URI reference) part of the QName.
|
|
This is used to shorten the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
of all predicates and some nodes.
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> identifying
|
|
subject and object nodes can also be stored as XML attribute values.
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-literal">RDF literals</a>,
|
|
which can only be object nodes,
|
|
become either XML element text content or XML attribute values.</p>
|
|
|
|
<p>A graph can be considered a collection of paths of the form node,
|
|
predicate arc, node, predicate arc, node, predicate arc, ... node
|
|
which cover the entire graph. In RDF/XML these turn into sequences of
|
|
elements inside elements which alternate between elements for nodes
|
|
and predicate arcs. This has been called a series of node/arc
|
|
stripes. The node at the start of the sequence turns into the
|
|
outermost element, the next predicate arc turns into a child element,
|
|
and so on. The stripes generally start at the top of an RDF/XML
|
|
document and always begin with nodes.
|
|
</p>
|
|
|
|
<p>Several RDF/XML examples are given in the following sections
|
|
building up to complete RDF/XML documents. <a href="#example7">Example 7</a>
|
|
is the first complete RDF/XML document.</p>
|
|
|
|
|
|
<h3><a id="section-Syntax-node-property-elements" name="section-Syntax-node-property-elements">2.2 Node Elements and Property Elements</a></h3>
|
|
|
|
|
|
<div class="figure">
|
|
<img src="figure1.png" alt="Graph for RDF/XML Example" height="202" width="600" /><br />
|
|
<a id="figure1" name="figure1">Figure 1: Graph for RDF/XML Example</a> (<a href="figure1.svg">SVG version</a>)
|
|
</div>
|
|
|
|
<p>An RDF graph is given in <a href="#figure1">Figure 1</a>
|
|
where the nodes are represented as ovals and contain their
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
where they have them, all the predicate arcs are labeled with
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
and
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-plain-literal">plain literal</a>
|
|
nodes have been written in rectangles.</p>
|
|
|
|
|
|
<p>If we follow one node, predicate arc ... , node path through the
|
|
graph shown in <a href="#figure2">Figure 2</a>:
|
|
</p>
|
|
|
|
<div class="figure">
|
|
<img src="figure2.png" alt="One Path Through the Graph" height="212" width="600" /><br />
|
|
<a id="figure2" name="figure2">Figure 2: One Path Through the Graph</a> (<a href="figure2.svg">SVG version</a>)
|
|
</div>
|
|
|
|
<p>The left hand side of the <a href="#figure2">Figure 2</a> graph corresponds to the node/predicate arc stripes:</p>
|
|
|
|
<ol>
|
|
<li>Node with <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> <code>http://www.w3.org/TR/rdf-syntax-grammar</code></li>
|
|
<li>Predicate Arc labeled with <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> <code>http://example.org/terms/editor</code></li>
|
|
<li>Node with no <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a></li>
|
|
<li>Predicate Arc labeled with <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> <code>http://example.org/terms/homePage</code></li>
|
|
<li>Node with <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> <code>http://purl.org/net/dajobe/</code></li>
|
|
</ol>
|
|
|
|
<p>In RDF/XML, the sequence of 5 nodes and predicate arcs on
|
|
the left hand side of <a href="#figure2">Figure 2</a> corresponds to
|
|
the usage of five XML elements of two types, for the graph nodes and
|
|
predicate arcs. These are conventionally called <em>node elements</em> and
|
|
<em>property elements</em> respectively. In the striping shown in
|
|
<a href="#example1">Example 1</a>, <code>rdf:Description</code> is the
|
|
node element (used three times for the three nodes) and
|
|
<code>ex:editor</code> and <code>ex:homePage</code> are the two
|
|
property elements.
|
|
</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example1" name="example1">Example 1: Striped RDF/XML (<span class="nodeStripe">nodes</span> and <span class="arcStripe">predicate arcs</span>)</a></div>
|
|
<div class="exampleInner">
|
|
<div class="preExample">
|
|
<code>
|
|
<span class="nodeStripe"><rdf:Description></span><br />
|
|
<span class="arcStripe"><ex:editor></span><br />
|
|
<span class="nodeStripe"><rdf:Description></span><br />
|
|
<span class="arcStripe"><ex:homePage></span><br />
|
|
<span class="nodeStripe"><rdf:Description></span><br />
|
|
<span class="nodeStripe"></rdf:Description></span><br />
|
|
<span class="arcStripe"></ex:homePage></span><br />
|
|
<span class="nodeStripe"></rdf:Description></span><br />
|
|
<span class="arcStripe"></ex:editor></span><br />
|
|
<span class="nodeStripe"></rdf:Description></span><br />
|
|
</code>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<p>The <a href="#figure2">Figure 2</a> graph consists of some nodes
|
|
that are
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
(and others that are not) and this can be added
|
|
to the RDF/XML using the <code>rdf:about</code> attribute on node
|
|
elements to give the result in <a href="#example2">Example 2</a>:</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example2" name="example2">Example 2: Node Elements with RDF URI references added</a></div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
|
|
<ex:editor>
|
|
<rdf:Description>
|
|
<ex:homePage>
|
|
<rdf:Description rdf:about="http://purl.org/net/dajobe/">
|
|
</rdf:Description>
|
|
</ex:homePage>
|
|
</rdf:Description>
|
|
</ex:editor>
|
|
</rdf:Description>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<p>Adding the other two paths through the <a href="#figure1">Figure 1</a>
|
|
graph to the RDF/XML in
|
|
<a href="#example2">Example 2</a>
|
|
gives the result in <a href="#example3">Example 3</a>
|
|
(this example fails to show that the blank node is
|
|
shared between the two paths, see
|
|
<a href="#section-Syntax-blank-nodes">2.10</a>):</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example3" name="example3">Example 3: Complete description of all graph paths</a></div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
|
|
<ex:editor>
|
|
<rdf:Description>
|
|
<ex:homePage>
|
|
<rdf:Description rdf:about="http://purl.org/net/dajobe/">
|
|
</rdf:Description>
|
|
</ex:homePage>
|
|
</rdf:Description>
|
|
</ex:editor>
|
|
</rdf:Description>
|
|
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
|
|
<ex:editor>
|
|
<rdf:Description>
|
|
<ex:fullName>Dave Beckett</ex:fullName>
|
|
</rdf:Description>
|
|
</ex:editor>
|
|
</rdf:Description>
|
|
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
|
|
<dc:title>RDF/XML Syntax Specification (Revised)</dc:title>
|
|
</rdf:Description>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-multiple-property-elements" name="section-Syntax-multiple-property-elements">2.3 Multiple Property Elements</a></h3>
|
|
|
|
<p>There are several abbreviations that can be used to make common
|
|
uses easier to write down. In particular, it is common that a
|
|
subject node in the RDF graph has multiple outgoing predicate arcs. RDF/XML
|
|
provides an abbreviation for the corresponding syntax when a node
|
|
element about a resource has multiple property elements. This can be
|
|
abbreviated by using multiple child property elements inside the node
|
|
element describing the subject node.</p>
|
|
|
|
<p>Taking <a href="#example3">Example 3</a>, there are
|
|
two node elements that can take multiple property elements.
|
|
The subject node with URI reference
|
|
<code>http://www.w3.org/TR/rdf-syntax-grammar</code>
|
|
has property elements <code>ex:editor</code> and <code>ex:title</code>
|
|
and the node element for the blank node can take <code>ex:homePage</code>
|
|
and <code>ex:fullName</code>. This abbreviation
|
|
gives the result shown in <a href="#example4">Example 4</a>
|
|
(this example does show that there is a single blank node):</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example4" name="example4">Example 4: Using multiple property elements on a node element</a></div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
|
|
<ex:editor>
|
|
<rdf:Description>
|
|
<ex:homePage>
|
|
<rdf:Description rdf:about="http://purl.org/net/dajobe/">
|
|
</rdf:Description>
|
|
</ex:homePage>
|
|
<ex:fullName>Dave Beckett</ex:fullName>
|
|
</rdf:Description>
|
|
</ex:editor>
|
|
<dc:title>RDF/XML Syntax Specification (Revised)</dc:title>
|
|
</rdf:Description>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-empty-property-elements" name="section-Syntax-empty-property-elements">2.4 Empty Property Elements</a></h3>
|
|
|
|
<p>When a predicate arc in an RDF graph points to an object node which has no
|
|
further predicate arcs, which appears in RDF/XML as an empty node element
|
|
<code><rdf:Description rdf:about="..."></code>
|
|
<code></rdf:Description></code>
|
|
(or <code><rdf:Description rdf:about="..." /></code>)
|
|
this form can be shortened. This is done by using the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
of the object node as the value of an XML attribute <code>rdf:resource</code>
|
|
on the containing property element and making the property element empty.
|
|
</p>
|
|
|
|
<p>In this example, the property element <code>ex:homePage</code>
|
|
contains an empty node element with the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
<code>http://purl.org/net/dajobe/</code>. This can be replaced with
|
|
the empty property element form giving the result shown in
|
|
<a href="#example5">Example 5</a>:</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example5" name="example5">Example 5: Empty property elements</a></div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
|
|
<ex:editor>
|
|
<rdf:Description>
|
|
<ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>
|
|
<ex:fullName>Dave Beckett</ex:fullName>
|
|
</rdf:Description>
|
|
</ex:editor>
|
|
<dc:title>RDF/XML Syntax Specification (Revised)</dc:title>
|
|
</rdf:Description>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-property-attributes" name="section-Syntax-property-attributes">2.5 Property Attributes</a></h3>
|
|
|
|
<p>When a property element's content is string literal,
|
|
it may be possible to use it as an XML attribute on the
|
|
containing node element.
|
|
This can be done for multiple properties on the same node element
|
|
only if the property element name is not repeated
|
|
(required by XML — attribute names are unique on an XML element)
|
|
and any in-scope <code>xml:lang</code> on the
|
|
property element's string literal (if any) are the same (see <a href="#section-Syntax-languages">Section 2.7</a>)
|
|
This abbreviation is known as a <em>Property Attribute</em>
|
|
and can be applied to any node element or with the
|
|
<code>rdf:parseType="Resource"</code> form
|
|
(see <a href="#section-Syntax-parsetype-resource">Section 2.11</a>).</p>
|
|
|
|
<p>This abbreviation can also be used when the property element is
|
|
<code>rdf:type</code> and it has an <code>rdf:resource</code> attribute
|
|
the value of which is interpreted as a
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> object node.</p>
|
|
|
|
<p>In <a href="#example5">Example 5</a>:,
|
|
there are two property elements with string literal content,
|
|
the <code>dc:title</code> and <code>ex:fullName</code>
|
|
property elements. These can be replaced with property attributes
|
|
giving the result shown in <a href="#example6">Example 6</a>:</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example6" name="example6">Example 6: Replacing property elements with string literal content into property attributes</a></div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
|
|
dc:title="RDF/XML Syntax Specification (Revised)">
|
|
<ex:editor>
|
|
<rdf:Description ex:fullName="Dave Beckett">
|
|
<ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>
|
|
</rdf:Description>
|
|
</ex:editor>
|
|
</rdf:Description>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-complete-document" name="section-Syntax-complete-document">2.6 Completing the Document: Document Element and XML Declaration</a></h3>
|
|
|
|
<p>To create a complete RDF/XML document, the serialization of the
|
|
graph into XML must be contained inside an <code>rdf:RDF</code> XML
|
|
element which becomes the top-level XML document element.
|
|
Conventionally the <code>rdf:RDF</code> element is also used to
|
|
declare the XML namespaces that are used, although that is not
|
|
required. The XML specification also permits an XML declaration at
|
|
the top of the document with the XML version and possibly the XML
|
|
content encoding (this is optional but recommended).</p>
|
|
|
|
<p>Completing the RDF/XML could be done for any of the correct
|
|
complete graph examples from
|
|
<a href="#example4">Example 4</a> onwards but taking the smallest
|
|
<a href="#example6">Example 6</a> and adding the final components,
|
|
gives a complete RDF/XML representation of the original
|
|
<a href="#figure1">Figure 1</a> graph
|
|
in <a href="#example7">Example 7</a>:</p>
|
|
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example7" name="example7">Example 7: Complete RDF/XML description of Figure 1 graph</a> (<a href="example07.rdf">example07.rdf</a> output <a href="example07.nt">example07.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
|
|
dc:title="RDF/XML Syntax Specification (Revised)">
|
|
<ex:editor>
|
|
<rdf:Description ex:fullName="Dave Beckett">
|
|
<ex:homePage rdf:resource="http://purl.org/net/dajobe/" />
|
|
</rdf:Description>
|
|
</ex:editor>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-languages" name="section-Syntax-languages">2.7 Languages: <code>xml:lang</code></a></h3>
|
|
|
|
<p>RDF/XML permits the use of the <code>xml:lang</code> attribute as defined by
|
|
<a href="http://www.w3.org/TR/REC-xml#sec-lang-tag">2.12 Language Identification</a>
|
|
of <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a> <a href="#ref-xml">[XML]</a>
|
|
to allow the identification of content language.
|
|
The <code>xml:lang</code> attribute can be used on any node element or property element
|
|
to indicate that the included content is in the given language.
|
|
<a href="#section-Syntax-datatyped-literals">Typed literals</a>
|
|
which includes <a href="#section-Syntax-XML-literals">XML literals</a>
|
|
are not affected by this attribute.
|
|
The most specific in-scope language present
|
|
(if any) is applied to property element string literal content or
|
|
property attribute values. The <code>xml:lang=""</code> form
|
|
indicates the absence of a language identifier.</p>
|
|
|
|
<p>Some examples of marking content languages for RDF properties are shown in
|
|
<a href="#example8">Example 8</a>:</p>
|
|
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example8" name="example8">Example 8: Complete example of <code>xml:lang</code></a> (<a href="example08.rdf">example08.rdf</a> output <a href="example08.nt">example08.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
|
|
<dc:title>RDF/XML Syntax Specification (Revised)</dc:title>
|
|
<dc:title xml:lang="en">RDF/XML Syntax Specification (Revised)</dc:title>
|
|
<dc:title xml:lang="en-US">RDF/XML Syntax Specification (Revised)</dc:title>
|
|
</rdf:Description>
|
|
|
|
<rdf:Description rdf:about="http://example.org/buchen/baum" xml:lang="de">
|
|
<dc:title>Das Baum</dc:title>
|
|
<dc:description>Das Buch ist außergewöhnlich</dc:description>
|
|
<dc:title xml:lang="en">The Tree</dc:title>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<h3><a id="section-Syntax-XML-literals" name="section-Syntax-XML-literals">2.8 XML Literals: <code>rdf:parseType="Literal"</code></a></h3>
|
|
|
|
<p>RDF allows
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-XMLLiteral">XML literals</a>
|
|
(<a href="#ref-rdfconcepts">[RDF-CONCEPTS]</a> Section 5, <cite>XML Content within an RDF graph</cite>)
|
|
to be given as the object node of a predicate.
|
|
These are written in RDF/XML as content of a property element (not
|
|
a property attribute) and indicated using the
|
|
<code>rdf:parseType="Literal"</code> attribute on the containing
|
|
property element.
|
|
</p>
|
|
|
|
|
|
<p>An example of writing an XML literal is given in
|
|
<a href="#example9">Example 9</a> where
|
|
there is a single RDF triple with the subject node
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
<code>http://example.org/item01</code>, the predicate
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
<code>http://example.org/stuff/1.0/prop</code> (from
|
|
<code>ex:prop</code>) and the object node with XML literal
|
|
content beginning <code>a:Box</code>.
|
|
</p>
|
|
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example9" name="example9">Example 9: Complete example of <code>rdf:parseType="Literal"</code></a> (<a href="example09.rdf">example09.rdf</a> output <a href="example09.nt">example09.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://example.org/item01">
|
|
<ex:prop rdf:parseType="Literal"
|
|
xmlns:a="http://example.org/a#"><a:Box required="true">
|
|
<a:widget size="10" />
|
|
<a:grommit id="23" /></a:Box>
|
|
</ex:prop>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-datatyped-literals" name="section-Syntax-datatyped-literals">2.9 Typed Literals: <code>rdf:datatype</code></a></h3>
|
|
|
|
<p>RDF allows
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-typed-literal">typed literals</a>
|
|
to be given as the object node of a predicate. Typed literals consist of a literal
|
|
string and a datatype
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>. These are written in RDF/XML using
|
|
the same syntax for literal string nodes in the property element form
|
|
(not property attribute) but with an additional
|
|
<code>rdf:datatype="</code><em>datatypeURI</em><code>"</code>
|
|
attribute on the property element. Any
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> can be used in the attribute.
|
|
</p>
|
|
|
|
<p>An example of an RDF
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-typed-literal">typed literal</a>
|
|
is given in <a href="#example10">Example 10</a> where
|
|
there is a single RDF triple with the subject node
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
<code>http://example.org/item01</code>, the predicate
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
<code>http://example.org/stuff/1.0/size</code> (from
|
|
<code>ex:size</code>) and the object node with the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-typed-literal">typed literal</a>
|
|
("123", <code>http://www.w3.org/2001/XMLSchema#int</code>)
|
|
to be interpreted as an
|
|
<a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">W3C XML Schema</a>
|
|
<a href="#ref-xml-schema2">[XML-SCHEMA2]</a> datatype int.
|
|
</p>
|
|
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example10" name="example10">Example 10: Complete example of <code>rdf:datatype</code></a> (<a href="example10.rdf">example10.rdf</a> output <a href="example10.nt">example10.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://example.org/item01">
|
|
<ex:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int">123</ex:size>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<h3><a id="section-Syntax-blank-nodes" name="section-Syntax-blank-nodes">2.10 Identifying Blank Nodes: <code>rdf:nodeID</code></a></h3>
|
|
|
|
<p><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node">Blank nodes</a> in the RDF graph are distinct but have no
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> identifier.
|
|
It is sometimes required that the same graph <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node">blank node</a> is referred to in the
|
|
RDF/XML in multiple places, such as at the subject and object
|
|
of several RDF triples. In this case, a <em><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifier</a></em>
|
|
can be given to the <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node">blank node</a> for identifying it
|
|
in the document. Blank node identifiers in RDF/XML are scoped to the
|
|
containing XML Information Set
|
|
<a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>.
|
|
A <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifier</a> is used
|
|
on a node element to replace
|
|
<code>rdf:about="</code><em>RDF URI reference</em><code>"</code>
|
|
or on a property element to replace
|
|
<code>rdf:resource="</code><em>RDF URI reference</em><code>"</code>
|
|
with <code>rdf:nodeID="</code><em><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifier</a></em><code>"</code>
|
|
in both cases.</p>
|
|
|
|
<p>Taking <a href="#example7">Example 7</a> and explicitly giving
|
|
a <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifier</a> of <code>abc</code> to the blank node in it
|
|
gives the result shown in <a href="#example11">Example 11</a>.
|
|
The second <code>rdf:Description</code> property element is
|
|
about the blank node.</p>
|
|
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example11" name="example11">Example 11: Complete RDF/XML description of graph using <code>rdf:nodeID</code> identifying the blank node</a> (<a href="example11.rdf">example11.rdf</a> output <a href="example11.nt">example11.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
|
|
dc:title="RDF/XML Syntax Specification (Revised)">
|
|
<ex:editor rdf:nodeID="abc"/>
|
|
</rdf:Description>
|
|
|
|
<rdf:Description rdf:nodeID="abc"
|
|
ex:fullName="Dave Beckett">
|
|
<ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-parsetype-resource" name="section-Syntax-parsetype-resource">2.11 Omitting Blank Nodes: <code>rdf:parseType="Resource"</code></a></h3>
|
|
|
|
<p><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node">Blank nodes</a> (not <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> nodes) in RDF graphs can be written
|
|
in a form that allows the
|
|
<code><rdf:Description></code>
|
|
<code></rdf:Description></code> pair to be omitted.
|
|
The omission is done by putting an
|
|
<code>rdf:parseType="Resource"</code>
|
|
attribute on the containing property element
|
|
that turns the property element into a property-and-node element,
|
|
which can itself have both property elements and property attributes.
|
|
Property attributes and the <code>rdf:nodeID</code> attribute
|
|
are not permitted on property-and-node elements.
|
|
</p>
|
|
|
|
<p>Taking the earlier <a href="#example7">Example 7</a>,
|
|
the contents of the <code>ex:editor</code> property element
|
|
could be alternatively done in this fashion to give
|
|
the form shown in <a href="#example12">Example 12</a>:</p>
|
|
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example12" name="example12">Example 12: Complete example using <code>rdf:parseType="Resource"</code></a> (<a href="example12.rdf">example12.rdf</a> output <a href="example12.nt">example12.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
|
|
dc:title="RDF/XML Syntax Specification (Revised)">
|
|
<ex:editor rdf:parseType="Resource">
|
|
<ex:fullName>Dave Beckett</ex:fullName>
|
|
<ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>
|
|
</ex:editor>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-property-attributes-on-property-element" name="section-Syntax-property-attributes-on-property-element">2.12 Omitting Nodes: Property Attributes on an empty Property Element</a></h3>
|
|
|
|
<p>If all of the property elements on a blank node element have
|
|
string literal values with the same in-scope <code>xml:lang</code>
|
|
value (if present) and each of these property elements appears at
|
|
most once and there is at most one <code>rdf:type</code> property
|
|
element with a <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> object node, these can be abbreviated by
|
|
moving them to be property attributes on the containing property
|
|
element which is made an empty element.</p>
|
|
|
|
<p>Taking the earlier <a href="#example5">Example 5</a>,
|
|
the <code>ex:editor</code> property element contains a
|
|
blank node element with two property elements
|
|
<code>ex:fullname</code> and <code>ex:homePage</code>.
|
|
<code>ex:homePage</code> is not suitable here since it
|
|
does not have a string literal value, so it is being
|
|
<em>ignored</em> for the purposes of this example.
|
|
The abbreviated form removes the <code>ex:fullName</code> property element
|
|
and adds a new property attribute <code>ex:fullName</code> with the
|
|
string literal value of the deleted property element
|
|
to the <code>ex:editor</code> property element.
|
|
The blank node element becomes implicit in the now empty
|
|
<code>ex:editor</code> property element. The result is shown in
|
|
<a href="#example13">Example 13</a>.</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example13" name="example13">Example 13: Complete example of property attributes on an empty property element</a> (<a href="example13.rdf">example13.rdf</a> output <a href="example13.nt">example13.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
|
|
dc:title="RDF/XML Syntax Specification (Revised)">
|
|
<ex:editor ex:fullName="Dave Beckett" />
|
|
<!-- Note the ex:homePage property has been ignored for this example -->
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-typed-nodes" name="section-Syntax-typed-nodes">2.13 Typed Node Elements</a></h3>
|
|
|
|
<p>It is common for RDF graphs to have <code>rdf:type</code> predicates
|
|
from subject nodes. These are conventionally called <em>typed
|
|
nodes</em> in the graph, or <em>typed node elements</em> in the
|
|
RDF/XML. RDF/XML allows this triple to be expressed more concisely.
|
|
by replacing the <code>rdf:Description</code> node element name with
|
|
the namespaced-element corresponding to the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> of the value of
|
|
the type relationship. There may, of course, be multiple <code>rdf:type</code>
|
|
predicates but only one can be used in this way, the others must remain as
|
|
property elements or property attributes.
|
|
</p>
|
|
|
|
<p>The typed node elements are commonly used in RDF/XML with the built-in
|
|
classes in the <a href="#section-Namespace">RDF vocabulary</a>:
|
|
<code>rdf:Seq</code>, <code>rdf:Bag</code>, <code>rdf:Alt</code>,
|
|
<code>rdf:Statement</code>, <code>rdf:Property</code> and
|
|
<code>rdf:List</code>.</p>
|
|
|
|
<p>For example, the RDF/XML in <a href="#example14">Example 14</a>
|
|
could be written as shown in <a href="#example15">Example 15</a>.</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example14" name="example14">Example 14: Complete example with <code>rdf:type</code></a> (<a href="example14.rdf">example14.rdf</a> output <a href="example14.nt">example14.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://example.org/thing">
|
|
<rdf:type rdf:resource="http://example.org/stuff/1.0/Document"/>
|
|
<dc:title>A marvelous thing</dc:title>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example15" name="example15">Example 15: Complete example using a typed node element to replace an <code>rdf:type</code></a> (<a href="example15.rdf">example15.rdf</a> output <a href="example15.nt">example15.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<ex:Document rdf:about="http://example.org/thing">
|
|
<dc:title>A marvelous thing</dc:title>
|
|
</ex:Document>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-ID-xml-base" name="section-Syntax-ID-xml-base">2.14 Abbreviating URIs: <code>rdf:ID</code> and <code>xml:base</code></a></h3>
|
|
|
|
<p>RDF/XML allows further abbreviating <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> in XML attributes in two
|
|
ways. The XML Infoset provides a base URI attribute <code>xml:base</code>
|
|
that sets the base URI for resolving relative <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>, otherwise the base URI is that of the document. The base URI applies to
|
|
all RDF/XML attributes that deal with <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> which are <code>rdf:about</code>,
|
|
<code>rdf:resource</code>, <code>rdf:ID</code>
|
|
and <code>rdf:datatype</code>.</p>
|
|
|
|
<p>The <code>rdf:ID</code> attribute on a node element (not property
|
|
element, that has another meaning) can be used instead of
|
|
<code>rdf:about</code> and gives a relative <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> equivalent to <code>#</code>
|
|
concatenated with the <code>rdf:ID</code> attribute value. So for
|
|
example if <code>rdf:ID="name"</code>, that would be equivalent
|
|
to <code>rdf:about="#name"</code>. <code>rdf:ID</code> provides an additional
|
|
check since the same <em>name</em> can only appear once in the
|
|
scope of an <code>xml:base</code> value (or document, if none is given),
|
|
so is useful for defining a set of distinct,
|
|
related terms relative to the same <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>.</p>
|
|
|
|
<p>Both forms require a base URI to be known, either from an in-scope
|
|
<code>xml:base</code> or from the URI of the RDF/XML document.</p>
|
|
|
|
<p><a href="#example16">Example 16</a> shows abbreviating the node
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> of <code>http://example.org/here/#snack</code> using an
|
|
<code>xml:base</code> of <code>http://example.org/here/</code> and
|
|
an <code>rdf:ID</code> on the <code>rdf:Description</code> node element.
|
|
The object node of the <code>ex:prop</code> predicate is an
|
|
absolute <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
resolved from the <code>rdf:resource</code> XML attribute value
|
|
using the in-scope base URI to give the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
<code>http://example.org/here/fruit/apple</code>.</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example16" name="example16">Example 16: Complete example using <code>rdf:ID</code> and <code>xml:base</code> for shortening URIs </a> (<a href="example16.rdf">example16.rdf</a> output <a href="example16.nt">example16.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:ex="http://example.org/stuff/1.0/"
|
|
xml:base="http://example.org/here/">
|
|
<rdf:Description rdf:ID="snack">
|
|
<ex:prop rdf:resource="fruit/apple"/>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<h3><a id="section-Syntax-list-elements" name="section-Syntax-list-elements">2.15 Container Membership Property Elements: <code>rdf:li</code> and <code>rdf:_</code><em>n</em></a></h3>
|
|
|
|
<p>RDF has a set of container membership properties
|
|
and corresponding property elements that are mostly used with
|
|
instances of the
|
|
<code>rdf:Seq</code>, <code>rdf:Bag</code> and <code>rdf:Alt</code>
|
|
classes which may be written as typed node elements. The list properties are
|
|
<code>rdf:_1</code>, <code>rdf:_2</code> etc. and can be written
|
|
as property elements or property attributes as shown in
|
|
<a href="#example17">Example 17</a>. There is an <code>rdf:li</code>
|
|
special property element that is equivalent to
|
|
<code>rdf:_1</code>, <code>rdf:_2</code> in order,
|
|
explained in detail in <a href="#section-List-Expand">section 7.4</a>.
|
|
The mapping to the container membership properties is
|
|
always done in the order that the <code>rdf:li</code> special
|
|
property elements appear in XML — the document order is significant.
|
|
The equivalent RDF/XML to <a href="#example17">Example 17</a> written
|
|
in this form is shown in <a href="#example18">Example 18</a>.
|
|
</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example17" name="example17">Example 17: Complex example using RDF list properties</a> (<a href="example17.rdf">example17.rdf</a> output <a href="example17.nt">example17.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
<rdf:Seq rdf:about="http://example.org/favourite-fruit">
|
|
<rdf:_1 rdf:resource="http://example.org/banana"/>
|
|
<rdf:_2 rdf:resource="http://example.org/apple"/>
|
|
<rdf:_3 rdf:resource="http://example.org/pear"/>
|
|
</rdf:Seq>
|
|
</rdf:RDF>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example18" name="example18">Example 18: Complete example using <code>rdf:li</code> property element for list properties</a> (<a href="example18.rdf">example18.rdf</a> output <a href="example18.nt">example18.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
<rdf:Seq rdf:about="http://example.org/favourite-fruit">
|
|
<rdf:li rdf:resource="http://example.org/banana"/>
|
|
<rdf:li rdf:resource="http://example.org/apple"/>
|
|
<rdf:li rdf:resource="http://example.org/pear"/>
|
|
</rdf:Seq>
|
|
</rdf:RDF>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-parsetype-Collection" name="section-Syntax-parsetype-Collection">2.16 Collections: <code>rdf:parseType="Collection"</code></a></h3>
|
|
|
|
<p>RDF/XML allows an <code>rdf:parseType="Collection"</code>
|
|
attribute on a property element to let it contain multiple node
|
|
elements. These contained node elements give the set of subject
|
|
nodes of the collection. This syntax form corresponds to a set of
|
|
triples connecting the collection of subject nodes, the exact triples
|
|
generated are described in detail in
|
|
<a href="#parseTypeCollectionPropertyElt">Section 7.2.19 Production parseTypeCollectionPropertyElt</a>.
|
|
The collection construction is always done in the order that the node
|
|
elements appear in the XML document. Whether the order of the
|
|
collection of nodes is significant is an application issue and not
|
|
defined here.
|
|
</p>
|
|
|
|
<p><a href="#example19">Example 19</a> shows a collection of three
|
|
nodes elements at the end of the <code>ex:hasFruit</code>
|
|
property element using this form.</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example19" name="example19">Example 19: Complete example of a RDF collection of nodes using <code>rdf:parseType="Collection"</code></a> (<a href="example19.rdf">example19.rdf</a> output <a href="example19.nt">example19.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:ex="http://example.org/stuff/1.0/">
|
|
<rdf:Description rdf:about="http://example.org/basket">
|
|
<ex:hasFruit rdf:parseType="Collection">
|
|
<rdf:Description rdf:about="http://example.org/banana"/>
|
|
<rdf:Description rdf:about="http://example.org/apple"/>
|
|
<rdf:Description rdf:about="http://example.org/pear"/>
|
|
</ex:hasFruit>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h3><a id="section-Syntax-reifying" name="section-Syntax-reifying">2.17 Reifying Statements: <code>rdf:ID</code></a></h3>
|
|
|
|
<p>The <code>rdf:ID</code> attribute can be used on a property
|
|
element to reify the triple that it generates (See
|
|
<a href="#section-Reification">section 7.3 Reification Rules</a> for the
|
|
full details).
|
|
The identifier for the triple should be constructed as a
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
made from the relative URI reference
|
|
<code>#</code> concatenated with the <code>rdf:ID</code> attribute
|
|
value, resolved against the in-scope base URI. So for example if
|
|
<code>rdf:ID="triple"</code>, that would be equivalent to the <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
formed from relative URI reference <code>#triple</code> against the base URI.
|
|
Each (<code>rdf:ID</code> attribute value, base URI)
|
|
pair has to be unique in an RDF/XML document,
|
|
see <a href="#constraint-id">constraint-id</a>.
|
|
</p>
|
|
|
|
<p><a href="#example20">Example 20</a> shows a <code>rdf:ID</code>
|
|
being used to reify a triple made from the <code>ex:prop</code>
|
|
property element giving the reified triple the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> <code>http://example.org/triples/#triple1</code>.</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example20" name="example20">Example 20: Complete example of <code>rdf:ID</code> reifying a property element</a> (<a href="example20.rdf">example20.rdf</a> output <a href="example20.nt">example20.nt</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:ex="http://example.org/stuff/1.0/"
|
|
xml:base="http://example.org/triples/">
|
|
<rdf:Description rdf:about="http://example.org/">
|
|
<ex:prop rdf:ID="triple1">blah</ex:prop>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h2>
|
|
<a id="section-Terminology" name="section-Terminology">3 Terminology</a>
|
|
</h2>
|
|
|
|
<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
|
|
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
|
|
this document are to be interpreted as described in
|
|
<a href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>
|
|
<a href="#ref-keywords">[KEYWORDS]</a>.</p>
|
|
|
|
|
|
<h2><a id="section-MIME-Type" name="section-MIME-Type">4 RDF MIME Type, File Extension and Macintosh File Type</a></h2>
|
|
|
|
<p>The Internet media type / MIME type for RDF/XML is
|
|
"<code>application/rdf+xml</code>" —
|
|
see <a href="http://www.ietf.org/rfc/rfc3023.txt">RFC 3032</a>
|
|
<a href="#ref-rfc3023">[RFC-3023]</a> section 8.18.
|
|
</p>
|
|
|
|
<div class="note"><p><strong>Registration Note (Informative):</strong>
|
|
For the state of the MIME type registration, consult
|
|
<a href="http://www.iana.org/assignments/media-types/">IANA MIME Media Types</a>[<a href="#ref-iana-media-types">[IANA-MEDIA-TYPES]</a>
|
|
</p></div>
|
|
|
|
|
|
<p>It is recommended that RDF/XML files have the extension
|
|
<code>".rdf"</code> (all lowercase) on all platforms.</p>
|
|
|
|
<p>It is recommended that RDF/XML files stored on Macintosh HFS file
|
|
systems be given a file type of <code>"rdf "</code>
|
|
(all lowercase, with a space character as the fourth letter).</p>
|
|
|
|
|
|
<h2><a id="section-Global" name="section-Global">5 Global Issues</a></h2>
|
|
|
|
|
|
<h3><a id="section-Namespace" name="section-Namespace">5.1 The RDF Namespace and Vocabulary</a></h3>
|
|
|
|
<div class="note"><p><strong>Note (Informative):</strong>
|
|
The names <code>aboutEach</code> and <code>aboutEachPrefix</code> were removed
|
|
from the language and the RDF vocabulary by the RDF Core Working Group.
|
|
See the resolution of issues
|
|
<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteach">rdfms-abouteach</a> and
|
|
<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteachprefix">rdfms-abouteachprefix</a>
|
|
for further information.
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Note (Informative):</strong>
|
|
The names <code>List</code>, <code>first</code>,
|
|
<code>rest</code> and <code>nil</code> were added for issue
|
|
<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-seq-representation">rdfms-seq-representation</a>.
|
|
The names <code>XMLLiteral</code> and <code>datatype</code> were added
|
|
to support RDF datatyping.
|
|
The name <code>nodeID</code> was added
|
|
for issue
|
|
<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-syntax-incomplete">rdfms-syntax-incomplete</a>.
|
|
See the
|
|
<a href="http://www.w3.org/2000/03/rdf-tracking/">RDF Core Issues List</a>
|
|
for further information.
|
|
</p></div>
|
|
|
|
|
|
<p>The
|
|
<span class="termdef"><a id="rdf-ns-uri" name="rdf-ns-uri">RDF namespace URI reference</a></span> (or namespace name) is
|
|
<code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code>
|
|
and is typically used in XML with the prefix <code>rdf</code>
|
|
although other prefix strings may be used.
|
|
The <span class="termdef"><a id="rdf-vocabulary" name="rdf-vocabulary">RDF Vocabulary</a></span>
|
|
is identified by this namespace name and consists of the following names only:</p>
|
|
|
|
<dl>
|
|
<dt>Syntax names — not concepts</dt>
|
|
<dd>
|
|
<p>
|
|
<code>RDF Description ID about parseType resource li nodeID datatype</code>
|
|
</p>
|
|
</dd>
|
|
|
|
<dt>Class names</dt>
|
|
<dd>
|
|
<p>
|
|
<code>Seq Bag Alt Statement Property XMLLiteral List</code>
|
|
</p>
|
|
</dd>
|
|
|
|
<dt>Property names</dt>
|
|
<dd>
|
|
<p>
|
|
<code>subject predicate object type value first rest _</code><em>n</em><br />
|
|
where <em>n</em> is a decimal integer greater than zero with no leading zeros.
|
|
</p>
|
|
</dd>
|
|
|
|
<dt>Resource names</dt>
|
|
<dd>
|
|
<p>
|
|
<code>nil</code>
|
|
</p>
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
<p>Any other names are not defined and SHOULD generate a warning when
|
|
encountered, but should otherwise behave normally.</p>
|
|
|
|
<p>Within RDF/XML documents it is not permitted to use XML namespaces
|
|
whose namespace name is the
|
|
<a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a>
|
|
concatenated with additional characters.</p>
|
|
|
|
<p>Throughout this document the terminology <code>rdf:</code><em>name</em>
|
|
will be used to indicate <em>name</em> is from the RDF vocabulary
|
|
and it has a <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> of the concatenation of the
|
|
<a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a> and <em>name</em>.
|
|
For example, <code>rdf:type</code> has the <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
<code>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</code></p>
|
|
|
|
|
|
<h3><a id="section-Identifiers" name="section-Identifiers">5.2 Identifiers</a></h3>
|
|
|
|
<p>The
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-graph">RDF Graph</a>
|
|
(<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">RDF Concepts and Abstract Syntax</a> Section 3)
|
|
defines three types of nodes and one type of predicate:</p>
|
|
|
|
<dl>
|
|
|
|
<dt><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> nodes and predicates</dt>
|
|
<dd>
|
|
<p><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> (<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">RDF Concepts and Abstract Syntax</a> Section 3.1)
|
|
can be either:</p>
|
|
<ul>
|
|
<li>given as XML attribute values interpreted as relative
|
|
URI references that are resolved against the in-scope base URI
|
|
as described in <a href="#section-baseURIs">section 5.3</a>
|
|
to give absolute <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a></li>
|
|
<li>transformed from XML namespace-qualified element and attribute names
|
|
(QNames)</li>
|
|
<li>transformed from <code>rdf:ID</code> attribute values.</li>
|
|
</ul>
|
|
|
|
<p>Within RDF/XML, XML QNames are transformed into
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
by appending the XML local name to the namespace name (URI reference).
|
|
For example, if the XML namespace prefix <code>foo</code> has
|
|
namespace name (URI reference)
|
|
<code>http://example.org/somewhere/</code> then the QName
|
|
<code>foo:bar</code> would correspond to the RDF URI reference
|
|
<code>http://example.org/somewhere/bar</code>. Note that this
|
|
restricts which
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> can be made and the same URI can be given in multiple ways.</p>
|
|
|
|
<p>The <a href="#idAttr"><code>rdf:ID</code></a> values
|
|
are transformed into
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
by appending the attribute value to the result of appending
|
|
"#" to the in-scope base URI which is defined in
|
|
<a href="#section-baseURIs">Section 5.3 Resolving URIs</a></p>
|
|
</dd>
|
|
|
|
<dt>Literal nodes (always object nodes)</dt>
|
|
<dd><p>
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-literal">RDF literals</a> (<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">RDF Concepts and Abstract Syntax</a> 6.5) are either
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-plain-literal">plain literals</a> (ibid),
|
|
or
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-typed-literal">typed literals</a> (ibid).
|
|
The latter includes <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-XMLLiteral">XML literals</a> (ibid section 5, <cite>XML Content within an RDF graph</cite>).
|
|
</p>
|
|
</dd>
|
|
|
|
<dt>Blank Node Identifiers</dt>
|
|
<dd><p><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node">Blank nodes</a> have distinct identity in the RDF graph.
|
|
When the graph is written in a syntax such as RDF/XML, these
|
|
blank nodes may need graph-local identifiers and a syntax
|
|
in order to preserve this distinction. These local identifiers are called
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifiers</a>
|
|
and are used in RDF/XML as values of the <code>rdf:nodeID</code> attribute
|
|
with the syntax given in <a href="#nodeIdAttr">Production nodeIdAttr</a>.
|
|
Blank node identifiers in RDF/XML are scoped to the XML Information Set
|
|
<a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>.</p>
|
|
|
|
<p>In addition to <code>rdf:nodeID</code> attribute values being used
|
|
to give blank node identifiers, these identifiers also need to be
|
|
generated when not given explicitly. Such generated blank node
|
|
identifiers must not clash with any blank node identifiers derived
|
|
from <code>rdf:nodeID</code> attribute values. This can be
|
|
implemented by any method that preserves the distinct identity of all
|
|
the blank nodes in the graph, that is, the same blank node identifier
|
|
is not given for different blank nodes. One possible method would be
|
|
to add a constant prefix to all the <code>rdf:nodeID</code> attribute
|
|
values and ensure no generated blank node identifiers ever used that
|
|
prefix. Another would be to map all <code>rdf:nodeID</code> attribute
|
|
values to new generated blank node identifiers and perform that mapping
|
|
on all such values in the RDF/XML document.</p>
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
|
|
<h3><a id="section-baseURIs" name="section-baseURIs">5.3 Resolving URIs</a></h3>
|
|
|
|
<p>RDF/XML supports
|
|
<a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>
|
|
which defines a
|
|
<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
|
|
accessor for each
|
|
<a href="#section-root-node"><span class="arrow">·</span>root event<span class="arrow">·</span></a> and
|
|
<a href="#section-element-node"><span class="arrow">·</span>element event<span class="arrow">·</span></a>.
|
|
Relative URI references are resolved into
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
according to the algorithm specified in
|
|
<a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>
|
|
(and RFC 2396).
|
|
These specifications do not specify an algorithm for resolving a
|
|
fragment identifier alone, such as <code>#foo</code>, or the empty
|
|
string <code>""</code> into an
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>. In RDF/XML, a fragment identifier
|
|
is transformed into a
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
by appending the fragment identifier to the in-scope base URI. The
|
|
empty string is transformed
|
|
into an
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>
|
|
by substituting the in-scope base URI.
|
|
</p>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test001.rdf">test001.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test001.nt">test001.nt</a>
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test004.rdf">test004.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test004.nt">test004.nt</a>
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test008.rdf">test008.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test008.nt">test008.nt</a>
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.rdf">test013.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.nt">test013.nt</a>
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test016.rdf">test016.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test016.nt">test016.nt</a>
|
|
</p></div>
|
|
|
|
<p>An empty same document reference ""
|
|
resolves against the URI part of the base URI; any fragment part
|
|
is ignored. See
|
|
<a href="http://www.isi.edu/in-notes/rfc2396.txt">Uniform Resource Identifiers (URI)</a> <a href="#ref-uri">[URIS]</a> section 4.2
|
|
</p>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.rdf">test013.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.nt">test013.nt</a>
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Implementation Note (Informative):</strong>
|
|
When using a hierarchical base
|
|
URI that has no path component (/), it must be added before using as a
|
|
base URI for resolving.
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test011.rdf">test011.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test011.nt">test011.nt</a>
|
|
</p></div>
|
|
|
|
|
|
<h3><a id="section-constraints" name="section-constraints">5.4 Constraints</a></h3>
|
|
|
|
<dl>
|
|
<dt><strong><a id="constraint-id" name="constraint-id">constraint-id</a></strong><br /></dt>
|
|
<dd><p>Each application of production <a href="#idAttr">idAttr</a>
|
|
matches an attribute. The pair formed by the
|
|
<a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
|
|
accessor of the matched attribute and the
|
|
<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
|
|
accessor of the matched attribute is unique within a single RDF/XML
|
|
document.</p>
|
|
|
|
<p>The syntax of the names must match the
|
|
<a href="#rdf-id">rdf-id production</a>.</p>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test014.rdf">test014.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test014.nt">test014.nt</a>
|
|
</p></div>
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
|
|
<h3><a id="section-conformance" name="section-conformance">5.5 Conformance</a></h3>
|
|
|
|
<dl>
|
|
<dt>Definition:<br /></dt>
|
|
<dd>An <span class="termdef"><a id="dfn-rdf-document" name="dfn-rdf-document">RDF Document</a></span> is a serialization of an
|
|
<a href="http://www.w3.org/TR/rdf-concepts/#dfn-rdf-graph">RDF Graph</a>
|
|
into a concrete syntax.</dd>
|
|
|
|
<dt>Definition:<br /></dt>
|
|
<dd>An <span class="termdef"><a name="dfn-rdf-xml-document">RDF/XML Document</a></span> is an
|
|
<a href="#dfn-rdf-document" class="termref">RDF Document</a> written in the
|
|
recommended XML transfer syntax for RDF as defined in this document.</dd>
|
|
|
|
<dt>Conformance:<br /></dt>
|
|
<dd>An <a href="#dfn-rdf-xml-document" class="termref">RDF/XML Document</a> is a
|
|
<span class="termdef"><a name="dfn-conforming-rdf-xml-document">conforming RDF/XML document</a></span>
|
|
if it adheres to the specification defined in this document.</dd>
|
|
</dl>
|
|
|
|
|
|
<h2>
|
|
<a id="section-Data-Model" name="section-Data-Model">6 Syntax Data Model</a>
|
|
</h2>
|
|
|
|
<p>This document specifies the syntax of RDF/XML as a grammar on an
|
|
alphabet of symbols. The symbols are called <em>events</em> in the
|
|
style of the <a href="#ref-xpath">[XPATH]</a> 
|
|
<a href="http://www.w3.org/TR/xpath#infoset">Information Set Mapping</a>.
|
|
A sequence of events is normally derived from an XML document, in
|
|
which case they are in document order as defined below in
|
|
<a href="#section-Infoset-Mapping">Section 6.2 Information Set Mapping</a>.
|
|
The sequence these events form are intended to be similar to the sequence
|
|
of events produced by the <a href="#ref-sax">[SAX2]</a> XML API from
|
|
the same XML document. Sequences of events may be checked against
|
|
the grammar to determine whether they are or are not syntactically
|
|
well-formed RDF/XML.</p>
|
|
|
|
<p>The grammar productions may include actions which fire when the
|
|
production is recognized. Taken together these actions define a
|
|
transformation from any syntactically well-formed RDF/XML sequence of
|
|
events into an RDF graph represented in the
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>
|
|
language.</p>
|
|
|
|
<p>The model given here illustrates one way to create a representation of
|
|
an <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-graph">RDF Graph</a>
|
|
from an RDF/XML document. It does not mandate any implementation
|
|
method — any other method that results in a representation of the same
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-graph">RDF Graph</a>
|
|
may be used.</p>
|
|
|
|
<p>In particular:</p>
|
|
<ul>
|
|
<li>This specification permits any
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#implementation-note">representation</a>
|
|
of an RDF graph (see <a href="#ref-rdfconcepts">[RDF-CONCEPTS]</a>);
|
|
in particular, it does not require the use of
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>.</li>
|
|
<li>This specification does not require the use of
|
|
<a href="#ref-xpath">[XPATH]</a> or <a href="#ref-sax">[SAX2]</a></li>
|
|
<li>This specification places no constraints on the order in which
|
|
software transforming RDF/XML into a representation of a graph,
|
|
constructs the representation of the graph.</li>
|
|
<li>Software transforming RDF/XML into a representation of a graph
|
|
MAY eliminate duplicate predicate arcs.</li>
|
|
</ul>
|
|
|
|
<p>The syntax does not support non-well-formed XML documents, nor
|
|
documents that otherwise do not have an XML Information Set; for
|
|
example, that do not conform to
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a>
|
|
<a href="#ref-namespaces">[XML-NS]</a>.
|
|
</p>
|
|
|
|
<p>The Infoset requires support for
|
|
<a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>.
|
|
RDF/XML uses the information item property [base URI], discussed in
|
|
<a href="#section-baseURIs">section 5.3</a>
|
|
</p>
|
|
|
|
<p>This specification requires an
|
|
XML Information Set <a href="#ref-xml-infoset">[INFOSET]</a>
|
|
which supports at least the following information items and
|
|
properties for RDF/XML:</p>
|
|
|
|
<dl>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a></dt>
|
|
<dd>[document element], [children], [base URI]</dd>
|
|
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">element information item</a></dt>
|
|
<dd>[local name], [namespace name], [children], [attributes], [parent], [base URI]</dd>
|
|
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.attribute">attribute information item</a></dt>
|
|
<dd>[local name], [namespace name], [normalized value]</dd>
|
|
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character information item</a></dt>
|
|
<dd>[character code]</dd>
|
|
</dl>
|
|
|
|
<p>There is no mapping of the following items to data model events:</p>
|
|
<dl>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.pi">processing instruction information item</a></dt>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.rse">unexpanded entity reference information item</a></dt>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.comment">comment information item</a></dt>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.doctype">document type declaration information item</a></dt>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.entity.unparsed">unparsed entity information item</a></dt>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.notation">notation information item</a></dt>
|
|
<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.namespace">namespace information item</a></dt>
|
|
</dl>
|
|
|
|
<p>Other information items and properties have no mapping to
|
|
syntax data model events.
|
|
</p>
|
|
|
|
<p>Element information items with reserved XML Names
|
|
(See <a href="http://www.w3.org/TR/2000/REC-xml-20001006#dt-name">Name</a>
|
|
in <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a>)
|
|
are not mapped to data model element events. These are all those
|
|
with property [prefix] beginning with <code>xml</code> (case
|
|
independent comparison) and all those with [prefix] property
|
|
having no value and which have [local name] beginning with
|
|
<code>xml</code> (case independent comparison).
|
|
</p>
|
|
|
|
<p>All information items contained inside XML elements matching the
|
|
<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
|
|
production form
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-XMLLiteral">XML literals</a>
|
|
and do not follow this mapping. See
|
|
<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
|
|
for further information.</p>
|
|
|
|
<p>This section is intended to satisfy the requirements for
|
|
<a href="http://www.w3.org/TR/xml-infoset/#conformance">Conformance</a>
|
|
in the <a href="#ref-xml-infoset">[INFOSET]</a> specification.
|
|
It specifies the information items and properties that are needed
|
|
to implement this specification.
|
|
</p>
|
|
|
|
|
|
<h3>
|
|
<a id="section-Nodes" name="section-Nodes">6.1 Events</a>
|
|
</h3>
|
|
|
|
<p>There are nine types of event defined in the following subsections.
|
|
Most events are constructed from an Infoset information item (except
|
|
for <a href="#section-identifier-node">URI reference</a>,
|
|
<a href="#section-blank-nodeid-event">blank node</a>,
|
|
<a href="#section-literal-node">plain literal</a> and
|
|
<a href="#section-typed-literal-node">typed literal</a>). The effect
|
|
of an event constructor is to create a new event with a unique identity,
|
|
distinct from all other events. Events have accessor operations on them
|
|
and most have the <em>string-value</em> accessor that may be a static value
|
|
or computed.</p>
|
|
|
|
|
|
<h3>
|
|
<a id="section-root-node" name="section-root-node">6.1.1 Root Event</a>
|
|
</h3>
|
|
|
|
<p>Constructed from a
|
|
<a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>
|
|
and takes the following accessors and values.</p>
|
|
|
|
<dl>
|
|
<dt><span class="termdef"><a id="eventterm-root-document-element" name="eventterm-root-document-element">document-element</a></span><br /></dt>
|
|
<dd>Set to the value of document information item property [document-element].</dd>
|
|
<dt><span class="termdef"><a id="eventterm-root-children" name="eventterm-root-children">children</a></span><br /></dt>
|
|
<dd>Set to the value of document information item property [children].</dd>
|
|
<dt><span class="termdef"><a id="eventterm-root-base-uri" name="eventterm-root-base-uri">base-uri</a></span><br /></dt>
|
|
<dd>Set to the value of document information item property [base URI].</dd>
|
|
<dt><span class="termdef"><a id="eventterm-root-language" name="eventterm-root-language">language</a></span><br /></dt>
|
|
<dd>Set to the empty string.</dd>
|
|
</dl>
|
|
|
|
|
|
<h3>
|
|
<a id="section-element-node" name="section-element-node">6.1.2 Element Event</a>
|
|
</h3>
|
|
|
|
<p>Constructed from an
|
|
<a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">element information item</a>
|
|
and takes the following accessors and values:
|
|
</p>
|
|
|
|
|
|
<dl>
|
|
<dt><span class="termdef"><a id="eventterm-element-local-name" name="eventterm-element-local-name">local-name</a></span><br /></dt>
|
|
<dd>Set to the value of element information item property [local name].</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-element-namespace-name" name="eventterm-element-namespace-name">namespace-name</a></span><br /></dt>
|
|
<dd>Set to the value of element information item property [namespace name].</dd>
|
|
<dt><span class="termdef"><a id="eventterm-element-children" name="eventterm-element-children">children</a></span><br /></dt>
|
|
<dd>Set to the value of element information item property [children].</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-element-base-uri" name="eventterm-element-base-uri">base-uri</a></span><br /></dt>
|
|
<dd>Set to the value of element information item property [base URI].</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-element-attributes" name="eventterm-element-attributes">attributes</a></span><br /></dt>
|
|
<dd><p>Made from the value of element information item property [attributes] which is a set of attribute information items.</p>
|
|
|
|
<p>If this set contains an attribute information item <code>xml:lang</code> (
|
|
[namespace name] property with the value
|
|
"http://www.w3.org/XML/1998/namespace" and
|
|
[local name] property value "lang")
|
|
it is removed from the set of attribute information items and the
|
|
<a href="#eventterm-element-language" class="termref"><span class="arrow">·</span>language<span class="arrow">·</span></a> accessor is set to the
|
|
[normalized-value] property of the attribute information item.</p>
|
|
|
|
<p>All remaining reserved XML Names
|
|
(See <a href="http://www.w3.org/TR/2000/REC-xml-20001006#dt-name">Name</a>
|
|
in <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a>)
|
|
are now removed from the set. These are, all
|
|
attribute information items in the set with property [prefix]
|
|
beginning with <code>xml</code> (case independent
|
|
comparison) and all attribute information items with [prefix]
|
|
property having no value and which have [local name] beginning with
|
|
<code>xml</code> (case independent comparison) are removed.
|
|
Note that the [base URI] accessor is computed by XML Base before any
|
|
<code>xml:base</code> attribute information item is deleted.</p>
|
|
|
|
<p>The remaining set of attribute information items are then used
|
|
to construct a new set of
|
|
<a href="#section-attribute-node">Attribute Events</a>
|
|
which is assigned as the value of this accessor.</p>
|
|
</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-element-URI" name="eventterm-element-URI">URI</a></span><br /></dt>
|
|
<dd>Set to the string value of the concatenation of the
|
|
value of the namespace-name accessor and the value of the
|
|
local-name accessor.
|
|
</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-element-liCounter" name="eventterm-element-liCounter">li-counter</a></span><br /></dt>
|
|
<dd>Set to the integer value 1.</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-element-language" name="eventterm-element-language">language</a></span><br /></dt>
|
|
<dd>Set from the
|
|
<a href="#eventterm-element-attributes" class="termref"><span class="arrow">·</span>attributes<span class="arrow">·</span></a>
|
|
as described above.
|
|
If no value is given from the attributes, the value is set to the value of
|
|
the language accessor on the parent event (either a
|
|
<a href="#section-root-node">Root Event</a> or an
|
|
<a href="#section-element-node">Element Event</a>), which may be the empty string.
|
|
</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-element-subject" name="eventterm-element-subject">subject</a></span><br /></dt>
|
|
<dd>Has no initial value. Takes a value that is an
|
|
<a href="#section-identifier-node">Identifier</a> event.
|
|
This accessor is used on elements that deal with one node in the RDF graph,
|
|
this generally being the subject of a statement.</dd>
|
|
|
|
</dl>
|
|
|
|
|
|
|
|
<h3>
|
|
<a id="section-end-element-node" name="section-end-element-node">6.1.3 End Element Event</a>
|
|
</h3>
|
|
|
|
<p>Has no accessors. Marks the end of the containing element in
|
|
the sequence.</p>
|
|
|
|
|
|
<h3>
|
|
<a id="section-attribute-node" name="section-attribute-node">6.1.4 Attribute Event</a>
|
|
</h3>
|
|
|
|
<p>Constructed from an
|
|
<a href="http://www.w3.org/TR/xml-infoset/#infoitem.attribute">attribute information item</a>
|
|
and takes the following accessors and values:</p>
|
|
|
|
<dl>
|
|
<dt><span class="termdef"><a id="eventterm-attribute-local-name" name="eventterm-attribute-local-name">local-name</a></span><br /></dt>
|
|
<dd>Set to the value of attribute information item property [local name].</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-attribute-namespace-name" name="eventterm-attribute-namespace-name">namespace-name</a></span><br /></dt>
|
|
<dd>Set to the value of attribute information item property [namespace name].</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-attribute-string-value" name="eventterm-attribute-string-value">string-value</a></span><br /></dt>
|
|
<dd>Set to the value of the attribute information item property [normalized value] as specified by
|
|
<a href="#ref-xml">[XML]</a> (if an attribute whose normalized
|
|
value is a zero-length string, then the string-value is also
|
|
a zero-length string).</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-attribute-URI" name="eventterm-attribute-URI">URI</a></span><br /></dt>
|
|
<dd><p>If <a href="#eventterm-attribute-namespace-name" class="termref"><span class="arrow">·</span>namespace-name<span class="arrow">·</span></a> is present,
|
|
set to a string value of the concatenation of the value of the
|
|
<a href="#eventterm-attribute-namespace-name" class="termref"><span class="arrow">·</span>namespace-name<span class="arrow">·</span></a> accessor
|
|
and the value of the
|
|
<a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor.
|
|
Otherwise if <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> is
|
|
<code>ID</code>, <code>about</code>, <code>resource</code>, <code>parseType</code> or <code>type</code>, set to a string value of the
|
|
concatenation of the
|
|
<a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a>
|
|
and the value of the <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor. Other non-namespaced <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor values are forbidden.</p>
|
|
|
|
<p>The support for a limited set of non-namespaced names is
|
|
REQUIRED and intended to allow RDF/XML documents specified in
|
|
<a href="#ref-rdfms">[RDF-MS]</a> to remain valid; new documents
|
|
SHOULD NOT use these unqualified attributes and applications MAY
|
|
choose to warn when the unqualified form is seen in a document.</p>
|
|
|
|
<p>The construction of
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
from XML attributes can generate the same
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
from different XML attributes. This can cause ambiguity in the
|
|
grammar when matching attribute events (such as when
|
|
<code>rdf:about</code> and <code>about</code> XML attributes are
|
|
both present). Documents that have this are illegal.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
|
|
<h3>
|
|
<a id="section-text-node" name="section-text-node">6.1.5 Text Event</a>
|
|
</h3>
|
|
|
|
<p>Constructed from a sequence of one or more consecutive
|
|
<a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character information items</a>.
|
|
Has the single accessor:</p>
|
|
|
|
<dl>
|
|
<dt><span class="termdef"><a id="eventterm-text-string-value" name="eventterm-text-string-value">string-value</a></span><br /></dt>
|
|
<dd>Set to the value of the string made from concatenating the
|
|
[<a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character code</a>] property of each of the character information items.
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>
|
|
<a id="section-identifier-node" name="section-identifier-node">6.1.6 URI Reference Event</a>
|
|
</h3>
|
|
|
|
<p><a id="eventterm-identifier-identifier-type" name="eventterm-identifier-identifier-type"></a>
|
|
An event for a
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>
|
|
which has the following accessors:</p>
|
|
|
|
<dl>
|
|
<dt><span class="termdef"><a id="eventterm-identifier-identifier" name="eventterm-identifier-identifier">identifier</a></span><br /></dt>
|
|
<dd>Takes a string value.</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-identifier-string-value" name="eventterm-identifier-string-value">string-value</a></span><br /></dt>
|
|
<dd><p>The value is the concatenation of "<", the value of the <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor and ">"</p>
|
|
|
|
<p>The <>-quoted <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor value
|
|
must use the <a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a> escapes for URI references as described in
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#sec-uri-encoding">3.3 URI References</a>.</p>
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
<p>These events are constructed by giving a value for the
|
|
<a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
|
|
</p>
|
|
|
|
<p>For further information on identifiers in the RDF graph, see
|
|
<a href="#section-Identifiers">section 5.2</a>.</p>
|
|
|
|
|
|
<h3>
|
|
<a id="section-blank-nodeid-event" name="section-blank-nodeid-event">6.1.7 Blank Node Identifier Event</a>
|
|
</h3>
|
|
|
|
<p>An event for a
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifier</a>
|
|
which has the following accessors:</p>
|
|
|
|
<dl>
|
|
<dt><span class="termdef"><a id="eventterm-blanknodeid-identifier" name="eventterm-blanknodeid-identifier">identifier</a></span><br /></dt>
|
|
<dd>Takes a string value.</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-blanknodeid-string-value" name="eventterm-blanknodeid-string-value">string-value</a></span><br /></dt>
|
|
<dd>The value is the concatenation of "_:" and the value of the <a href="#eventterm-blanknodeid-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor. It is permitted to
|
|
further modify this value in order to preserve distinct blank node identity
|
|
as discussed in section <a href="#section-Identifiers">5.2 Identifiers</a>.</dd>
|
|
</dl>
|
|
|
|
<p>These events are constructed by giving a value for the
|
|
<a href="#eventterm-blanknodeid-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
|
|
</p>
|
|
|
|
<p>For further information on identifiers in the RDF graph, see
|
|
<a href="#section-Identifiers">section 5.2</a>.</p>
|
|
|
|
|
|
<h3>
|
|
<a id="section-literal-node" name="section-literal-node">6.1.8 Plain Literal Event</a>
|
|
</h3>
|
|
|
|
<p>An event for a <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-plain-literal">plain literal</a> which can have the following accessors:</p>
|
|
|
|
<dl>
|
|
<dt><span class="termdef"><a id="eventterm-literal-literal-value" name="eventterm-literal-literal-value">literal-value</a></span><br /></dt>
|
|
<dd>Takes a string value.</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-literal-literal-language" name="eventterm-literal-literal-language">literal-language</a></span><br /></dt>
|
|
<dd>Takes a string value.</dd>
|
|
|
|
<dt><span class="termdef"><a id="eventterm-literal-string-value" name="eventterm-literal-string-value">string-value</a></span><br /></dt>
|
|
<dd><p>The value is calculated from the other accessors as follows.</p>
|
|
|
|
<p>If <a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> is the empty string
|
|
then the value is the concatenation of """ (1 double quote),
|
|
the value of the
|
|
2 <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor
|
|
and """ (1 double quote).</p>
|
|
|
|
<p>Otherwise the value is the concatenation of """ (1 double quote),
|
|
the value of the
|
|
<a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor
|
|
""@" (1 double quote and a '@'),
|
|
and the value of the
|
|
<a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> accessor.</p>
|
|
|
|
<p>The double-quoted <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor value must use the <a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>
|
|
escapes for strings as described in <a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntrip_strings">3.2 Strings</a>
|
|
for escaping certain characters such as ". </p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p>These events are constructed by giving values for the
|
|
<a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> and
|
|
<a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> accessors.</p>
|
|
|
|
|
|
<div class="note"><p><strong>Interoperability Note (Informative):</strong>
|
|
<a id="literal-comb-char-note1" name="literal-comb-char-note1"></a>
|
|
Literals beginning with a Unicode combining character are
|
|
allowed however they may cause interoperability problems.
|
|
See <a href="#ref-charmod">[CHARMOD]</a> for further information.
|
|
</p></div>
|
|
|
|
<h3>
|
|
<a id="section-xml-literal-node" name="section-xml-literal-node"></a>
|
|
<a id="section-typed-literal-node" name="section-typed-literal-node">6.1.9 Typed Literal Event</a>
|
|
</h3>
|
|
|
|
<p>An event for a <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-typed-literal">typed literal</a> which can have the following accessors:</p>
|
|
|
|
<dl>
|
|
<dt><a id="eventterm-xmlliteral-literal-value" name="eventterm-xmlliteral-literal-value"></a><span class="termdef"><a id="eventterm-typedliteral-literal-value" name="eventterm-typedliteral-literal-value">literal-value</a></span><br /></dt>
|
|
<dd>Takes a string value.</dd>
|
|
|
|
<dt><a id="eventterm-literal-literal-datatype" name="eventterm-literal-literal-datatype"></a><span class="termdef"><a id="eventterm-typedliteral-literal-datatype" name="eventterm-typedliteral-literal-datatype">literal-datatype</a></span><br /></dt>
|
|
<dd>Takes a string value used as an absolute URI reference..</dd>
|
|
|
|
<dt><a id="eventterm-xmlliteral-string-value" name="eventterm-xmlliteral-string-value"></a><span class="termdef"><a id="eventterm-typedliteral-string-value" name="eventterm-typedliteral-string-value">string-value</a></span><br /></dt>
|
|
<dd><p>The value is the concatenation of the following in this order
|
|
""" (1 double quote),
|
|
the value of the
|
|
<a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor,
|
|
""" (1 double quote), "^^<",
|
|
the value of the
|
|
<a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessor
|
|
and ">".
|
|
</p>
|
|
|
|
<p>The double-quoted <a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor value
|
|
must use the <a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>
|
|
escapes for strings as described in <a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntrip_strings">3.2 Strings</a>
|
|
for escaping certain characters such as ".
|
|
The <>-quoted <a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessor value
|
|
must use the <a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a> escapes for URI references as described in
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#sec-uri-encoding">3.3 URI References</a>.</p>
|
|
|
|
</dd>
|
|
</dl>
|
|
|
|
<p>These events are constructed by giving values for the
|
|
<a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a>
|
|
and
|
|
<a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessors.</p>
|
|
|
|
<div class="note"><p><strong>Interoperability Note (Informative):</strong>
|
|
<a id="literal-comb-char-note2" name="literal-comb-char-note2"></a>
|
|
Literals beginning with a Unicode combining character are
|
|
allowed however they may cause interoperability problems.
|
|
See <a href="#ref-charmod">[CHARMOD]</a> for further information.
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Implementation Note (Informative):</strong>
|
|
<a id="literal-white-space-normalization-note" name="literal-white-space-normalization-note"></a>
|
|
In <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schema (part 1)</a> <a href="#ref-xml-schema1">[XML-SCHEMA1]</a>,
|
|
<a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#section-White-Space-Normalization-during-Validation">white space normalization</a>
|
|
occurs during validation according to the value of the whiteSpace
|
|
facet. The syntax mapping used in this document occurs after this,
|
|
so the whiteSpace facet formally has no further effect.
|
|
</p></div>
|
|
|
|
|
|
|
|
<h3>
|
|
<a id="section-Infoset-Conformance" name="section-Infoset-Conformance"></a>
|
|
<a id="section-Infoset-Mapping" name="section-Infoset-Mapping">6.2 Information Set Mapping</a>
|
|
</h3>
|
|
|
|
<p>To transform the Infoset into the sequence of events
|
|
in <em>document order</em>, each
|
|
information item is transformed as described above to generate a
|
|
tree of events with accessors and values. Each element event is
|
|
then replaced as described below to turn the tree of events
|
|
into a sequence in document order.</p>
|
|
|
|
<ol>
|
|
<li>The original <a href="#section-element-node">element event</a></li>
|
|
<li>The value of the
|
|
<a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">children</a>
|
|
accessor recursively transformed, a possibly empty ordered list of events.</li>
|
|
<li>An <a href="#section-end-element-node">end element event</a></li>
|
|
</ol>
|
|
|
|
|
|
<h3>
|
|
<a id="section-Notation-Forms" name="section-Notation-Forms"></a>
|
|
<a id="section-Infoset-Grammar-Notation" name="section-Infoset-Grammar-Notation">6.3 Grammar Notation</a>
|
|
</h3>
|
|
|
|
<p>The following notation is used to describe matching the sequence
|
|
of data model events as given in <a href="#section-Data-Model">Section 6</a>
|
|
and the actions to perform for the matches.
|
|
The RDF/XML grammar is defined in terms of mapping from these matched
|
|
data model events to triples, using notation of the form:</p>
|
|
|
|
<blockquote>
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
number <em>event-type</em> <em>event-content</em>
|
|
</p></div></div>
|
|
|
|
<div>
|
|
<em>action</em>...
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code>
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>
|
|
</code>
|
|
</p></div></div>
|
|
</div>
|
|
</blockquote>
|
|
|
|
<p>where the <em>event-content</em> is an expression matching
|
|
<em>event-types</em> (as defined in <a href="#section-Nodes">Section 6.1</a>),
|
|
using notation given in the following sections.
|
|
The number is used for reference purposes.
|
|
The grammar <em>action</em> may include generating
|
|
new triples to the graph, written in
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/#ntriples">N-Triples</a>
|
|
format.
|
|
</p>
|
|
|
|
<p>The following sections describe the general notation used and that
|
|
for event matching and actions.</p>
|
|
|
|
<h4>
|
|
<a id="section-Infoset-Grammar-General" name="section-Infoset-Grammar-General">6.3.1 Grammar General Notation</a>
|
|
</h4>
|
|
|
|
<table border="1" summary="This table describes the general notation used the grammar.">
|
|
<caption>Grammar General Notation.</caption>
|
|
<tr>
|
|
<th>Notation</th>
|
|
<th>Meaning</th>
|
|
</tr>
|
|
<tr>
|
|
<td><em>event</em>.<em>accessor</em></td>
|
|
<td>The value of an event accessor.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>rdf:</code><em>X</em></td>
|
|
<td>A URI as defined in <a href="#section-Namespace">section 5.1</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>"ABC"</td>
|
|
<td>A Unicode string of characters A, B, C in order.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h4>
|
|
<a id="section-Infoset-Grammar-Matching" name="section-Infoset-Grammar-Matching">6.3.2 Grammar Event Matching Notation</a>
|
|
</h4>
|
|
|
|
|
|
<table border="1" summary="This table describes the event matching notation used in the following sections to match sequences of syntax data model events.">
|
|
<caption>Grammar Event Matching Notation.</caption>
|
|
<tr>
|
|
<th>Notation</th>
|
|
<th>Meaning</th>
|
|
</tr>
|
|
<tr>
|
|
<td>A == B</td>
|
|
<td>Event accessor A matches expression B.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>A != B</td>
|
|
<td>A is not equal to B.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>A | B | ...</td>
|
|
<td>The A, B, ... terms are alternatives.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>A - B</td>
|
|
<td>The terms in A excluding all the terms in B.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a id="anyURI" name="anyURI">anyURI</a>.</td>
|
|
<td>Any URI.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a id="anyString" name="anyString">anyString</a>.</td>
|
|
<td>Any string.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>list(item1, item2, ...); list()</td>
|
|
<td>An ordered list of events. An empty list.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>set(item1, item2, ...); set()</td>
|
|
<td>An unordered set of events. An empty set.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>*</td>
|
|
<td>Zero or more of preceding term.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>?</td>
|
|
<td>Zero or one of preceding term.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>+</td>
|
|
<td>One or more of preceding term.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>root(acc1 == value1,<br />
|
|
    acc2 == value2, ...)</td>
|
|
<td>Match a <a href="#section-root-node">Root Event</a> with accessors.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>start-element(acc1 == value1,<br />
|
|
    acc2 == value2, ...)<br />
|
|
<em>children</em><br />
|
|
end-element()</td>
|
|
<td>Match a sequence of
|
|
<a href="#section-element-node">Element Event</a> with accessors,
|
|
a possibly empty list of events as element content and an
|
|
<a href="#section-end-element-node">End Element Event</a>.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>attribute(acc1 == value1,<br />
|
|
    acc2 == value2, ...)</td>
|
|
<td>Match an <a href="#section-attribute-node">Attribute Event</a>
|
|
with accessors.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>text()</td>
|
|
<td>Match a <a href="#section-text-node">Text Event</a>.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h4>
|
|
<a id="section-Infoset-Grammar-Action" name="section-Infoset-Grammar-Action">6.3.3 Grammar Action Notation</a>
|
|
</h4>
|
|
|
|
|
|
<table border="1" summary="This table describes the grammar actions notation used in the following sections to perform triple generation from syntax data model events.">
|
|
<caption>Grammar Action Notation.</caption>
|
|
<tr>
|
|
<th>Notation</th>
|
|
<th>Meaning</th>
|
|
</tr>
|
|
<tr>
|
|
<td>A := B</td>
|
|
<td>Assigns A the value B.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>concat(A, B, ..)</td>
|
|
<td>A string created by concatenating the terms in order.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>resolve(<em>e</em>, <em>s</em>)</td>
|
|
<td>A string created by interpreting <em>s</em> as a relative URI reference to the
|
|
<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a> accessor of <a href="#section-element-node"><span class="arrow">·</span>Element Event<span class="arrow">·</span></a> <em>e</em>
|
|
as defined in <a href="#section-baseURIs">Section 5.3 Resolving URIs</a>.
|
|
The resulting string represents an
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>generated-blank-node-id()</td>
|
|
<td>A string value for a new distinct generated
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-blank-node-id">blank node identifier</a>
|
|
as defined in <a href="#section-Identifiers">section 5.2 Identifiers</a>.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><em>event</em>.<em>accessor</em> := <em>value</em></td>
|
|
<td>Sets an event accessor to the given value.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>uri(identifier := value)</td>
|
|
<td>Create a new <a href="#section-identifier-node">URI Reference Event</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>bnodeid(identifier := value)</td>
|
|
<td>Create a new <a href="#section-blank-nodeid-event">blank node Identifier Event</a>. See also section <a href="#section-Identifiers">5.2 Identifiers</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>literal(literal-value := string,<br />
|
|
    literal-language := language, ...)</td>
|
|
<td>Create a new <a href="#section-literal-node">Plain Literal Event</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>typed-literal(literal-value := string, ...)</td>
|
|
<td>Create a new <a href="#section-typed-literal-node">Typed Literal Event</a>.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
|
|
<h2>
|
|
<a id="section-Infoset-Grammar" name="section-Infoset-Grammar">7 RDF/XML Grammar</a>
|
|
</h2>
|
|
|
|
<h3><a id="section-grammar-summary" name="section-grammar-summary">7.1 Grammar summary</a></h3>
|
|
<div class="productionOuter"><div class="productionInner">
|
|
<table>
|
|
<tr valign="top">
|
|
<td><a href="#coreSyntaxTerms">7.2.2</a> <a href="#coreSyntaxTerms">coreSyntaxTerms</a></td> <td><code>rdf:RDF</code> | <code>rdf:ID</code> | <code>rdf:about</code> | <code>rdf:parseType</code> | <code>rdf:resource</code> | <code>rdf:nodeID</code> | <code>rdf:datatype</code></td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#syntaxTerms">7.2.3</a> <a href="#syntaxTerms">syntaxTerms</a></td> <td><a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code></td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#oldTerms">7.2.4</a> <a href="#oldTerms">oldTerms</a></td> <td><code>rdf:aboutEach</code> | <code>rdf:aboutEachPrefix</code> | <code>rdf:bagID</code></td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#nodeElementURIs">7.2.5</a> <a href="#nodeElementURIs">nodeElementURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#propertyElementURIs">7.2.6</a> <a href="#propertyElementURIs">propertyElementURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <a href="#oldTerms">oldTerms</a> )</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#propertyAttributeURIs">7.2.7</a> <a href="#propertyAttributeURIs">propertyAttributeURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#doc">7.2.8</a> <a href="#doc">doc</a></td> <td>root(<a href="#eventterm-root-document-element">document-element</a> == <a href="#RDF">RDF</a>,
|
|
<a href="#eventterm-root-children">children</a> == list(<a href="#RDF">RDF</a>))</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#RDF">7.2.9</a> <a href="#RDF">RDF</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <code>rdf:RDF</code>,
|
|
<a href="#eventterm-element-attributes">attributes</a> == set())<br />
|
|
<a href="#nodeElementList">nodeElementList</a><br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#nodeElementList">7.2.10</a> <a href="#nodeElementList">nodeElementList</a></td> <td><a href="#ws">ws</a>* (<a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>* )*</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#nodeElement">7.2.11</a> <a href="#nodeElement">nodeElement</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#nodeElementURIs">nodeElementURIs</a><br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set((<a href="#idAttr">idAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> | <a href="#aboutAttr">aboutAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
|
|
<a href="#propertyEltList">propertyEltList</a><br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#ws">7.2.12</a> <a href="#ws">ws</a></td> <td>A <a href="#section-text-node">text event</a> matching white space
|
|
defined by <a href="#ref-xml">[XML]</a> definition <em>White Space</em>
|
|
Rule [3] <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-S">S</a>
|
|
in section
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn">Common Syntactic Constructs</a></td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#propertyEltList">7.2.13</a> <a href="#propertyEltList">propertyEltList</a></td> <td><a href="#ws">ws</a>* (<a href="#propertyElt">propertyElt</a> <a href="#ws">ws</a>* ) *</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#propertyElt">7.2.14</a> <a href="#propertyElt">propertyElt</a></td> <td><a href="#resourcePropertyElt">resourcePropertyElt</a> |
|
|
<a href="#literalPropertyElt">literalPropertyElt</a> |
|
|
<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a> |
|
|
<a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a> |
|
|
<a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a> |
|
|
<a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a> |
|
|
<a href="#emptyPropertyElt">emptyPropertyElt</a></td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#resourcePropertyElt">7.2.15</a> <a href="#resourcePropertyElt">resourcePropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
|
|
<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?))<br />
|
|
<a href="#ws">ws</a>* <a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>*<br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#literalPropertyElt">7.2.16</a> <a href="#literalPropertyElt">literalPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
|
|
<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#datatypeAttr">datatypeAttr</a>?))<br />
|
|
<a href="#section-text-node">text()</a><br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseTypeLiteralPropertyElt">7.2.17</a> <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
|
|
<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseLiteral">parseLiteral</a>))<br />
|
|
<a href="#literal">literal</a><br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseTypeResourcePropertyElt">7.2.18</a> <a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
|
|
<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseResource">parseResource</a>))<br />
|
|
<a href="#propertyEltList">propertyEltList</a><br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseTypeCollectionPropertyElt">7.2.19</a> <a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
|
|
<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseCollection">parseCollection</a>))<br />
|
|
<a href="#nodeElementList">nodeElementList</a><br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseTypeOtherPropertyElt">7.2.20</a> <a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
|
|
<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseOther">parseOther</a>))<br />
|
|
<a href="#propertyEltList">propertyEltList</a><br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#emptyPropertyElt">7.2.21</a> <a href="#emptyPropertyElt">emptyPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
|
|
<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, ( <a href="#resourceAttr">resourceAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
|
|
end-element()</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#idAttr">7.2.22</a> <a href="#idAttr">idAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#nodeIdAttr">7.2.23</a> <a href="#nodeIdAttr">nodeIdAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#aboutAttr">7.2.24</a> <a href="#aboutAttr">aboutAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#propertyAttr">7.2.25</a> <a href="#propertyAttr">propertyAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <a href="#propertyAttributeURIs">propertyAttributeURIs</a>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a>)</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#resourceAttr">7.2.26</a> <a href="#resourceAttr">resourceAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:resource</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#datatypeAttr">7.2.27</a> <a href="#datatypeAttr">datatypeAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:datatype</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseLiteral">7.2.28</a> <a href="#parseLiteral">parseLiteral</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == "Literal")</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseResource">7.2.29</a> <a href="#parseResource">parseResource</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == "Resource")</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseCollection">7.2.30</a> <a href="#parseCollection">parseCollection</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
|
|
<a href="#eventterm-attribute-string-value">string-value</a> == "Collection")</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#parseOther">7.2.31</a> <a href="#parseOther">parseOther</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
|
|
<a
|
|
href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a> - ("Resource" | "Literal" | "Collection") )</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#URI-reference">7.2.32</a> <a href="#URI-reference">URI-reference</a></td> <td>An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a> interpreted as an <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>.</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#literal">7.2.33</a> <a href="#literal">literal</a></td> <td>Any XML element content that is allowed according to
|
|
<a href="#ref-xml">[XML]</a> definition <em>Content of Elements</em>
|
|
Rule [43]
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-content">content</a>.
|
|
in section
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-starttags">3.1 Start-Tags, End-Tags, and Empty-Element Tags</a></td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td><a href="#rdf-id">7.2.34</a> <a href="#rdf-id">rdf-id</a></td> <td>An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
|
|
matching any legal
|
|
<a href="#ref-namespaces">[XML-NS]</a> token
|
|
<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a></td>
|
|
</tr>
|
|
</table>
|
|
|
|
</div></div>
|
|
|
|
<h3><a id="section-grammar-productions" name="section-grammar-productions">7.2 Grammar Productions</a></h3>
|
|
|
|
<h4><a id="start" name="start">7.2.1 Grammar start</a></h4>
|
|
|
|
<p>If the RDF/XML is a standalone XML document
|
|
(identified by presentation as an
|
|
application/rdf+xml <a href="#section-MIME-Type">RDF MIME type</a> object,
|
|
or by some other means)
|
|
then the grammar starts with <a href="#section-root-node">Root Event</a> 
|
|
<a href="#doc">doc</a>.</p>
|
|
|
|
<p>If the content is known to be RDF/XML by context, such as when
|
|
RDF/XML is embedded inside other XML content, then the grammar
|
|
can either start
|
|
at <a href="#section-element-node">Element Event</a> 
|
|
<a href="#RDF">RDF</a>
|
|
(only when an element is legal at that point in the XML)
|
|
or at production <a href="#nodeElementList">nodeElementList</a>
|
|
(only when element content is legal, since this is a list of elements).
|
|
For such embedded RDF/XML, the
|
|
<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
|
|
value on the outermost element must be initialized from the containing
|
|
XML since no
|
|
<a href="#section-root-node">Root Event</a>  will be available.
|
|
Note that if such embedding occurs, the grammar may be entered
|
|
several times but no state is expected to be preserved.
|
|
</p>
|
|
|
|
|
|
<h4><a id="coreSyntaxTerms" name="coreSyntaxTerms">7.2.2 Production coreSyntaxTerms</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<code>rdf:RDF</code> | <code>rdf:ID</code> | <code>rdf:about</code> | <code>rdf:parseType</code> | <code>rdf:resource</code> | <code>rdf:nodeID</code> | <code>rdf:datatype</code>
|
|
</p></div></div>
|
|
|
|
<p>A subset of the syntax terms from the RDF vocabulary in
|
|
<a href="#section-Namespace">section 5.1</a>
|
|
which are used in RDF/XML.
|
|
</p>
|
|
|
|
<h4><a id="syntaxTerms" name="syntaxTerms">7.2.3 Production syntaxTerms</a></h4>
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code>
|
|
</p></div></div>
|
|
|
|
<p>All the syntax terms from the RDF vocabulary in
|
|
<a href="#section-Namespace">section 5.1</a>
|
|
which are used in RDF/XML.
|
|
</p>
|
|
|
|
|
|
<h4><a id="bagIdAttr" name="bagIdAttr"></a><a id="section-Bag-Expand" name="section-Bag-Expand"></a><a id="oldTerms" name="oldTerms">7.2.4 Production oldTerms</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<code>rdf:aboutEach</code> | <code>rdf:aboutEachPrefix</code> | <code>rdf:bagID</code>
|
|
</p></div></div>
|
|
|
|
<p>These are the names from the <a href="#section-Namespace">RDF vocabulary</a>
|
|
that have been withdrawn from the language. See the resolutions of
|
|
Issue <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-aboutEach-on-object">rdfms-aboutEach-on-object</a>,
|
|
Issue <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteachprefix">rdfms-abouteachprefix</a> and
|
|
Last Call Issue <a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#timbl-01">timbl-01</a>
|
|
for further information.
|
|
</p>
|
|
|
|
<div class="note"><p><strong>Error Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-abouteach/error001.rdf">error001.rdf</a> and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-abouteach/error002.rdf">error002.rdf</a>
|
|
</p></div>
|
|
|
|
|
|
<h4><a id="nodeElementURIs" name="nodeElementURIs">7.2.5 Production nodeElementURIs</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )
|
|
</p></div></div>
|
|
|
|
<p>The <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> that are allowed on node elements.</p>
|
|
|
|
|
|
<h4><a id="propertyElementURIs" name="propertyElementURIs">7.2.6 Production propertyElementURIs</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <a href="#oldTerms">oldTerms</a> )
|
|
</p></div></div>
|
|
|
|
<p>The URIs that are allowed on property elements.</p>
|
|
|
|
|
|
<h4><a id="propertyAttributeURIs" name="propertyAttributeURIs">7.2.7 Production propertyAttributeURIs</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )
|
|
</p></div></div>
|
|
|
|
<p>The <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a> that are allowed on property attributes.</p>
|
|
|
|
|
|
<h4><a id="doc" name="doc">7.2.8 Production doc</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
root(<a href="#eventterm-root-document-element">document-element</a> == <a href="#RDF">RDF</a>,<br />
|
|
    <a href="#eventterm-root-children">children</a> == list(<a href="#RDF">RDF</a>))
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="RDF" name="RDF">7.2.9 Production RDF</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <code>rdf:RDF</code>,<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set())<br />
|
|
<a href="#nodeElementList">nodeElementList</a><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="nodeElementList" name="nodeElementList">7.2.10 Production nodeElementList</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<a href="#ws">ws</a>* (<a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>* )*
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="description" name="description"></a><a id="typedNode" name="typedNode"></a>
|
|
<a id="nodeElement" name="nodeElement">7.2.11 Production nodeElement</a></h4>
|
|
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#nodeElementURIs">nodeElementURIs</a><br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set((<a href="#idAttr">idAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> | <a href="#aboutAttr">aboutAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
|
|
<a href="#propertyEltList">propertyEltList</a><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
<p>For node element <em>e</em>, the processing of some of the attributes
|
|
has to be done before other work such as dealing with children events
|
|
or other attributes. These can be processed in any order:</p>
|
|
|
|
<ul>
|
|
|
|
<li>If there is an attribute <em>a</em> with
|
|
<em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>, then
|
|
<em>e</em>.<a href="#eventterm-element-subject">subject</a> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>))).</li>
|
|
|
|
<li>If there is an attribute <em>a</em> with
|
|
<em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>, then
|
|
<em>e</em>.<a href="#eventterm-element-subject">subject</a> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a>:=<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>).</li>
|
|
|
|
<li>If there is an attribute <em>a</em> with
|
|
<em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code> then
|
|
<em>e</em>.<a href="#eventterm-element-subject">subject</a> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)).</li>
|
|
</ul>
|
|
|
|
<p>If <em>e</em>.<a href="#eventterm-element-subject">subject</a> is empty,
|
|
then <em>e</em>.<a href="#eventterm-element-subject">subject</a> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()).</p>
|
|
|
|
|
|
<p>The following can then be performed in any order:</p>
|
|
|
|
<ul>
|
|
|
|
<li><a id="nodeElementStatement1" name="nodeElementStatement1"></a> If <em>e</em>.<a href="#eventterm-element-URI">URI</a> != <code>rdf:Description</code>
|
|
then the following statement is added to the graph:
|
|
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> .</code>
|
|
</p></div></div>
|
|
</li>
|
|
|
|
<li><a id="nodeElementStatement2" name="nodeElementStatement2"></a> If there is an attribute <em>a</em>
|
|
in <a href="#propertyAttr">propertyAttr</a> with
|
|
<em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:type</code>
|
|
then the following statement is added to the graph:
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>> .</code>
|
|
</p></div></div>
|
|
</li>
|
|
|
|
<li><a id="nodeElementStatement3" name="nodeElementStatement3"></a> For each attribute <em>a</em> matching
|
|
<a href="#propertyAttr">propertyAttr</a> (and not <code>rdf:type</code>)
|
|
then <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>
|
|
MUST be a Unicode<a href="#ref-unicode">[UNICODE]</a> string in Normal Form C<a href="#ref-nfc">[NFC]</a>,
|
|
<em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
|
|
and the following statement is added to the graph:
|
|
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>a</em>.<a href="#eventterm-attribute-URI">URI</a>> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
</li>
|
|
|
|
<li><a id="nodeElementStatement4" name="nodeElementStatement4"></a> Handle the
|
|
<a href="#propertyEltList">propertyEltList</a> children events
|
|
in document order.</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<h4><a id="ws" name="ws">7.2.12 Production ws</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
A <a href="#section-text-node">text event</a> matching white space
|
|
defined by <a href="#ref-xml">[XML]</a> definition <em>White Space</em>
|
|
Rule [3] <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-S">S</a>
|
|
in section
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn">Common Syntactic Constructs</a>
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="propertyEltList" name="propertyEltList">7.2.13 Production propertyEltList</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<a href="#ws">ws</a>* (<a href="#propertyElt">propertyElt</a> <a href="#ws">ws</a>* ) *
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="propertyElt" name="propertyElt">7.2.14 Production propertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
<a href="#resourcePropertyElt">resourcePropertyElt</a> |
|
|
<a href="#literalPropertyElt">literalPropertyElt</a> |
|
|
<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a> |
|
|
<a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a> |
|
|
<a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a> |
|
|
<a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a> |
|
|
<a href="#emptyPropertyElt">emptyPropertyElt</a>
|
|
</p></div></div>
|
|
|
|
<p>If element <em>e</em> has
|
|
<em>e</em>.<a href="#eventterm-element-URI">URI</a> =
|
|
<code>rdf:li</code> then apply the list expansion rules on element <em>e</em>.parent in
|
|
<a href="#section-List-Expand">section 7.4</a>
|
|
to give a new URI <em>u</em> and
|
|
<em>e</em>.<a href="#eventterm-element-URI">URI</a> := <em>u</em>.
|
|
</p>
|
|
|
|
<p>The action of this production must be done before the
|
|
actions of any sub-matches (<a
|
|
href="#resourcePropertyElt">resourcePropertyElt</a> ... <a href="#emptyPropertyElt">emptyPropertyElt</a>).
|
|
Alternatively the result must be equivalent to as if it this action
|
|
was performed first, such as performing as the first
|
|
action of all of the sub-matches.
|
|
</p>
|
|
|
|
|
|
<h4><a id="resourcePropertyElt" name="resourcePropertyElt">7.2.15 Production resourcePropertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?))<br />
|
|
<a href="#ws">ws</a>* <a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>*<br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
<p>For element <em>e</em>, and the single contained nodeElement
|
|
<em>n</em>, first <em>n</em> must be processed using production
|
|
<a href="#nodeElement">nodeElement</a>.
|
|
Then the following statement is added to the graph:</p>
|
|
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
  <code> <em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <em>n</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
|
|
statement is reified with
|
|
<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
|
|
using the reification rules in
|
|
<a href="#section-Reification">section 7.3</a>
|
|
and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em></p>
|
|
|
|
|
|
<h4><a id="literalPropertyElt" name="literalPropertyElt">7.2.16 Production literalPropertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#datatypeAttr">datatypeAttr</a>?))<br />
|
|
<a href="#section-text-node">text()</a><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
<p>Note that the empty literal case is defined in production
|
|
<a href="#emptyPropertyElt">emptyPropertyElt</a>.</p>
|
|
|
|
<p>For element <em>e</em>, and the text event <em>t</em>.
|
|
If the <code>rdf:datatype</code> attribute <em>d</em> is given
|
|
then <em>o</em> := typed-literal(<a href="#eventterm-typedliteral-literal-value">literal-value</a> := <em>t</em>.<a href="#eventterm-text-string-value">string-value</a>, <a href="#eventterm-typedliteral-literal-datatype">literal-datatype</a> := <em>d</em>.<a href="#eventterm-attribute-string-value">string-value</a>)
|
|
otherwise
|
|
<em>t</em>.<a href="#eventterm-text-string-value">string-value</a>
|
|
MUST be a Unicode<a href="#ref-unicode">[UNICODE]</a> string in Normal Form C<a href="#ref-nfc">[NFC]</a>,
|
|
<em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>t</em>.<a href="#eventterm-text-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
|
|
and the following statement is added to the graph:</p>
|
|
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
|
|
statement is reified with
|
|
<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
|
|
using the reification rules in
|
|
<a href="#section-Reification">section 7.3</a>
|
|
and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
|
|
|
|
|
|
<h4><a id="parseTypeLiteralPropertyElt" name="parseTypeLiteralPropertyElt">7.2.17 Production parseTypeLiteralPropertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseLiteral">parseLiteral</a>))<br />
|
|
<a href="#literal">literal</a><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
|
|
<p>For element <em>e</em> and the literal <em>l</em>
|
|
that is the <code>rdf:parseType="Literal"</code> content.
|
|
<em>l</em> is not transformed by the syntax data model mapping into events
|
|
(as noted in <a href="#section-Data-Model">6 Syntax Data Model</a>)
|
|
but remains an XML Infoset of XML Information items.</p>
|
|
|
|
<p><em>l</em> is transformed into the lexical form of an
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-XMLLiteral">XML literal</a>
|
|
in the RDF graph <em>x</em> (a Unicode string)
|
|
by the following algorithm. This does not mandate any implementation
|
|
method — any other method that gives the same result may be used.</p>
|
|
|
|
<ol>
|
|
<li>Use <em>l</em> to construct an XPath<a href="#ref-xpath">[XPATH]</a> <a href="http://www.w3.org/TR/1999/REC-xpath-19991116#infoset">node-set</a>
|
|
(a <a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/#def-document-subset">document subset</a>)</li>
|
|
<li>Apply <a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/">Exclusive XML Canonicalization</a> [<a href="#ref-xml-xc14n">XML-XC14N</a>])
|
|
with comments and with empty
|
|
<a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/#def-InclusiveNamespaces-PrefixList">InclusiveNamespaces PrefixList</a>
|
|
to this node-set to give a sequence of octets <em>s</em>
|
|
</li>
|
|
<li>This sequence of octets <em>s</em> can be considered to be
|
|
a UTF-8 encoding of some Unicode string <em>x</em> (sequence
|
|
of Unicode characters)</li>
|
|
<li>The Unicode string <em>x</em> is used as the lexical form of <em>l</em></li>
|
|
</ol>
|
|
|
|
|
|
<p>Then <em>o</em> := typed-literal(<a href="#eventterm-typedliteral-literal-value">literal-value</a> := <em>x</em>, <a href="#eventterm-typedliteral-literal-datatype">literal-datatype</a> := <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral</code> )
|
|
and the following statement is added to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <em>o</em>.<a href="#eventterm-typedliteral-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Empty literal case indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test009.rdf">test009.rdf</a>
|
|
and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test009.nt">test009.nt</a>
|
|
</p></div>
|
|
|
|
<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
|
|
statement is reified with
|
|
<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
|
|
using the reification rules in
|
|
<a href="#section-Reification">section 7.3</a>
|
|
and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
|
|
|
|
|
|
|
|
<h4><a id="parseTypeResourcePropertyElt" name="parseTypeResourcePropertyElt">7.2.18 Production parseTypeResourcePropertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseResource">parseResource</a>))<br />
|
|
<a href="#propertyEltList">propertyEltList</a><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
<p>For element <em>e</em> with possibly empty element content <em>c</em>.</p>
|
|
|
|
<p><em>n</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()).</p>
|
|
|
|
<p>Add the following statement to the graph:
|
|
</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test004.rdf">test004.rdf</a>
|
|
and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test004.nt">test004.nt</a>
|
|
</p></div>
|
|
|
|
<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the
|
|
statement above is reified with
|
|
<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
|
|
using the reification rules in
|
|
<a href="#section-Reification">section 7.3</a>
|
|
and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
|
|
|
|
<p>If the element content <em>c</em> is not empty, then use event
|
|
<em>n</em> to create a new sequence of events as follows:</p>
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> := <code>rdf:Description</code>,<br />
|
|
    <a href="#eventterm-element-subject">subject</a> := <em>n</em>,<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> := set())<br />
|
|
<em>c</em><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
<p>Then
|
|
process the resulting sequence using production
|
|
<a href="#nodeElementList">nodeElement</a>.</p>
|
|
|
|
|
|
<h4><a id="parseTypeCollectionPropertyElt" name="parseTypeCollectionPropertyElt">7.2.19 Production parseTypeCollectionPropertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseCollection">parseCollection</a>))<br />
|
|
<a href="#nodeElementList">nodeElementList</a><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
<p>For element event <em>e</em> with possibly empty
|
|
<a href="#nodeElementList">nodeElementList</a> <em>l</em>. Set
|
|
<em>s</em>:=list().</p>
|
|
|
|
<p>For each element event <em>f</em> in <em>l</em>,
|
|
<em>n</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()) and append <em>n</em> to
|
|
<em>s</em> to give a sequence of events.</p>
|
|
|
|
<p>If <em>s</em> is not empty, <em>n</em> is the first event identifier in
|
|
<em>s</em> and the following statement is added to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
<p>otherwise the following statement is added to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .</code>
|
|
</p></div></div>
|
|
|
|
<p>If the <code>rdf:ID</code> attribute <em>a</em> is given,
|
|
either of the the above statements is reified with
|
|
<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
|
|
using the reification rules in
|
|
<a href="#section-Reification">section 7.3</a>.
|
|
</p>
|
|
|
|
<p>If <em>s</em> is empty, no further work is performed.</p>
|
|
|
|
<p>For each event <em>n</em> in <em>s</em> and the
|
|
corresponding element event <em>f</em> in <em>l</em>, the following
|
|
statement is added to the graph:</p>
|
|
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <em>f</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<p>For each consecutive and overlapping pair of events
|
|
(<em>n</em>, <em>o</em>) in <em>s</em>, the following statement is
|
|
added to the graph:</p>
|
|
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <em>o</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<p>If <em>s</em> is not empty, <em>n</em> is the last event identifier
|
|
in <em>s</em>, the following statement is added to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .</code>
|
|
</p></div></div>
|
|
|
|
|
|
|
|
<h4><a id="parseTypeOtherPropertyElt" name="parseTypeOtherPropertyElt">7.2.20 Production parseTypeOtherPropertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseOther">parseOther</a>))<br />
|
|
<a href="#propertyEltList">propertyEltList</a><br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
|
|
<p>All <code>rdf:parseType</code> attribute values other than the strings
|
|
"Resource", "Literal" or "Collection" are treated as if the value was
|
|
"Literal". This production matches and acts as if production
|
|
<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
|
|
was matched.
|
|
No extra triples are generated for other <code>rdf:parseType</code> values.
|
|
</p>
|
|
|
|
|
|
<h4><a id="emptyPropertyElt" name="emptyPropertyElt">7.2.21 Production emptyPropertyElt</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
|
|
    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, ( <a href="#resourceAttr">resourceAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
|
|
end-element()
|
|
</p></div></div>
|
|
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
<p>If there are no attributes <strong>or</strong> only the
|
|
optional <code>rdf:ID</code> attribute <em>i</em>
|
|
then <em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a>:="", <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
|
|
and the following statement is added to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<p>and then if <em>i</em> is given, the above statement is reified with
|
|
uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
|
|
using the reification rules in
|
|
<a href="#section-Reification">section 7.3</a>.</p>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test002.rdf">test002.rdf</a>
|
|
and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test002.nt">test002.nt</a>
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test005.rdf">test005.rdf</a>
|
|
and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test005.nt">test005.nt</a>
|
|
</p></div>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<p>Otherwise</p>
|
|
|
|
<ul>
|
|
<li>If <code>rdf:resource</code> attribute <em>i</em> is present, then
|
|
<em>r</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>))
|
|
</li>
|
|
|
|
<li>If <code>rdf:nodeID</code> attribute <em>i</em> is present, then
|
|
<em>r</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>)
|
|
</li>
|
|
|
|
<li>If neither,
|
|
<em>r</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id())
|
|
</li>
|
|
</ul>
|
|
|
|
<p>The following are done in any order:</p>
|
|
|
|
<ul>
|
|
<li><p>For all <a href="#propertyAttr">propertyAttr</a>
|
|
attributes <em>a</em> (in any order)</p>
|
|
<ul>
|
|
|
|
<li><p>If <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:type</code>
|
|
then the following statement is added to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>> .</code>
|
|
</p></div></div>
|
|
</li>
|
|
|
|
<li><p>Otherwise
|
|
<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>
|
|
MUST be a Unicode<a href="#ref-unicode">[UNICODE]</a> string in Normal Form C<a href="#ref-nfc">[NFC]</a>,
|
|
<em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
|
|
and the following statement is added to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>a</em>.<a href="#eventterm-attribute-URI">URI</a>> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test013.rdf">test013.rdf</a>
|
|
and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test013.nt">test013.nt</a>
|
|
</p></div>
|
|
|
|
<div class="note"><p><strong>Test:</strong>
|
|
Indicated by
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test014.rdf">test014.rdf</a>
|
|
and
|
|
<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test014.nt">test014.nt</a>
|
|
</p></div>
|
|
|
|
</li>
|
|
|
|
<li><p>Add the following statement to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <<em>e</em>.<a href="#eventterm-element-URI">URI</a>> <em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
|
|
</p></div></div>
|
|
|
|
<p>and then if <code>rdf:ID</code> attribute <em>i</em> is given, the above statement is
|
|
reified with
|
|
uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>i</em>.<a href="#eventterm-identifier-string-value">string-value</a>)))
|
|
using the reification rules in
|
|
<a href="#section-Reification">section 7.3</a>.</p>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<!-- idAboutAttr one has gone; id is closest thing replacing it -->
|
|
<h4><a id="idAboutAttr" name="idAboutAttr"></a>
|
|
<a id="idAttr" name="idAttr">7.2.22 Production idAttr</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)
|
|
</p></div></div>
|
|
|
|
<p><strong>Constraint:</strong>: <a href="#constraint-id">constraint-id</a>
|
|
applies to the values of <code>rdf:ID</code> attributes</p>
|
|
|
|
|
|
<h4><a id="nodeIdAttr" name="nodeIdAttr">7.2.23 Production nodeIdAttr</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="aboutAttr" name="aboutAttr">7.2.24 Production aboutAttr</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="propAttr" name="propAttr"></a><a id="typeAttr" name="typeAttr"></a>
|
|
<a id="propertyAttr" name="propertyAttr">7.2.25 Production propertyAttr</a></h4>
|
|
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <a href="#propertyAttributeURIs">propertyAttributeURIs</a>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a>)
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="resourceAttr" name="resourceAttr">7.2.26 Production resourceAttr</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:resource</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="datatypeAttr" name="datatypeAttr">7.2.27 Production datatypeAttr</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:datatype</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="parseLiteral" name="parseLiteral">7.2.28 Production parseLiteral</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == "Literal")
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="parseResource" name="parseResource">7.2.29 Production parseResource</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == "Resource")
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="parseCollection" name="parseCollection">7.2.30 Production parseCollection</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
|
|
    <a href="#eventterm-attribute-string-value">string-value</a> == "Collection")
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="parseOther" name="parseOther">7.2.31 Production parseOther</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
|
|
    <a
|
|
href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a> - ("Resource" | "Literal" | "Collection") )
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="URI-reference" name="URI-reference">7.2.32 Production URI-reference</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a> interpreted as an <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a>.
|
|
</p></div></div>
|
|
|
|
|
|
<h4><a id="literal" name="literal">7.2.33 Production literal</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
Any XML element content that is allowed according to
|
|
<a href="#ref-xml">[XML]</a> definition <em>Content of Elements</em>
|
|
Rule [43]
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-content">content</a>.
|
|
in section
|
|
<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-starttags">3.1 Start-Tags, End-Tags, and Empty-Element Tags</a>
|
|
</p>
|
|
|
|
<p>The string-value for the resulting event is discussed in
|
|
<a href="#parseTypeLiteralPropertyElt">section 7.2.17</a>.</p>
|
|
</div></div>
|
|
|
|
|
|
<h4><a id="rdf-id" name="rdf-id">7.2.34 Production rdf-id</a></h4>
|
|
|
|
<div class="productionOuter"><div class="productionInner"><p>
|
|
An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
|
|
matching any legal
|
|
<a href="#ref-namespaces">[XML-NS]</a> token
|
|
<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
|
|
</p></div></div>
|
|
|
|
|
|
<h3><a id="section-Reification" name="section-Reification">7.3 Reification Rules</a></h3>
|
|
|
|
<p>For the given URI reference event <em>r</em> and
|
|
the statement with terms <em>s</em>, <em>p</em> and <em>o</em>
|
|
corresponding to the N-Triples:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>s</em> <em>p</em> <em>o</em> .</code>
|
|
</p></div></div>
|
|
|
|
<p>add the following statements to the graph:</p>
|
|
<div class="ntripleOuter"><div class="ntripleInner"><p>
|
|
<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <em>s</em> .</code><br />
|
|
<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <em>p</em> .</code><br />
|
|
<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <em>o</em> .</code><br />
|
|
<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> .</code><br />
|
|
</p></div></div>
|
|
|
|
|
|
<h3><a id="section-List-Expand" name="section-List-Expand">7.4 List Expansion Rules</a></h3>
|
|
|
|
<p>For the given element <em>e</em>, create a new <a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI reference</a> <em>u</em> :=
|
|
concat("http://www.w3.org/1999/02/22-rdf-syntax-ns#_",
|
|
<em>e</em>.<a href="#eventterm-element-liCounter">li-counter</a>),
|
|
increment the
|
|
<em>e</em>.<a href="#eventterm-element-liCounter">li-counter</a>
|
|
property by 1 and return <em>u</em>.</p>
|
|
|
|
|
|
<h2>
|
|
<a id="section-Serialising" name="section-Serialising">8 Serializing an RDF Graph to RDF/XML</a>
|
|
</h2>
|
|
|
|
<p>There are some
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-rdf-graph">RDF Graphs</a>
|
|
as defined in
|
|
<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">RDF Concepts and Abstract Syntax</a>
|
|
that cannot be serialized in RDF/XML. These are those that:</p>
|
|
|
|
<dl>
|
|
<dt>Use property names that cannot be turned into XML namespace-qualified names.<br /></dt>
|
|
<dd>An XML namespace-qualified name
|
|
(<a href="http://www.w3.org/TR/REC-xml-names/#dt-qname">QName</a>)
|
|
has restrictions on the legal characters such that not all property URIs
|
|
can be expressed as these names.
|
|
It is recommended that implementors of RDF serializers, in order to
|
|
break a URI into a namespace name and a local name, split it after
|
|
the last XML non-<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
|
|
character, ensuring that the first character of the name is a
|
|
<a href="http://www.w3.org/TR/REC-xml#NT-Letter">Letter</a> or '_'.
|
|
If the URI ends in a
|
|
non-<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
|
|
character then throw a "this graph cannot be serialized in RDF/XML"
|
|
exception or error.
|
|
</dd>
|
|
|
|
<dt>Use inappropriate reserved names as properties<br /></dt>
|
|
<dd>For example, a property with the same URI as any of the
|
|
<a href="#syntaxTerms">syntaxTerms</a> production.
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
<div class="note"><p><strong>Implementation Note (Informative):</strong>
|
|
When an RDF graph is serialized to RDF/XML and has an XML Schema
|
|
Datatype (XSD), it SHOULD be written in a form that does not require
|
|
whitespace processing. XSD support is NOT required by RDF or RDF/XML
|
|
so this is optional.
|
|
</p></div>
|
|
|
|
|
|
<h2>
|
|
<a id="section-rdf-in-HTML" name="section-rdf-in-HTML">9 Using RDF/XML with HTML and XHTML</a>
|
|
</h2>
|
|
|
|
<p>If RDF/XML is embedded inside HTML or XHTML this can
|
|
add many new elements and attributes, many of which will not be
|
|
in the appropriate DTD. This embedding causes validation against the DTD to fail.
|
|
The obvious solution of changing or extending the DTD is not practical
|
|
for most uses. This problem has been analyzed extensively by Sean B. Palmer in
|
|
<a href="http://infomesh.net/2002/rdfinhtml/">RDF in HTML: Approaches</a>
|
|
<a href="#ref-rdf-in-xhtml">[RDF-IN-XHTML]</a>
|
|
and it concludes that there is no single embedding
|
|
method that satisfies all applications and remains simple.
|
|
</p>
|
|
|
|
<p>The recommended approach is to not embed RDF/XML in HTML/XHTML but
|
|
rather to use <code><link></code> element in the <code><head></code>
|
|
element of the HTML/HTML to point at a separate RDF/XML document.
|
|
This approach has been used for several years by the
|
|
<a href="http://www.dublincore.org/">Dublin Core Metadata Initiative (DCMI)</a>
|
|
on its Web site.</p>
|
|
|
|
<p>To use this technique, the <code><link></code> element
|
|
<code>href</code> should point at the URI of the RDF/XML content
|
|
and the <code>type</code> attribute should be used with the value of
|
|
<code>"application/rdf+xml"</code>, the proposed MIME type for
|
|
RDF/XML, see <a href="#section-MIME-Type">Section 4</a></p>
|
|
|
|
<p>The value of the <code>rel</code> attribute may also be set to
|
|
indicate the relationship; this is an application dependent value.
|
|
The DCMI has used and recommended <code>rel="meta"</code> when linking
|
|
in <a href="http://www.ietf.org/rfc/rfc2731.txt">RFC 2731 — Encoding Dublin Core Metadata in HTML</a><a href="#ref-rfc2731">[RFC-2731]</a> however
|
|
<code>rel="alternate"</code> may also be appropriate.
|
|
See
|
|
<a href="http://www.w3.org/TR/html401/types.html#type-links">HTML 4.01 link types</a>,
|
|
<a href="http://www.w3.org/TR/xhtml-modularization/abstraction.html#dt_LinkTypes">XHTML Modularization — LinkTypes</a>
|
|
and
|
|
<a href="http://www.w3.org/TR/xhtml2/abstraction.html#dt_LinkTypes">XHTML 2.0 — LinkTypes</a>
|
|
for further information on the values that may be appropriate
|
|
for the different versions of HTML.</p>
|
|
|
|
<p><a href="#example21">Example 21</a> shows using this method with
|
|
the <code>link</code> tag inside an XHTML document to link to an
|
|
external RDF/XML document.</p>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a id="example21" name="example21">Example 21: Using
|
|
<code>link</code> in XHTML with an external RDF/XML document</a> (<a href="example21.html">example21.html</a> linking to <a href="example21.rdf">example21.rdf</a>)</div>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0" encoding='iso-8859-1'?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<title>My document</title>
|
|
<meta http-equiv="Content-type" content='text/html; charset="iso-8859-1"' />
|
|
<link rel="alternate" type="application/rdf+xml" title="RDF Version" href="example21.rdf" />
|
|
</head>
|
|
<body>
|
|
<h1>My document</h1>
|
|
|
|
</body>
|
|
</html>
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h2 class="nonum">
|
|
<a id="section-rdf-in-SVG" name="section-rdf-in-SVG"></a>10 Using RDF/XML with SVG (Informative)
|
|
</h2>
|
|
|
|
<p>There is a standardized approach for associating RDF compatible
|
|
metadata with SVG — the metadata element which was explicitly
|
|
designed for this purpose as defined in
|
|
<a href="http://www.w3.org/TR/SVG/metadata.html">Section 21 Metadata</a>
|
|
of the
|
|
<a href="http://www.w3.org/TR/2001/REC-SVG-20010904/">Scalable Vector Graphics (SVG) 1.0 Specification</a>
|
|
<a href="#ref-svg">[SVG]</a>
|
|
and
|
|
<a href="http://www.w3.org/TR/SVG11/metadata.html">Section 21 Metadata</a>
|
|
of the
|
|
<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">Scalable Vector Graphics (SVG) 1.1 Specification</a>
|
|
<a href="#ref-svg11">[SVG11]</a>.
|
|
|
|
</p>
|
|
|
|
<p>This document contains two example graphs in SVG with such
|
|
embedded RDF/XML inside the metadata element:
|
|
<a href="http://www.w3.org/TR/rdf-syntax-grammar/figure1.svg">figure 1</a>
|
|
and
|
|
<a href="http://www.w3.org/TR/rdf-syntax-grammar/figure2.svg">figure 2</a>.
|
|
</p>
|
|
|
|
|
|
<h2 class="nonum">
|
|
<a id="section-Acknowledgments" name="section-Acknowledgments"></a>11 Acknowledgments (Informative)
|
|
</h2>
|
|
|
|
<p>The following people provided valuable contributions to the document:</p>
|
|
|
|
<ul>
|
|
<li>Dan Brickley, W3C/ILRT</li>
|
|
<li>Jeremy Carroll, HP Labs, Bristol</li>
|
|
<li>Graham Klyne, Nine by Nine</li>
|
|
<li>Bijan Parsia, MIND Lab at University of Maryland at College Park</li>
|
|
</ul>
|
|
|
|
<p>This document is a product of extended deliberations by the RDF
|
|
Core working group, whose members have included: Art Barstow (W3C)
|
|
Dave Beckett (ILRT), Dan Brickley (W3C/ILRT), Dan Connolly (W3C),
|
|
Jeremy Carroll (Hewlett Packard), Ron Daniel (Interwoven Inc), Bill
|
|
dehOra (InterX), Jos De Roo (AGFA), Jan Grant (ILRT), Graham Klyne
|
|
(Clearswift and Nine by Nine), Frank Manola (MITRE Corporation),
|
|
Brian McBride (Hewlett Packard), Eric Miller (W3C), Stephen
|
|
Petschulat (IBM), Patrick Stickler (Nokia), Aaron Swartz (HWG), Mike
|
|
Dean (BBN Technologies / Verizon), R. V. Guha (Alpiri Inc), Pat Hayes
|
|
(IHMC), Sergey Melnik (Stanford University), Martyn Horner (Profium
|
|
Ltd).</p>
|
|
|
|
<p>This specification also draws upon an earlier RDF Model and Syntax
|
|
document edited by Ora Lassilla and Ralph Swick, and RDF Schema
|
|
edited by Dan Brickley and R. V. Guha. RDF and RDF Schema Working
|
|
group members who contributed to this earlier work are:
|
|
Nick Arnett (Verity), Tim Berners-Lee (W3C), Tim Bray (Textuality),
|
|
Dan Brickley (ILRT / University of Bristol), Walter Chang (Adobe),
|
|
Sailesh Chutani (Oracle), Dan Connolly (W3C), Ron Daniel
|
|
(DATAFUSION), Charles Frankston (Microsoft), Patrick Gannon
|
|
(CommerceNet), RV Guha (Epinions, previously of Netscape
|
|
Communications), Tom Hill (Apple Computer), Arthur van Hoff
|
|
(Marimba), Renato Iannella (DSTC), Sandeep Jain (Oracle), Kevin
|
|
Jones, (InterMind), Emiko Kezuka (Digital Vision Laboratories), Joe
|
|
Lapp (webMethods Inc.), Ora Lassila (Nokia Research Center), Andrew
|
|
Layman (Microsoft), Ralph LeVan (OCLC), John McCarthy (Lawrence
|
|
Berkeley National Laboratory), Chris McConnell (Microsoft), Murray
|
|
Maloney (Grif), Michael Mealling (Network Solutions), Norbert Mikula
|
|
(DataChannel), Eric Miller (OCLC), Jim Miller (W3C, emeritus), Frank
|
|
Olken (Lawrence Berkeley National Laboratory), Jean Paoli
|
|
(Microsoft), Sri Raghavan (Digital/Compaq), Lisa Rein (webMethods
|
|
Inc.), Paul Resnick (University of Michigan), Bill Roberts
|
|
(KnowledgeCite), Tsuyoshi Sakata (Digital Vision Laboratories), Bob
|
|
Schloss (IBM), Leon Shklar (Pencom Web Works), David Singer (IBM),
|
|
Wei (William) Song (SISU), Neel Sundaresan (IBM), Ralph Swick (W3C),
|
|
Naohiko Uramoto (IBM), Charles Wicksteed (Reuters Ltd.), Misha Wolf
|
|
(Reuters Ltd.), Lauren Wood (SoftQuad).
|
|
</p>
|
|
|
|
|
|
<h2 class="nonum">
|
|
<a id="section-References" name="section-References"></a>12 References
|
|
</h2>
|
|
|
|
<h3>
|
|
<a id="section-Normative-References" name="section-Normative-References"></a>Normative References
|
|
</h3>
|
|
|
|
<dl>
|
|
<dt>
|
|
<a id="ref-rdfms" name="ref-rdfms">[RDF-MS]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">Resource Description Framework (RDF) Model and Syntax Specification</a></cite>, O. Lassila and R. Swick, Editors. World Wide Web Consortium. 22 February 1999. This version is http://www.w3.org/TR/1999/REC-rdf-syntax-19990222. The <a href="http://www.w3.org/TR/REC-rdf-syntax/">latest version of RDF M&S</a> is available at http://www.w3.org/TR/REC-rdf-syntax.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-xml" name="ref-xml">[XML]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2000/REC-xml-20001006">Extensible Markup Language (XML) 1.0, Second Edition</a></cite>, T. Bray, J. Paoli, C.M. Sperberg-McQueen and E. Maler, Editors. World Wide Web Consortium. 6 October 2000. This version is http://www.w3.org/TR/2000/REC-xml-20001006. <a href="http://www.w3.org/TR/REC-xml">latest version of XML</a> is available at http://www.w3.org/TR/REC-xml.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-namespaces" name="ref-namespaces">[XML-NS]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a></cite>, T. Bray, D. Hollander and A. Layman, Editors. World Wide Web Consortium. 14 January 1999. This version is http://www.w3.org/TR/1999/REC-xml-names-19990114. The <a href="http://www.w3.org/TR/REC-xml-names/">latest version of Namespaces in XML</a> is available at http://www.w3.org/TR/REC-xml-names.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-xml-infoset" name="ref-xml-infoset">[INFOSET]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2001/REC-xml-infoset-20011024/">XML Information Set</a></cite>, J. Cowan and R. Tobin, Editors. World Wide Web Consortium. 24 October 2001. This version is http://www.w3.org/TR/2001/REC-xml-infoset-20011024. The <a href="http://www.w3.org/TR/xml-infoset/">latest version of XML Information set</a> is available at http://www.w3.org/TR/xml-infoset.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-uri" name="ref-uri">[URIS]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.isi.edu/in-notes/rfc2396.txt">RFC 2396 — Uniform Resource Identifiers (URI): Generic Syntax</a></cite>, T. Berners-Lee, R. Fielding and L. Masinter, IETF, August 1998. This document is http://www.isi.edu/in-notes/rfc2396.txt.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-rdfconcepts" name="ref-rdfconcepts">[RDF-CONCEPTS]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/">Resource Description Framework (RDF): Concepts and Abstract Syntax</a></cite>, G. Klyne, J. Carroll, Editors, World Wide Web Consortium Working Draft, work in progress, 5 September 2003. This version of the RDF Concepts and Abstract Syntax is http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/. The <a href="http://www.w3.org/TR/rdf-concepts/">latest version of the RDF Concepts and Abstract Syntax</a> is at http://www.w3.org/TR/rdf-concepts/.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-test-cases" name="ref-test-cases">[RDF-TESTS]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/">RDF Test Cases</a></cite>, J. Grant and D. Beckett, Editors, World Wide Web Consortium Working Draft, work in progress, 5 September 2003. This version of the RDF Test Cases is http://www.w3.org/TR/2003/WD-rdf-testcases-20030905/. The <a href="http://www.w3.org/TR/rdf-testcases/">latest version of the RDF Test Cases</a> is at http://www.w3.org/TR/rdf-testcases/.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-keywords" name="ref-keywords">[KEYWORDS]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119 — Key words for use in RFCs to Indicate Requirement Levels</a></cite>, S. Bradner, IETF. March 1997. This document is http://www.ietf.org/rfc/rfc2119.txt.
|
|
</dd>
|
|
|
|
|
|
<dt>
|
|
<a id="ref-rfc3023" name="ref-rfc3023">[RFC-3023]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.ietf.org/rfc/rfc3023.txt">RFC 3032 — XML Media Types</a></cite>, M. Murata, S. St.Laurent, D.Kohn, IETF. January 2001. This document is http://www.ietf.org/rfc/rfc3023.txt.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-iana-media-types" name="ref-iana-media-types">[IANA-MEDIA-TYPES]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.iana.org/assignments/media-types/">MIME Media Types</a></cite>, The Internet Corporation for Assigned Names and Numbers (IANA). This document is http://www.iana.org/assignments/media-types/.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-xml-base" name="ref-xml-base">[XML-BASE]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a></cite>, J. Marsh, Editor, W3C Recommendation. World Wide Web Consortium, 27 June 2001. This version of XML Base is http://www.w3.org/TR/2001/REC-xmlbase-20010627. The <a href="http://www.w3.org/TR/xmlbase/">latest version of XML Base</a> is at http://www.w3.org/TR/xmlbase.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-xml-xc14n" name="ref-xml-xc14n">[XML-XC14N]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/">Exclusive XML Canonicalization Version 1.0</a></cite>, J. Boyer, D.E. Eastlake 3rd, J. Reagle, Authors/Editors. W3C Recommendation. World Wide Web Consortium, 18 July 2002. This version of Exclusive XML Canonicalization is http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718. The <a href="http://www.w3.org/TR/xml-exc-c14n/">latest version of Canonical XML</a> is at http://www.w3.org/TR/xml-exc-c14n.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-unicode" name="ref-unicode">[UNICODE]</a>
|
|
</dt>
|
|
<dd><cite>The Unicode Standard, Version 3</cite>, The Unicode
|
|
Consortium, Addison-Wesley, 2000. ISBN 0-201-61633-5, as updated
|
|
from time to time by the publication of new versions. (See <a href="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>
|
|
<a id="ref-nfc" name="ref-nfc">[NFC]</a>
|
|
</dt>
|
|
<dd><a href="http://www.unicode.org/unicode/reports/tr15/"><cite>Unicode
|
|
Normalization Forms,</cite></a> Unicode Standard Annex #15, Mark
|
|
Davis, Martin Dürst. (See <a href="http://www.unicode.org/unicode/reports/tr15/">http://www.unicode.org/unicode/reports/tr15/</a>
|
|
for the latest version).
|
|
</dd>
|
|
</dl>
|
|
|
|
|
|
<h3>
|
|
<a id="section-Informative-References" name="section-Informative-References"></a>Informational References
|
|
</h3>
|
|
|
|
<dl>
|
|
|
|
<dt>
|
|
<a id="ref-charmod" name="ref-charmod">[CHARMOD]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2002/WD-charmod-20020220/">Character Model for the World Wide Web 1.0</a></cite>, M. Dürst, F. Yergeau, R. Ishida, M. Wolf, A. Freytag, T Texin, Editors, World Wide Web Consortium Working Draft, work in progress, 20 February 2002. This version of the Character Model is http://www.w3.org/TR/2002/WD-charmod-20020220. The <a href="http://www.w3.org/TR/charmod/">latest version of the Character Model</a> is at http://www.w3.org/TR/charmod.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-rdf-model" name="ref-rdf-model">[RDF-SEMANTICS]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2003/WD-rdf-mt-20030905/">RDF Semantics</a></cite>, P. Hayes, Editor. World Wide Web Consortium Working Draft, work in progress, 5 September 2003. This version of the RDF Semantics is http://www.w3.org/TR/2003/WD-rdf-mt-20030905. The <a href="http://www.w3.org/TR/rdf-mt/">latest version of the RDF Semantics</a> is at http://www.w3.org/TR/rdf-mt.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-rdfprimer" name="ref-rdfprimer">[RDF-PRIMER]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2003/WD-rdf-primer-20030905/">RDF Primer</a></cite>, F. Manola, E. Miller, Editors, World Wide Web Consortium Working Draft, work in progress, 5 September 2003. This version of the RDF Primer is http://www.w3.org/TR/2003/WD-rdf-primer-20030905. The <a href="http://www.w3.org/TR/rdf-primer/">latest version of the RDF Primer</a> is at http://www.w3.org/TR/rdf-primer.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-rdfvocab" name="ref-rdfvocab">[RDF-VOCABULARY]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.w3.org/TR/2003/WD-rdf-schema-20030905/">RDF Vocabulary Description Language 1.0: RDF Schema</a></cite>, D. Brickley, R.V. Guha, Editors, World Wide Web Consortium Working Draft, work in progress, 5 September 2003. This version of the RDF Vocabulary Description Language is http://www.w3.org/TR/2003/WD-rdf-schema-20030905. The <a href="http://www.w3.org/TR/rdf-schema/">latest version of the RDF Vocabulary Description Language</a> is at http://www.w3.org/TR/rdf-schema.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-stripedrdf" name="ref-stripedrdf">[STRIPEDRDF]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/2001/10/stripes/">RDF: Understanding the Striped RDF/XML Syntax</a></cite>, D. Brickley, W3C, 2001. This
|
|
document is http://www.w3.org/2001/10/stripes/.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-svg" name="ref-svg">[SVG]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/TR/2001/REC-SVG-20010904/">Scalable Vector Graphics (SVG) 1.0 Specification</a></cite>, J. Ferraiolo (editor), 4 September 2001, W3C Recommendation. This version of SVG is http://www.w3.org/TR/2001/REC-SVG-20010904. The <a href="http://www.w3.org/TR/SVG">latest version of SVG</a> is at http://www.w3.org/TR/SVG.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-svg11" name="ref-svg11">[SVG11]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">Scalable Vector Graphics (SVG) 1.1 Specification</a></cite>, J. Ferraiolo, J. FUJISAWA, D. Jackson (editors), 14 January 2003, W3C Recommendation. This version of SVG is http://www.w3.org/TR/2003/REC-SVG11-20030114/. The <a href="http://www.w3.org/TR/SVG11">latest version of SVG</a> is at http://www.w3.org/TR/SVG11.
|
|
</dd>
|
|
|
|
|
|
<dt>
|
|
<a id="ref-xpath" name="ref-xpath">[XPATH]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/TR/1999/REC-xpath-19991116">XML Path Language (XPath) Version 1.0</a></cite>, J. Clark and S. DeRose, Editors. World Wide Web Consortium, 16 November 1999. This version of XPath is http://www.w3.org/TR/1999/REC-xpath-19991116. The <a href="http://www.w3.org/TR/xpath">latest version of XPath</a> is at http://www.w3.org/TR/xpath.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-sax" name="ref-sax">[SAX2]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://sax.sourceforge.net/">SAX Simple API for XML, version 2</a></cite>, D. Megginson, SourceForge, 5 May 2000. This document is http://sax.sourceforge.net/.</dd>
|
|
|
|
<dt>
|
|
<a id="ref-unparsing" name="ref-unparsing">[UNPARSING]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.hpl.hp.com/techreports/2001/HPL-2001-294.html">Unparsing RDF/XML</a></cite>, J. J. Carroll, HP Labs Technical Report, HPL-2001-294, 2001.
|
|
This document is available at http://www.hpl.hp.com/techreports/2001/HPL-2001-294.html.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-relaxng" name="ref-relaxng">[RELAXNG]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">RELAX NG Specification</a></cite>, James Clark and MURATA Makoto, Editors, OASIS Committee Specification, 3 December 2001. This version of RELAX NG is http://www.oasis-open.org/committees/relax-ng/spec-20011203.html. The <a href="http://www.oasis-open.org/committees/relax-ng/spec.html">latest version of the RELAX NG Specification</a> is at http://www.oasis-open.org/committees/relax-ng/spec.html.</dd>
|
|
|
|
<dt>
|
|
<a id="ref-relaxng-nx" name="ref-relaxng-nx">[RELAXNG-COMPACT]</a>
|
|
</dt>
|
|
<dd><cite><a href="http://www.oasis-open.org/committees/relax-ng/compact-20021121.html">RELAX NG Compact Syntax</a></cite>, James Clark, Editor. OASIS Committee Specification, 21 November 2002. This document is http://www.oasis-open.org/committees/relax-ng/compact-20021121.html.</dd>
|
|
|
|
<dt>
|
|
<a id="ref-rdf-in-xhtml" name="ref-rdf-in-xhtml">[RDF-IN-XHTML]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://infomesh.net/2002/rdfinhtml/">RDF in HTML: Approaches</a></cite>, Sean B. Palmer, 2002
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-rfc2731" name="ref-rfc2731">[RFC-2731]</a>
|
|
</dt>
|
|
<dd>
|
|
<cite><a href="http://www.ietf.org/rfc/rfc2731.txt">RFC 2731 — Encoding Dublin Core Metadata in HTML</a></cite>, John Kunze, DCMI, December 1999.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-xml-schema1" name="ref-xml-schema1"></a>[XML-SCHEMA1]
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schema Part 1: Structures</a></cite>, H.S. Thompson, D. Beech, M. Maloney, N. Mendelsohn, Editors, World Wide Web Consortium Recommendation, 2 May 2001. This version of XML Schema Part 1: Structures is http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/. The <a href="http://www.w3.org/TR/xmlschema-1/">latest version of XML Schema Part 1: Structures</a> is at http://www.w3.org/TR/xmlschema-1.
|
|
</dd>
|
|
|
|
<dt>
|
|
<a id="ref-xml-schema2" name="ref-xml-schema2"></a>[XML-SCHEMA2]
|
|
</dt>
|
|
<dd><cite><a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">XML Schema Part 2: Datatypes</a></cite>, P.V. Biron, A. Malhotra, Editors, World Wide Web Consortium Recommendation, 2 May 2001. This version of XML Schema Part 2: Datatypes is http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/. The <a href="http://www.w3.org/TR/xmlschema-2/">latest version of XML Schema Part 2: Datatypes</a> is at http://www.w3.org/TR/xmlschema-2.
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
|
|
<hr />
|
|
|
|
<h2>
|
|
<a id="section-Schemas" name="section-Schemas"></a>A Syntax Schemas (Informative)
|
|
</h2>
|
|
|
|
<p>This appendix contains XML schemas for validating RDF/XML forms.
|
|
These are example schemas for information only and are not part of
|
|
this specification.</p>
|
|
|
|
|
|
<h3>
|
|
<a id="section-RELAXNG-Schema" name="section-RELAXNG-Schema"></a>A.1
|
|
RELAX NG Compact Schema (Informative)
|
|
</h3>
|
|
|
|
<p>This is an example schema in RELAX NG Compact (for ease of reading)
|
|
for RDF/XML. Applications can also use the
|
|
<a href="rdfxml.rng">RELAX NG XML version</a>.
|
|
These formats are described in
|
|
<a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">RELAX NG</a> (<a href="#ref-relaxng">[RELAXNG]</a>)
|
|
and <a href="http://www.thaiopensource.com/relaxng/compact/">RELAX NG
|
|
Compact</a> (<a href="#ref-relaxng-nx">[RELAXNG-COMPACT]</a>).</p>
|
|
|
|
<div class="note"><p><strong>Note:</strong>
|
|
The RNGC schema has been updated to attempt to match the grammar but
|
|
this has not been checked or used to validate RDF/XML.
|
|
</p></div>
|
|
|
|
<div class="exampleOuter">
|
|
<div class="figure"><a href="rdfxml.rnc">RELAX NG Compact Schema for RDF/XML</a></div>
|
|
|
|
<div class="exampleInner">
|
|
<pre>
|
|
#
|
|
# RELAX NG Compact Schema for RDF/XML Syntax
|
|
#
|
|
# This schema is for information only and NON-NORMATIVE
|
|
#
|
|
# It is based on one originally written by James Clark in
|
|
# http://lists.w3.org/Archives/Public/www-rdf-comments/2001JulSep/0248.html
|
|
# and updated with later changes.
|
|
#
|
|
|
|
namespace local = ""
|
|
namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
|
|
|
|
|
|
start = doc
|
|
|
|
|
|
# I cannot seem to do this in RNGC so they are expanded in-line
|
|
|
|
# coreSyntaxTerms = rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | rdf:datatype
|
|
# syntaxTerms = coreSyntaxTerms | rdf:Description | rdf:li
|
|
# oldTerms = rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID
|
|
# nodeElementURIs = * - ( coreSyntaxTerms | rdf:li | oldTerms )
|
|
# propertyElementURIs = * - ( coreSyntaxTerms | rdf:Description | oldTerms )
|
|
# propertyAttributeURIs = * - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms )
|
|
|
|
# Also needed to allow rdf:li on all property element productions
|
|
# since we can't capture the rdf:li rewriting to rdf_<n> in relaxng
|
|
|
|
# Need to add these explicitly
|
|
xmllang = attribute xml:lang { text }
|
|
xmlbase = attribute xml:base { text }
|
|
# and to forbid every other xml:* attribute, element
|
|
|
|
doc =
|
|
RDF
|
|
|
|
RDF =
|
|
element rdf:RDF {
|
|
xmllang?, xmlbase?, nodeElementList
|
|
}
|
|
|
|
nodeElementList =
|
|
nodeElement*
|
|
|
|
# Should be something like:
|
|
# ws* , ( nodeElement , ws* )*
|
|
# but RELAXNG does this by default, ignoring whitespace separating tags.
|
|
|
|
nodeElement =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype | rdf:li |
|
|
rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID ) {
|
|
(idAttr | nodeIdAttr | aboutAttr )?, xmllang?, xmlbase?, propertyAttr*, propertyEltList
|
|
}
|
|
|
|
# It is not possible to say "and not things
|
|
# beginning with _ in the rdf: namespace" in RELAX NG.
|
|
|
|
ws =
|
|
" "
|
|
|
|
# Not used in this RELAX NG schema; but should be any legal XML
|
|
# whitespace defined by http://www.w3.org/TR/2000/REC-xml-20001006#NT-S
|
|
|
|
|
|
propertyEltList =
|
|
propertyElt*
|
|
|
|
# Should be something like:
|
|
# ws* , ( propertyElt , ws* )*
|
|
# but RELAXNG does this by default, ignoring whitespace separating tags.
|
|
|
|
propertyElt =
|
|
resourcePropertyElt |
|
|
literalPropertyElt |
|
|
parseTypeLiteralPropertyElt |
|
|
parseTypeResourcePropertyElt |
|
|
parseTypeCollectionPropertyElt |
|
|
parseTypeOtherPropertyElt |
|
|
emptyPropertyElt
|
|
|
|
resourcePropertyElt =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype |
|
|
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
idAttr?, xmllang?, xmlbase?, nodeElement
|
|
}
|
|
|
|
literalPropertyElt =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype |
|
|
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
(idAttr | datatypeAttr )?, xmllang?, xmlbase?, text
|
|
}
|
|
|
|
parseTypeLiteralPropertyElt =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype |
|
|
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
idAttr?, parseLiteral, xmllang?, xmlbase?, literal
|
|
}
|
|
|
|
parseTypeResourcePropertyElt =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype |
|
|
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
idAttr?, parseResource, xmllang?, xmlbase?, propertyEltList
|
|
}
|
|
|
|
parseTypeCollectionPropertyElt =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype |
|
|
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
idAttr?, xmllang?, xmlbase?, parseCollection, nodeElementList
|
|
}
|
|
|
|
parseTypeOtherPropertyElt =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype |
|
|
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
idAttr?, xmllang?, xmlbase?, parseOther, any
|
|
}
|
|
|
|
emptyPropertyElt =
|
|
element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype |
|
|
rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
idAttr?, (resourceAttr | nodeIdAttr)?, xmllang?, xmlbase?, propertyAttr*
|
|
}
|
|
|
|
idAttr =
|
|
attribute rdf:ID {
|
|
IDsymbol
|
|
}
|
|
|
|
nodeIdAttr =
|
|
attribute rdf:nodeID {
|
|
IDsymbol
|
|
}
|
|
|
|
aboutAttr =
|
|
attribute rdf:about {
|
|
URI-reference
|
|
}
|
|
|
|
propertyAttr =
|
|
attribute * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
|
|
rdf:resource | rdf:nodeID | rdf:datatype | rdf:li |
|
|
rdf:Description | rdf:aboutEach |
|
|
rdf:aboutEachPrefix | rdf:bagID |
|
|
xml:* ) {
|
|
string
|
|
}
|
|
|
|
resourceAttr =
|
|
attribute rdf:resource {
|
|
URI-reference
|
|
}
|
|
|
|
datatypeAttr =
|
|
attribute rdf:datatype {
|
|
URI-reference
|
|
}
|
|
|
|
parseLiteral =
|
|
attribute rdf:parseType {
|
|
"Literal"
|
|
}
|
|
|
|
parseResource =
|
|
attribute rdf:parseType {
|
|
"Resource"
|
|
}
|
|
|
|
parseCollection =
|
|
attribute rdf:parseType {
|
|
"Collection"
|
|
}
|
|
|
|
parseOther =
|
|
attribute rdf:parseType {
|
|
text
|
|
}
|
|
|
|
URI-reference =
|
|
string
|
|
|
|
literal =
|
|
any
|
|
|
|
IDsymbol =
|
|
xsd:NMTOKEN
|
|
|
|
any =
|
|
mixed { element * { attribute * { text }*, any }* }
|
|
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<h2>
|
|
<a id="section-Changes" name="section-Changes">B Changes (Informative)</a>
|
|
</h2>
|
|
|
|
<p>Changes since the <a href="http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20030123/">23 January 2003</a> last call working draft</p>
|
|
|
|
<p>The changes are divided into non-editorial and editorial. The
|
|
non-editorial changes also list consquential editorial
|
|
changes. Editorial changes are those which do not result in any
|
|
change in the meaning of an RDF document or the behaviour of an RDF
|
|
application.</p>
|
|
|
|
<h3>
|
|
<a id="section-Changes-non-editorial" name="section-Changes-non-editorial">Appendix B.1: Non-Editorial Revisions</a>
|
|
</h3>
|
|
|
|
<dl>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#hodder-01">hodder-01</a> — RDF in HTML (<a id="syntaxLCC-002" name="syntaxLCC-002">syntaxLCC-002</a>)<br /></dt>
|
|
<dd>
|
|
Updated <a href="#section-rdf-in-HTML">9 Using RDF/XML with HTML and XHTML</a> to add new example, correct the meta rel attribute value
|
|
and link to XHTML2's section on link types.
|
|
after
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0221.html">comment by Hodder</a>
|
|
which was
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0540.html">accepted</a> by the RDF Core WG.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#reagle-01">reagle-01</a> — XMLLiteral equality<br /></dt>
|
|
<dd>Updated
|
|
<a href="#section-Data-Model">6 Syntax Data Model</a>,
|
|
<a href="#parseTypeLiteralPropertyElt">7.2.17 Production parseTypeLiteralPropertyElt</a> and
|
|
<a href="#literal">7.2.33 Production literal</a> (was 7.2.34 in previous draft)
|
|
after
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0221.html">comment by Reagle</a> and others
|
|
to more precisely describe XML literals for equality which was
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0021.html">accepted</a> by the RDF Core WG
|
|
with
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Mar/0151.html">changes to several documents</a>
|
|
to use only Exclusive Canonicalization with comments and
|
|
empty InclusiveNamespaces PrefixList. See
|
|
<a href="#parseTypeLiteralPropertyElt">7.2.17 Production parseTypeLiteralPropertyElt</a> for the full description.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#timbl-01">timbl-01</a> — bagid needed (<a id="syntaxLCC-004" name="syntaxLCC-004">syntaxLCC-004</a>)<br /></dt>
|
|
<dd>The RDF Core WG
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Apr/0128.html">decided</a>
|
|
to accept this comment and remove bagID. This meant changes to
|
|
remove all references to <code>rdf:bagID</code> being permitted.
|
|
Section <a href="#section-Syntax-reifying">2.17 Reifying Statements</a>
|
|
changed title, removed <code>rdf:bagID</code> discussion and Example 21.
|
|
Section <a href="#section-Terminology">3 Terminology</a> removed
|
|
bagID from syntax names.
|
|
Section <a href="#section-Identifiers">5.2 Identifiers</a> removed
|
|
bagID from discussion of URI references.
|
|
Section <a href="#section-constraints">5.4 Constraints</a> removed
|
|
bagID from <a href="#constraint-id">constraint-id</a>.
|
|
Section <a href="#section-element-node">6.1.2 Element Event</a> removed
|
|
bag-id-counter accessor.
|
|
Section <a href="#section-attribute-node">6.1.4 Attribute Event</a> removed
|
|
bagID from allowed non-namespaced attributes.
|
|
<a href="#coreSyntaxTerms">7.2.2 Production coreSyntaxTerms</a> removed
|
|
<code>rdf:bagID</code>.
|
|
<a href="#oldTerms">7.2.4 Production oldTerms</a> added <code>rdf:bagID</code>
|
|
and link to the LC Issue.
|
|
<a href="#nodeElement">7.2.11 Production nodeElement</a> removed use of
|
|
bagIDAttr production, removed actions when bagID found and removed S1-4 labels.
|
|
<a href="#emptyPropertyElt">7.2.21 Production emptyPropertyElt</a> removed
|
|
use of bagIDAttr production and removed actions when bagID found.
|
|
7.2.25 Production bagID deleted (7.2.26-7.2.35 then renumbered),
|
|
Section 7.5 Bag Expansion Rules deleted.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#timbl-03">timbl-03</a> — collection clutter<br /></dt>
|
|
<dd>
|
|
Updated <a href="#parseTypeCollectionPropertyElt">Section 7.2.19 Production parseTypeCollectionPropertyElt</a>
|
|
to remove the redundant triple in <code>rdf:parseType="Collection"</code>
|
|
after the RDF Core WG
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0170.html">accepted</a> this comment.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-02">xmlsch-02</a> — Whitespace facets<br /></dt>
|
|
<dd>
|
|
Updated <a href="#section-typed-literal-node">6.1.9 Typed Literal Event</a>
|
|
to add a
|
|
<a href="#literal-white-space-normalization-note">note</a>
|
|
that the whitespace facet in W3C XML Schema datatypes does not
|
|
affect RDF lexical-to-value mapping after the
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003May/0097.html">proposal</a> to address the issue
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003May/0138.html">approved</a> in RDF Core telcon 2003-05-09.
|
|
</dd>
|
|
|
|
|
|
<dt>Language tags in Typed Literals<br /></dt>
|
|
<dd>
|
|
Updated
|
|
<a href="#section-Syntax-datatyped-literals">2.9 Typed Literals</a> and
|
|
<a href="#section-typed-literal-node">6.1.9 Typed Literal Event</a>,
|
|
<a href="#section-Infoset-Grammar-Notation">6.3 Grammar Notation</a>,
|
|
<a href="#literalPropertyElt">7.2.16 Production literalPropertyElt</a>,
|
|
<a href="#parseTypeLiteralPropertyElt">7.2.17 Production parseTypeLiteralPropertyElt</a>
|
|
after removal of language tag from all typed literals including
|
|
<code>rdf:XMLLiteral</code> as
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003May/0138.html">approved</a> in RDF Core telcon 2003-05-09.
|
|
Also added N-Triples escapes for URI references to
|
|
<a href="#section-identifier-node">6.1.6 URI Reference Event</a>
|
|
as added to <a href="#section-typed-literal-node">6.1.9</a>
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
|
|
<h3>
|
|
<a id="section-Changes-editorial" name="section-Changes-editorial">Appendix B.2: Editorial Revisions</a>
|
|
</h3>
|
|
|
|
|
|
<dl>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#efth-01">efth-01</a> — change namespace URIs<br /></dt>
|
|
<dd>
|
|
Removed two informative notes about potentially changing the rdf
|
|
namespace URIs in
|
|
<a href="#section-Namespace">5.1 The RDF Namespace and Vocabulary</a>
|
|
and
|
|
<a href="#nodeElementURIs">7.2.5 Production nodeElementURIs</a>.
|
|
After the resolution of this issue and
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Apr/0207">action recorded in RDF Core WG 2003-04-11 telcon</a>.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#pfps-19">pfps-19</a> — namespace v vocabulary<br /></dt>
|
|
|
|
<dd>Throughout: Changed the term "namespace" to be used to refer to
|
|
XML namespaces and the term "vocabulary" be used to refer to
|
|
collections of names (<a href="http://www.w3.org/TR/2003/WD-rdf-concepts-20030905/#dfn-URI-reference">RDF URI references</a>)
|
|
after the RDF Core WG
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0549.html">accepted</a> this comment.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#williams-01">williams-01</a> — Nodes and arcs terminology<br /></dt>
|
|
|
|
<dd>Throughout: Changed arc to be predicate arc when talking about
|
|
the thing in the graph picture. Removed use of 'labeling' when not
|
|
talking about the picture. Replaced arc with predicate when talking
|
|
about part of an RDF triple. Changes after
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Jun/0067.html">RDF Core WG discussion 2003-06-06</a> on the use of arc
|
|
and
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Mar/0138.html">RDF Core WG decision</a> 2003-03-21 on the resolution of issue
|
|
<a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#williams-01">williams-01</a>
|
|
about the use of node.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-09">xmlsch-09</a> — qnames<br /></dt>
|
|
<dd><a href="#section-Syntax-intro">2.1 Introduction</a> 2nd paragraph modified
|
|
and split into two to mention namespace names more and prefixes less
|
|
after editorial comments in section 4.2 of
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0489.html">XML Schema WG comments on RDF documents</a>
|
|
</dd>
|
|
|
|
<dt>Notes on Whitespace Normalization for XML Schema Datatypes</dt>
|
|
<dd>
|
|
Added an implementation note to
|
|
<a href="#section-Serialising">8 Serializing an RDF Graph to RDF/XML</a>
|
|
that when generating RDF/XML, if XSD support is provided,
|
|
the whitespaced normalized form should be used.
|
|
</dd>
|
|
|
|
|
|
<dt>Grammar Notation</dt>
|
|
<dd>Split the huge table of notation in
|
|
<a href="#section-Infoset-Grammar-Notation">6.3 Grammar Notation</a>
|
|
into three smaller ones for general, matching and action notation. Reworded
|
|
the introduction to this section to match.</dd>
|
|
|
|
|
|
<dt>XML Canonicalization</dt>
|
|
<dd>Reworded <a href="#parseTypeLiteralPropertyElt">7.2.17 Production parseTypeLiteralPropertyElt</a>
|
|
to give the method how to get the lexical form (Unicode string) of
|
|
XML literals from the XML Infoitems inside the
|
|
<code>rdf:parseType="Literal"</code> content using Exclusive XML
|
|
Canonicalization. A clarification after it was noticed the
|
|
output of exc-C14N was an sequence of octets not a Unicode string.
|
|
</dd>
|
|
|
|
|
|
<dt>Unicode NFC</dt>
|
|
<dd>Added references to NFC checking for Unicode strings used as literal values
|
|
in
|
|
<a href="#nodeElement">7.2.11 Production nodeElement</a>,
|
|
<a href="#literalPropertyElt">7.2.16 Production literalPropertyElt</a>
|
|
and
|
|
<a href="#emptyPropertyElt">7.2.21 Production emptyPropertyElt</a>.
|
|
Added new normative references Unicode<a href="#ref-unicode">[UNICODE]</a>
|
|
and Normal Form C<a href="#ref-nfc">[NFC]</a>.
|
|
After
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JulSep/0203.html">comment by Patel-Schneider 2003-08-05</a>
|
|
</dd>
|
|
|
|
<dt>RDF Vocabulary definiton</dt>
|
|
<dd>Added a definition of <a href="#rdf-vocabulary">RDF Vocabulary</a>
|
|
to <a href="#section-Namespace">Section 5.1 The RDF Namespace and Vocabulary</a> and edited the wording slightly from
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JulSep/0206.html">suggestion by Patel-Schneider 2003-08-07</a>
|
|
</dd>
|
|
|
|
<dt>RDF/XML in SVG<br /></dt>
|
|
<dd>Added informative section <a href="#section-rdf-in-SVG">10 Using RDF/XML with SVG</a> (renumbering Acknowledgements to 11, and References to 12)
|
|
to add pointers to where the SVG 1.0 and 1.1 specifications describe
|
|
using RDF/XML inside SVG. Added after the
|
|
<a href="http://lists.w3.org/Archives/Public/www-svg/2003Mar/0075.html">original comment from Chris Lilley</a> as
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Apr/0128.html">actioned by the RDF Core WG telcon 2003-04-04</a>.
|
|
</dd>
|
|
|
|
|
|
<dt>Conformance<br /></dt>
|
|
<dd>Added section <a href="#section-conformance">5.5 Conformance</a>
|
|
as actioned after
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Jul/0236.html">RDF Core WG telcon 2003-07-18</a>
|
|
to define the terms
|
|
<a href="#dfn-rdf-document" class="termref">RDF Document</a>
|
|
and <a href="#dfn-rdf-xml-document" class="termref">RDF/XML Document</a>
|
|
as well as conformance to this specification.
|
|
</dd>
|
|
|
|
<dt>Review by Graham Klyne<br /></dt>
|
|
<dd>Editorial and wording changes to several sections
|
|
<a href="#section-Syntax-intro">2.1</a>,
|
|
<a href="#section-Syntax-languages">2.7</a>,
|
|
<a href="#section-Syntax-blank-nodes">2.10</a>,
|
|
<a href="#section-MIME-Type">4</a>,
|
|
<a href="#section-Identifiers">5.2</a>,
|
|
<a href="#section-Nodes">6.1</a>,
|
|
<a href="#section-element-node">6.1.2</a>,
|
|
<a href="#section-Infoset-Grammar-Notation">6.3</a>,
|
|
<a href="#start">7.2.1</a>,
|
|
<a href="#parseTypeCollectionPropertyElt">7.2.19</a>,
|
|
<a href="#section-Reification">7.3</a>,
|
|
<a href="#section-Normative-References">11 References</a>
|
|
after <a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Jul/0373.html">Graham Klyne's review</a> for RDF Core WG.
|
|
</dd>
|
|
|
|
<dt>Remove document statuses from document body<br /></dt>
|
|
<dd>Removed the use of document status words (Working Draft, Recommendation
|
|
etc.) throughout the document body
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Jul/0236.html">RDF Core WG telcon 2003-07-18</a>.
|
|
These remain in the references (correct) and status (yet to be
|
|
edited) sections.
|
|
</dd>
|
|
|
|
<dt>Review by Jeremy Carroll<br /></dt>
|
|
<dd>Changes to several sections
|
|
after <a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Jul/0092.html">Jeremy Carroll's review</a> 2003-07-07 for the RDF Core WG.
|
|
<a href="#section-Introduction">1 Introduction</a> Removed (process, historical) paragraph 2.
|
|
<a href="#section-Syntax-intro">2.1 Introduction</a> Rewordings — subject and object nodes don't use QNames.
|
|
<a href="#section-Syntax-node-property-elements">2.2 Node Elements and Property Elements</a> Use "left hand side of figure 2" to describe the path. Minor words.<br />
|
|
<a href="#section-Syntax-ID-xml-base">2.14 Abbreviating URI References</a> Added note that a base URI is required either from <code>xml:base</code> or the URI of the document.
|
|
<a href="#parseTypeCollectionPropertyElt">7.2.19 Production parseTypeCollectionPropertyElt</a> Minor words.
|
|
</dd>
|
|
|
|
<dt>Editorial comments on section 2<br /></dt>
|
|
<dd><a href="#section-Syntax-parsetype-resource">2.11 Omitting Blank Nodes: <code>rdf:parseType="Resource"</code></a>
|
|
reworded to clarify which property element was discussed.
|
|
<a href="#section-Syntax-property-attributes-on-property-element">2.12 Omitting Nodes: Property Attributes on an empty Property Element</a>
|
|
reworded to explain moving the property element to a property attribute
|
|
<a href="#section-Syntax-list-elements">2.15 Container Membership Property Elements: <code>rdf:li</code> and <code>rdf:_</code><em>n</em></a>
|
|
added note that document order matters here.
|
|
<a href="#section-Syntax-parsetype-Collection">2.16 Collections: <code>rdf:parseType="Collection"</code></a>
|
|
added note that document order matters here.
|
|
After comments in personal communication to the editor 2003-06-17.
|
|
</dd>
|
|
|
|
|
|
<dt>Editorial comments<br /></dt>
|
|
<dd>Minor fixes to
|
|
<a href="#resourcePropertyElt">7.2.15 Production resourcePropertyElt</a>
|
|
and
|
|
<a href="#literalPropertyElt">7.2.16 Production literalPropertyElt</a>
|
|
(not 7.12 as in the comment)
|
|
after
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0234.html">comments by Palmer</a>, 2003-06-10
|
|
</dd>
|
|
|
|
|
|
<dt>XML Reserved Names<br /></dt>
|
|
<dd>
|
|
<a href="#section-Namespace">5.1 The RDF Namespace</a>
|
|
Remove the restriction on namespace names starting with the
|
|
XML namespace URI.
|
|
<a href="#section-Data-Model">6 Syntax Data Model</a>
|
|
Add how to remove reserved XML Names when they are element names.
|
|
<a href="#section-element-node">6.1.2 Element Event</a>
|
|
Expand the details of how to remove remove XML Names
|
|
when they are attribute names.
|
|
Updates after several comments by Patel-Schneider starting
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0172.html">2003-05-22</a> and
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0211.html">2003-06-04</a> and after approval to change in
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Jun/0067.html">RDF Core WG 2003-06-06 telcon</a>.
|
|
</dd>
|
|
|
|
|
|
<dt>Status of Notes<br /></dt>
|
|
<dd>
|
|
In sections <a href="#section-MIME-Type">4</a>,
|
|
<a href="#section-Namespace">5.1</a>,
|
|
<a href="#section-Identifiers">5.2</a>,
|
|
<a href="#section-baseURIs">5.3</a>,
|
|
<a href="#section-literal-node">6.1.8</a>,
|
|
<a href="#section-typed-literal-node">6.1.9</a>,
|
|
<a href="#oldTerms">7.2.4</a>,
|
|
<a href="#literalPropertyElt">7.2.16</a>.
|
|
Reviewed the status of Notes and marked those specifically that are
|
|
informative such as implementation or interoperability notes.
|
|
After
|
|
<a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Apr/0097.html">action recorded in RDF Core telcon 2003-03-28</a>.
|
|
</dd>
|
|
|
|
|
|
<dt>Missing case in parseOther<br /></dt>
|
|
<dd><a href="#parseOther">7.2.31 Production parseOther</a> (was 7.2.32 in previous draft)
|
|
added the case "Collection" which had been mistakenly omitted after the
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0161.html">comment by Patel-Schneider</a>, 2003-05-09.
|
|
</dd>
|
|
|
|
|
|
<dt>RELAX NG sufixes<br /></dt>
|
|
<dd>Renamed the informative RELAX NG schemas in
|
|
<a href="#section-RELAXNG-Schema">A.1 RELAX NG Compact Schema</a>
|
|
to use suffixes .rnc (compact version) and .rng (XML version)
|
|
after <a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0148.html">comment by Prud'hommeaux</a>, 2003-05-06.
|
|
</dd>
|
|
|
|
<dt>Citing <em>Namespaces in XML</em><br /></dt>
|
|
<dd>Throughout, changed to use the correct document title
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a>
|
|
after a private editorial comment to the editor 2003-05-04.
|
|
</dd>
|
|
|
|
<dt>Editorial comments 4.3 from XML Schema WG<br /></dt>
|
|
<dd><a href="#section-Syntax-empty-property-elements">2.4 Empty Property Elements</a> first sentence modified after editorial comments in section 4.3 of
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0489.html">XML Schema WG comments on RDF documents</a>
|
|
</dd>
|
|
|
|
|
|
<dt>Editorial comments (<a id="syntaxLCC-001" name="syntaxLCC-001">syntaxLCC-001</a>)<br /></dt>
|
|
<dd>Spellings, grammar, CSS style and suggested rewordings
|
|
after <a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0419.html">editorial comments from Lesch, 2003-02-25</a>.
|
|
In particular the small two-paragraph informative section 2.18
|
|
has been merged into <a href="#section-Introduction">section 1 introduction</a>.
|
|
Many excessive capitalizations were removed.
|
|
</dd>
|
|
|
|
<dt>Minor editorial<br /></dt>
|
|
<dd>1 letter change after<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0163.html"> comment from Dürst, 2003-01-30</a>
|
|
</dd>
|
|
|
|
<dt>Blank node identifier clarification<br /></dt>
|
|
<dd>Additional clarification added to <a href="#section-Identifiers">5.2</a>, <a href="#section-blank-nodeid-event">6.1.7</a> and <a href="#section-Infoset-Grammar-Notation">6.3</a> (bnodeid definition) as
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0153.html">described 2003-01-30</a>
|
|
after
|
|
<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0119.html">coment by Patel-Schneider, 2003-01-28</a>.
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
|
|
<h3>
|
|
<a id="section-Changes-none" name="section-Changes-none">Appendix B.3: Issues requiring no document revisions</a>
|
|
</h3>
|
|
|
|
<dl>
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#chas-01">chas-01</a> — aboutEachPrefix<br /></dt>
|
|
<dd><a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0022.html">not accepted</a></dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#krech-01">krech-01</a> — emptyPropertyElt ambiguity (<a id="syntaxLCC-003" name="syntaxLCC-003">syntaxLCC-003</a>)<br /></dt>
|
|
<dd>After <code>rdf:bagID</code> was removed from the language
|
|
for last call issue
|
|
<a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#timbl-01">timbl-01</a>,
|
|
this <a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0127.html">comment by Krech</a> required no action.
|
|
</dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#hendler-01">hendler-01</a> — literals in parsetype collection<br /></dt>
|
|
<dd><a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0544.html">postponed</a></dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-08">xmlsch-08</a> — xsi:type<br /></dt>
|
|
<dd><a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0592.html">accepted with explanation</a></dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-10">xmlsch-10</a> — cannonical syntax<br /></dt>
|
|
<dd><a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0112.html">postponed</a></dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-11">xmlsch-11</a> — layering on xml<br /></dt>
|
|
<dd><a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0114.html">clarification given</a></dd>
|
|
|
|
<dt><a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#xmlsch-12">xmlsch-12</a> — capricious syntax<br /></dt>
|
|
<dd><a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003AprJun/0112.html">postponed</a></dd>
|
|
</dl>
|
|
|
|
|
|
<hr />
|
|
|
|
<div class="metadata">
|
|
<p><a href="metadata.rdf"><img src="http://www.w3.org/RDF/icons/rdf_metadata_button.40" alt="RDF/XML Metadata" /></a></p>
|
|
</div>
|
|
|
|
|
|
</body>
|
|
</html>
|