Another abandoned server code base... this is kind of an ancestor of taskrambler.
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.
 
 
 
 
 
 

1641 lines
63 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
<title>Pointer Methods in RDF 1.0</title>
<link href="http://www.w3.org/2009/pointers" rel="alternate"
type="application/rdf+xml" />
<link rel="stylesheet" type="text/css" href="main.css" />
<link rel="stylesheet" type="text/css"
href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
</head>
<body>
<div id="head" class="head">
<p align="center">[<a href="#contents" rel="contents">contents</a>]</p>
<p><a href="http://www.w3.org/"><img width="72" height="48" alt="W3C"
src="http://www.w3.org/Icons/w3c_home" /></a></p>
<h1><a id="title" name="title">Pointer Methods in <acronym
title="Resource Description Framework">RDF</acronym> 1.0</a></h1>
<h2><a id="w3c-doctype" name="w3c-doctype">W3C Working Draft 10 May
2011</a></h2>
<dl>
<dt>This version:</dt>
<dd><a
href="http://www.w3.org/TR/2011/WD-Pointers-in-RDF10-20110510/">http://www.w3.org/TR/2011/WD-Pointers-in-RDF10-20110510/</a></dd>
<dt>Latest version:</dt>
<dd><a
href="http://www.w3.org/TR/Pointers-in-RDF10/">http://www.w3.org/TR/Pointers-in-RDF10/</a></dd>
<dt>Previous version:</dt>
<dd><a
href="http://www.w3.org/TR/2009/WD-Pointers-in-RDF10-20091029/">http://www.w3.org/TR/2009/WD-Pointers-in-RDF10-20091029/</a></dd>
<dt>Editors:</dt>
<dd>Carlos Iglesias, Fundación <acronym
title="Centro Tecnolgico de la Informacin y la Comunicacin">CTIC</acronym></dd>
<dt>Previous Editors:</dt>
<dd>Michael Squillace (until October 2009 while at IBM Corporation)</dd>
</dl>
<p>The terms defined by this document are also provided in <a
href="http://www.w3.org/2009/pointers">RDF Schema</a> format.</p>
<p class="copyright"><a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
2011 <a href="http://www.w3.org/"><acronym
title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
href="http://www.csail.mit.edu/"><acronym
title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
href="http://www.ercim.eu/"><acronym
title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a
href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> rules apply.</p>
</div>
<hr />
<div id="abs">
<h2><a id="abstract" name="abstract">Abstract</a></h2>
<p>This specification contains a framework for representing pointers - entities
that permit identifying a portion or segment of a piece of content - making use
of the Resource Description Framework (RDF). It also describes a number of
specific types of pointers that permit portions of a document to be referred to
in different ways. When referring to a specific part of, say, a piece of web
content, it is useful to be able to have a consistent manner by which to refer
to a particular segment of a web document, to have a variety of ways by which
to refer to that same segment, and to make the reference robust in the face of
changes to that document. This specification is part of the <a
href="http://www.w3.org/WAI/intro/earl">Evaluation And Report Language
(<acronym>EARL</acronym>)</a> but can be reused in other contexts too.</p>
</div>
<div id="sotd">
<h2><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 10 May 2011 Working Draft of the Pointer Methods in <acronym
title="Resource Description Framework">RDF</acronym> 1.0 vocabulary is an
update of the previous <a
href="http://www.w3.org/TR/2009/WD-Pointers-in-RDF10-20091029/">Pointer Methods
in <acronym>RDF</acronym> Working Draft of 29 October 2009</a>, and it
incorporates all comments received since. This document is part of the <a
href="http://www.w3.org/WAI/intro/earl">Evaluation And Report Language
(<acronym>EARL</acronym>)</a> but can be reused in other contexts too. This
document is intended to be published and maintained as a W3C Working Group Note
after review and refinement.</p>
<p>The Evaluation and Repair Tools Working Group (ERT WG) believes it has
addressed all issues brought forth through previous Working Draft iterations.
The Working Group encourages feedback about this document, Pointer Methods in
<acronym>RDF</acronym> 1.0, by developers and researchers who have interest in
software-supported evaluation and validation of websites, and by developers and
researchers who have interest in Semantic Web technologies for content
description, annotation, and adaptation. In particular, feedback from the
groups involved in the W3C Semantic Web Activity, especially the Semantic Web
Coordination Group, the Semantic Web Deployment Working Group, and the Semantic
Web Interest Group would be greatly appreciated.</p>
<p>Please send comments on this Pointer Methods in <acronym>RDF</acronym> 1.0
document by <strong>10 June 2011</strong> to <a
href="mailto:public-earl10-comments@w3.org">public-earl10-comments@w3.org</a>
(publicly visible <a
href="http://lists.w3.org/Archives/Public/public-earl10-comments/">mailing list
archive</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.</p>
<p>This document has been produced by the <a
href="http://www.w3.org/WAI/ER/">Evaluation and Repair Tools Working Group (ERT
WG)</a> as part of the <a href="http://www.w3.org/WAI/Technical/Activity">Web
Accessibility Initiative (WAI) Technical Activity</a>.</p>
<p>This document was produced by a group operating under the <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C
Patent Policy</a>. The group does not expect this document to become a W3C
Recommendation. W3C maintains a <a rel="disclosure"
href="http://www.w3.org/2004/01/pp-impl/32094/status">public list of any patent
disclosures</a> made in connection with the deliverables of the group; that
page also includes instructions for disclosing a patent. An individual who has
actual knowledge of a patent which the individual believes contains <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
Claim(s)</a> must disclose the information in accordance with <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
6 of the W3C Patent Policy</a>.</p>
</div>
<hr />
<div id="toc">
<h2><a id="contents" name="contents" accesskey="c">Table of Contents</a></h2>
<ol>
<li><a href="#introduction">Introduction</a>
<ul>
<li>1.1. <a href="#namespaces">Namespaces</a></li>
<li>1.2. <a href="#conventions">Document conventions</a></li>
<li>1.3. <a href="#use-cases">Use Cases</a></li>
<li>1.4. <a href="#pre-requisites">Pre-requisites</a></li>
</ul>
</li>
<li><a href="#classes">Classes</a>
<ul>
<li><a href="#pointerClass">2.1 Pointer Class</a></li>
<li><a href="#pointersGroupClass">2.2 PointersGroup Class</a>
<ul>
<li><a href="#relatedPointersClass">2.2.1 RelatedPointers
Class</a></li>
<li><a href="#equivalentPointersClass">2.2.2 EquivalentPointers
Class</a></li>
</ul>
</li>
<li><a href="#singlePointerClass">2.3 SinglePointer Class</a>
<ul>
<li><a href="#expressionPointerClass">2.3.1 ExpressionPointer
Class</a>
<ul>
<li><a href="#xPathPointerClass">2.3.1.1 XPathPointer Class</a>
<ul>
<li><a href="#namespaceMappingClass">2.3.1.1.1
NamespaceMapping Class</a></li>
<li><a href="#xPointerPointerClass">2.3.1.1.2 XPointerPointer
Class</a></li>
</ul>
</li>
<li><a href="#cssSelectorPointerClass">2.3.1.2 CSSSelectorPointer
Class</a></li>
</ul>
</li>
<li><a href="#offsetPointerClass">2.3.2 OffsetPointer Class</a>
<ul>
<li><a href="#charOffsetPointerClass">2.3.2.1 CharOffsetPointer
Class</a></li>
<li><a href="#byteOffsetPointerClass">2.3.2.2 ByteOffsetPointer
Class</a></li>
</ul>
</li>
<li><a href="#lineCharPointerClass">2.3.3 LineCharPointer
Class</a></li>
</ul>
</li>
<li><a href="#compoundPointerClass">2.4 CompoundPointer Class</a>
<ul>
<li><a href="#startEndPointerClass">2.4.1 StartEndPointer
Class</a></li>
<li><a href="#charSnippetCompoundPointerClass">2.4.2
CharSnippetCompoundPointer Class</a></li>
<li><a href="#charOffsetCompoundPointerClass">2.4.3
CharOffsetCompoundPointer Class</a></li>
<li><a href="#byteSnippetCompoundPointerClass">2.4.4
ByteSnippetCompoundPointer Class</a></li>
<li><a href="#byteOffsetCompoundPointerClass">2.4.5
ByteOffsetCompoundPointer Class</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#properties">Properties</a>
<ul>
<li><a href="#groupPointerProperty">3.1 groupPointer Property</a></li>
<li><a href="#referenceProperty">3.2 reference Property</a></li>
<li><a href="#expressionProperty">3.3 expression Property</a></li>
<li><a href="#versionProperty">3.4 version Property</a></li>
<li><a href="#namespaceProperty">3.5 namespace Property</a></li>
<li><a href="#prefixProperty">3.6 prefix Property</a></li>
<li><a href="#namespaceNameProperty">3.7 namespaceName Property</a></li>
<li><a href="#offsetProperty">3.8 offset Property</a></li>
<li><a href="#lineNumberProperty">3.9 lineNumber Property</a></li>
<li><a href="#charNumberProperty">3.10 charNumber Property</a></li>
<li><a href="#startPointerProperty">3.12 startPointer Property</a></li>
<li><a href="#endPointerProperty">3.13 endPointer Property</a></li>
<li><a href="#charOffsetProperty">3.14 charOffset Property</a></li>
<li><a href="#byteOffsetProperty">3.15 byteOffset Property</a></li>
</ul>
</li>
</ol>
<h3><a name="appendices" id="appendices">Appendices</a></h3>
<ol type="A">
<li><a href="#terms">Vocabulary Terms</a></li>
<li><a href="#references">References</a></li>
<li><a href="#contributors">Contributors</a></li>
<li><a href="#changes">Document Changes</a></li>
</ol>
</div>
<hr />
<div id="intro">
<h2><a id="introduction" name="introduction">1. Introduction</a></h2>
<p>This specification introduces a vocabulary constructed using the Resource
Description Framework (RDF), to enable certain parts within a document,
particularly HTML and XML documents, to be pointed to in an accurate way. The
document introduces a series of RDF classes and properties that can be used to
point to parts of a document in different ways.</p>
<p>Note that some pointers may be more appropriated to operate on the character
or byte serialization of the resources and others for structured documents,
such as XML documents, where character or byte based pointing mechanisms may be
considered a bad practice.</p>
<p>The terms defined by this document can be used as part of the <a
href="http://www.w3.org/WAI/intro/earl">W3C Evaluation And Report Language
(<acronym>EARL</acronym>)</a> and in other contexts too. <a
href="http://www.w3.org/TR/EARL10-Guide/">Developer Guide for Evaluation and
Report Language (EARL) 1.0</a> explains how to implement and use EARL,
including conformance requirements for software tools.</p>
<h3><a id="namespaces" name="namespaces">1.1. Namespaces</a></h3>
<p>The namespace for Pointer Methods in RDF as specified in this draft is
<code>http://www.w3.org/2009/pointers#</code> and uses the <code>ptr</code>
prefix. Other namespaces typically used by Pointer Methods in RDF include the
following:</p>
<dl>
<dt><code>cnt</code></dt>
<dd>The Representing Content in RDF namespace
<code>http://www.w3.org/2011/content#</code> described in [<a
href="#ref-content">Content</a>]</dd>
<dt><code>rdf</code></dt>
<dd>The RDF namespace
<code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code> described in [<a
href="#ref-rdf">RDF</a>]</dd>
<dt><code>rdfs</code></dt>
<dd>The RDF Schema namespace
<code>http://www.w3.org/2000/01/rdf-schema#</code> described in [<a
href="#ref-rdfs"><acronym
title="Resource Description Framework Schema">RDFS</acronym></a>]</dd>
</dl>
<h3><a id="conventions" name="conventions">1.2. Document conventions</a></h3>
<p>The keywords <strong>must</strong>, <strong>required</strong>,
<strong>recommended</strong>, <strong>should</strong>, <strong>may</strong>,
and <strong>optional</strong> are used in accordance with <a
href="#ref-rfc2119">[<acronym title="Request For Comments">RFC</acronym>
2119]</a>.</p>
<h3><a id="use-cases" name="use-cases">1.3. Use cases</a></h3>
<p>One motivation for this vocabulary stems from methods for reporting test
results such as the Evaluation and Report Language (EARL) <a
href="#ref-earl">[EARL]</a> but this need not be its only application. Other
typical applications could include:</p>
<ul>
<li>Applications dealing with retrieving content and then storing that
content in an alternative format</li>
<li>Applications dealing with the testing and/or repairing of content</li>
<li>Content-authoring tools that would aid authors in finding problematic or
incomplete portions of the content being created or edited</li>
<li>Aggregation, comparison, or synopsis of the results of applications, such
as the aggregation, comparison, or synopsis of test results or
reparations</li>
</ul>
<p>This list is not meant to be exhaustive. This vocabulary is extensible,
providing for alternative or enhanced methods for referring to portions of
content and for referring to a variety of content types.</p>
<h3><a id="pre-requisites" name="pre-requisites">1.4. Pre-requisites</a></h3>
<p>Pointer Methods in RDF is defined as an RDF vocabulary. The Resource
Description Framework (RDF) is a general-purpose language for describing
information in a way that is <em>machine-understandable</em>. The examples will
be serialized with the abbreviated RDF/<acronym
title="Extensible Markup Language">XML</acronym> notation.</p>
<p>This document assumes the following background knowledge:</p>
<ul>
<li>Basic knowledge about the Semantic Web and RDF. For references, consult
<a href="#ref-rdf">[RDF]</a>, <a href="#ref-rdf-primer">[RDF-PRIMER]</a>
and <a href="#ref-rdfs">[RDFS]</a>.</li>
<li>Basic knowledge of XML <a href="#ref-xml">[XML]</a> and its associated
technologies.</li>
<li>Why RDF model is different from the XML model [<a
href="#ref-rdf-xml-diffs">RDF-XML-DIFFS</a>].</li>
</ul>
</div>
<h2 id="classes">2. Classes</h2>
<h3 id="pointerClass">2.1 Pointer Class</h3>
<p><em>Pointer</em> - a method that could be used to point out different parts
of electronic documents. It is an abstract class which is intended to be
subclassed into more specific ones, and every other type of pointer <strong
class="keyword">must</strong> be a <code>ptr:Pointer</code> subclass.</p>
<p>This abstract class can not be used directly, one of the more specific
refinements contained in this document <strong class="keyword">must</strong> be
used instead.</p>
<h4 id="pointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a
href="#groupPointerProperty">ptr:groupPointer</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h3 id="pointersGroupClass">2.2 PointersGroup Class</h3>
<p><em>Pointers Group</em> - a generic container for a group of pointers
without any specific relationship between them.</p>
<h4 id="pointersGroupProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd><ul>
<li><code><a
href="#groupPointerProperty">ptr:groupPointer</a></code></li>
</ul>
</dd>
</dl>
<h4 id="pointersGroupClasses">Related Classes</h4>
<p>While the generic <code>PointersGroup</code> class can be used directly, one
of the following more specific refinements <strong
class="keyword">should</strong> be used instead to provide more information
about the existing relationship between the group members:</p>
<dl>
<dt><code><a href="#relatedPointersClass">ptr:RelatedPointers</a></code></dt>
<dd>A group of related pointers you use together for some purpose.</dd>
<dt><code><a
href="#equivalentPointersClass">ptr:EquivalentPointers</a></code></dt>
<dd>A group of pointers that point simultaneously to the same part of the
document.</dd>
</dl>
<h4 id="relatedPointersClass">2.2.1 RelatedPointers Class</h4>
<p><em>Related Pointers</em> - a group of pointers to be grouped
<strong>together</strong> for some purpose, indicating that the group members
(presumably pointing to different parts of the document) have some relationship
because they <strong>have a meaning as a whole</strong>. This is a subclass of
the <code>PointersGroup</code> class</p>
<h4 id="relatedPointersProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="relatedPointersExamples">Examples:</h4>
<div class="example">
<p><strong>Example 1:</strong> A group of related pointers.</p>
<pre>&lt;ptr:RelatedPointers rdf:about="#relatedGroup"&gt;
&lt;ptr:groupPointer rdf:resource="#relatedPointer1"/&gt;
&lt;ptr:groupPointer rdf:resource="#relatedPointer2"/&gt;
...
&lt;/ptr:RelatedPointers&gt;</pre>
</div>
<h4 id="equivalentPointersClass">2.2.2 EquivalentPointers Class</h4>
<p><em>Equivalent Pointers</em> - a group of pointers that point
<strong>simultaneously</strong> to the same part of the document, so that they
can be considered <strong>equivalent</strong>. Put another way, each pointer in
a set of pointers that are identified as equivalent must identify or pick out
the same piece of content. This is a subclass of the <code>PointersGroup</code>
class</p>
<p>In order to achieve the maximum level of flexibility and interoperability,
it is <strong class="keyword">recommended</strong> to provide as much
equivalent pointers as possible for any case.</p>
<h4 id="equivalentPointersProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="equivalentPointersExamples">Examples:</h4>
<div class="example">
<p><strong>Example 2:</strong> A series of equivalent pointers.</p>
<pre>&lt;ptr:EquivalentPointers rdf:about="#equivalentGroup"&gt;
&lt;ptr:groupPointer rdf:resource="#equivalentPointer1"/&gt;
&lt;ptr:groupPointer rdf:resource="#equivalentPointer2"/&gt;
&lt;ptr:groupPointer rdf:resource="#equivalentPointer3"/&gt;
...
&lt;/ptr:EquivalentPointers&gt;</pre>
</div>
<h3 id="singlePointerClass">2.3 SinglePointer Class</h3>
<p><em>Single Pointer</em> - a pointing method made up of a
<strong>unique</strong> pointer. This is an abstract single pointer that
provides the necessary framework, but it does not provide any kind of pointer,
so more specific subclasses <strong>must</strong> be used. </p>
<h4 id="singlePointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#referenceProperty">ptr:reference</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd><ul>
<li><code><a
href="#startPointerProperty">ptr:startPointer</a></code></li>
<li><code><a href="#endPointerProperty">ptr:endPointer</a></code></li>
</ul>
</dd>
</dl>
<h4 id="singlePointerClasses">Related Classes</h4>
<p>This vocabulary already provides several subclasses that refine the
<code>SinglePointer</code> class in relation to the way the pointer is
defined.</p>
<dl>
<dt><code><a
href="#expressionPointerClass">ptr:ExpressionPointer</a></code></dt>
<dd>A single pointer that makes use of expression languages to point out
parts of a document.</dd>
<dt><code><a href="#offsetPointerClass">ptr:OffsetPointer</a></code></dt>
<dd>A single pointer that points out parts of a document by means of an
offset number counting from the start of the reference.</dd>
<dt><code><a href="#lineCharPointerClass">ptr:LineCharPointer</a></code></dt>
<dd>A single pointer that points out a part of a document by means of the
line number and character position where it is located.</dd>
</dl>
<h4 id="expressionPointerClass">2.3.1 ExpressionPointer Class</h4>
<p><em>Expression Pointer</em> - a single pointer that makes use of expression
languages to point out parts of a document. This is a generic expression
pointer that could be subclassed for extensibility, more specific subclasses
<strong class="keyword">should</strong> be used where suitable.</p>
<h4 id="expressionPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#expressionProperty">ptr:expression</a></code></li>
<li><code><a href="#versionProperty">ptr:version</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="expressionPointerClasses">Related Classes</h4>
<p>This vocabulary already provides several subclasses of the
<code>ExpressionPointer</code> class depending on the language that is used to
define the pointer expression.</p>
<dl>
<dt><code><a href="#xPathPointerClass">ptr:XPathPointer</a></code></dt>
<dd>An expression pointer that makes use of XPath expressions to point out
parts of a document.</dd>
<dt><code><a
href="#cssSelectorPointerClass">ptr:CSSSelectorPointer</a></code></dt>
<dd>An expression pointer that points out different parts of a document by
means of CSS selectors.</dd>
</dl>
<h5 id="xPathPointerClass">2.3.1.1 XPathPointer Class</h5>
<p><em>XPath Pointer</em> - An expression pointer that makes use of XPath [<a
href="#ref-xpath">XPath</a>] expressions to point out parts of a document.</p>
<h4 id="xPathPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#namespaceProperty">ptr:namespace</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="xPathPointerClasses">Related Classes</h4>
<dl>
<dt><code><a
href="#namespaceMappingClass">ptr:NamespaceMapping</a></code></dt>
<dd>An XML Namespace.</dd>
<dt><code><a href="#xPointerPointerClass">ptr:XPointerPointer</a></code></dt>
<dd>An expression pointer that makes use of the XPointer Framework
expressions to point out parts of a document.</dd>
</dl>
<h4 id="xPathPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 3:</strong> An <code>XPathPointer</code> resource with
namespace reference.</p>
<pre>&lt;ptr:XPathPointer rdf:about="#xPathPointer"&gt;
&lt;ptr:version&gt;2.0&lt;/ptr:version&gt;
&lt;ptr:expression&gt;/html/body/div[@id='header']/img[1]&lt;/ptr:expression&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;ptr:namespace rdf:resource="#NamespaceMapping1"/&gt;
&lt;/ptr:XPathPointer&gt;</pre>
</div>
<h6 id="namespaceMappingClass">2.3.1.1.1 NamespaceMapping Class</h6>
<p><em>Namespace Mapping</em> - an XML namespace mapping as defined by [<a
href="#ref-namespaces">Namespaces</a>].</p>
<h4 id="namespaceMappingProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#prefixProperty">ptr:prefix</a></code></li>
<li><code><a
href="#namespaceNameProperty">ptr:namespaceName</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd><ul>
<li><code><a href="#namespaceProperty">ptr:namespace</a></code></li>
</ul>
</dd>
</dl>
<h4 id="namespaceMappingExamples">Examples:</h4>
<div class="example">
<p><strong>Example 4:</strong> A <code>NamespaceMapping</code> resource
indicating prefix and name.</p>
<pre>&lt;ptr:NamespaceMapping rdf:about="#NamespaceMapping1"&gt;
&lt;ptr:prefix&gt;eg&lt;/ptr:prefix&gt;
&lt;ptr:namespaceName&gt;http://example.org/ns/&lt;/ptr:namespaceName&gt;
&lt;/ptr:NamespaceMapping&gt;</pre>
</div>
<h6 id="xPointerPointerClass">2.3.1.1.2 XPointerPointer Class</h6>
<p><em>XPointer Pointer</em> - an expression pointer that makes use of
xpointer() scheme [<a href="#ref-xpointer-sch">XPointer-SCH</a>] expressions to
point out parts of a document.</p>
<h4 id="xPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="xPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 5:</strong> An <code>XPointerPointer</code> resource.</p>
<pre>&lt;ptr:XPointerPointer rdf:about="#xPointerPointer"&gt;
&lt;ptr:expression&gt;string-range(//P,"Thomas Pynchon")[3],"P",1,0)&lt;/ptr:expression&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;/ptr:XPointerPointer&gt;</pre>
</div>
<h5 id="cssSelectorPointerClass">2.3.1.2 CSSSelectorPointer Class</h5>
<p><em>CSS Selector Pointer</em> - an expression pointer that points out parts
of a document by means of a CSS expression.</p>
<h4 id="cssSelectorProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="cssSelectorExamples">Examples:</h4>
<div class="example">
<p><strong>Example 6:</strong> A <code>CSSSelector</code> resource with version
information.</p>
<pre>&lt;ptr:CSSSelectorPointer rdf:about="#cssSelectorPointer"&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;ptr:expression&gt;body &gt; p#important&lt;/ptr:expression&gt;
&lt;ptr:version&gt;2.1&lt;/ptr:version&gt;
&lt;/ptr:CSSSelectorPointer&gt;</pre>
</div>
<h4 id="offsetPointerClass">2.3.2 OffsetPointer Class</h4>
<p><em>Offset Pointer</em> - a single pointer that points out parts of a
document by means of an offset number counting from the start of the
reference.</p>
<h4 id="offsetPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#offsetProperty">ptr:offset</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="offsetPointerClasses">Related Classes</h4>
<p>While the generic <code>OffsetPointer</code> class can be used directly, one
of the following more specific refinements <strong
class="keyword">should</strong> be used instead to provide more information
about the type of offset that is being used.</p>
<dl>
<dt><code><a
href="#charOffsetPointerClass">ptr:CharOffsetPointer</a></code></dt>
<dd>A single pointer that points out parts of a document by means of a
character offset from the start of the reference.</dd>
<dt><code><a
href="#byteOffsetPointerClass">ptr:ByteOffsetPointer</a></code></dt>
<dd>A single pointer that points out parts of a document by means of a byte
offset from the start of the reference.</dd>
</dl>
<h5 id="charOffsetPointerClass">2.3.2.1 CharOffsetPointer Class</h5>
<p><em>Char Offset Pointer</em> - a single pointer that points out parts of a
document by means of a <strong>character offset</strong> from the start of the
reference.</p>
<h4 id="charOffsetProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="charOffsetExamples">Examples:</h4>
<div class="example">
<p><strong>Example 7:</strong> A <code>CharOffsetPointer</code> resource.</p>
<pre>&lt;ptr:CharOffsetPointer rdf:about="#charOffsetPointer"&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;ptr:offset&gt;335&lt;/ptr:offset&gt;
&lt;/ptr:CharOffsetPointer&gt;</pre>
</div>
<h5 id="byteOffsetPointerClass">2.3.2.2 ByteOffsetPointer Class</h5>
<p><em>Byte Offset Pointer</em> - a single pointer that points out parts of a
document by means of a <strong>byte offset</strong> from the start of the
reference.</p>
<h4 id="byteOffsetProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="byteOffsetExamples">Examples:</h4>
<div class="example">
<p><strong>Example 8:</strong> A <code>ByteOffsetPointer</code> resource.</p>
<pre>&lt;ptr:ByteOffsetPointer rdf:about="#byteOffsetPointer"&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;ptr:offset&gt;52&lt;/ptr:offset&gt;
&lt;/ptr:ByteOffsetPointer&gt;</pre>
</div>
<h4 id="lineCharPointerClass">2.3.3 LineCharPointer Class</h4>
<p><em>Line Char Pointer</em> - a single pointer that points out parts of a
document by means of the line number and character position where the target is
localized.</p>
<h4 id="lineCharProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#charNumberProperty">ptr:charNumber</a></code></li>
<li><code><a href="#lineNumberProperty">ptr:lineNumber</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="lineCharExamples">Examples:</h4>
<div class="example">
<p><strong>Example 9:</strong> A <code>LineCharPointer</code> resource.</p>
<pre>&lt;ptr:LineCharPointer rdf:about="#lineCharPointer"&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;ptr:lineNumber&gt;5&lt;/ptr:lineNumber&gt;
&lt;ptr:charNumber&gt;18&lt;/ptr:charNumber&gt;
&lt;/ptr:LineCharPointer&gt;</pre>
</div>
<h3 id="compoundPointerClass">2.4 CompoundPointer Class</h3>
<p><em>Compound Pointer</em> - a pointing method made up of <strong>a pair of
pointers</strong> that identify a well defined section within a document
delimited by a begin and an end.</p>
<p>This is an abstract compound pointer that provides the necessary framework,
but it does not constitute a complete compound pointer, as it only defines the
start point of the section. One of the more specific subclasses <strong
class="keyword">must</strong> be used instead.</p>
<h4 id="compoundPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a
href="#startPointerProperty">ptr:startPointer</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="compoundPointerClasses">Related Classes</h4>
<dl>
<dt><code><a href="#startEndPointerClass">ptr:StartEndPointer</a></code></dt>
<dd>A compound pointer that points out parts of a document by means of a
range delimited by a start point and an end point.</dd>
<dt><code><a
href="#charSnippetCompoundPointerClass">ptr:CharSnippetCompoundPointer</a></code></dt>
<dd>A compound pointer that points out parts of a document by means of a
range delimited by a starting point and a character snippet from that
starting point.</dd>
<dt><code><a
href="#charOffsetCompoundPointerClass">ptr:CharOffsetCompoundPointer</a></code></dt>
<dd>A compound pointer that points out parts of a document by means of a
range delimited by a starting point and a character offset from that
starting point.</dd>
<dt><code><a
href="#byteSnippetCompoundPointerClass">ptr:ByteSnippetCompoundPointer</a></code></dt>
<dd>A compound pointer that points out parts of a document by means of a
range delimited by a starting point and a byte snippet from that starting
point.</dd>
<dt><code><a
href="#byteOffsetCompoundPointerClass">ptr:ByteOffsetCompoundPointer</a></code></dt>
<dd>A compound pointer that points out parts of a document by means of a
range delimited by a starting point and a byte offset from that starting
point.</dd>
</dl>
<h4 id="startEndPointerClass">2.4.1 StartEndPointer Class</h4>
<p><em>Start End Pointer</em> - a compound pointer pointing out parts of a
document by means of a range delimited by a pair of single pointers that define
the start point and the end point.</p>
<h4 id="startEndPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#endPointerProperty">ptr:endPointer</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="startEndPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 10:</strong> A <code>StartEndPointer</code> resource making
use of the CharOffsetPointer from <a href="#charOffsetExamples">example 7</a>
and the LineCharPointer from <a href="#lineCharExamples">example 9</a>.</p>
<pre>&lt;ptr:StartEndPointer rdf:about="#startEndPointer"&gt;
&lt;ptr:startPointer rdf:resource="#lineCharPointer"/&gt;
&lt;ptr:endPointer rdf:resource="#charOffsetPointer"/&gt;
&lt;/ptr:StartEndPointer&gt;</pre>
</div>
<h4 id="charSnippetCompoundPointerClass">2.4.2 CharSnippetCompoundPointer
Class</h4>
<p><em>Char Snippet Compound Pointer</em> - a compound pointer pointing out
parts of a document by means of a range delimited by a single pointer that
defines the start point and a character snippet from there.</p>
<h4 id="charSnippetCompoundPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<p>Properties not defined by this document:</p>
<dl>
<dt><code><a
href="http://www.w3.org/TR/Content-in-RDF/#terms-properties-chars">cnt:chars
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
/></a></code></dt>
<dd>Character string representing the character sequence of the given
content.</dd>
</dl>
<h4 id="charSnippetCompoundPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 11:</strong> A <code>CharSnippetCompoundPointer</code>
resource.</p>
<pre>&lt;ptr:CharSnippetCompoundPointer rdf:about="#charSnippetCompoundPointer"&gt;
&lt;ptr:startPointer rdf:resource="#charOffsetPointer"/&gt;
&lt;cnt:chars&gt;&amp;lt;p&amp;gt;Some text.&amp;lt;/p&amp;gt;&lt;/cnt:chars&gt;
&lt;/ptr:CharSnippetCompoundPointer&gt;</pre>
</div>
<h4 id="charOffsetCompoundPointerClass">2.4.3 CharOffsetCompoundPointer
Class</h4>
<p><em>Char Offset Compound Pointer</em> - a compound pointer pointing out
parts of a document by means of a range delimited by a single pointer that
defines the start point and a character offset from there.</p>
<h4 id="charOffsetCompoundPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#charOffsetProperty">ptr:charOffset</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="charOffsetCompundPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 12:</strong> A <code>CharOffsetCompoundPointer</code>
resource.</p>
<pre>&lt;ptr:CharOffsetCompoundPointer rdf:about="#charOffsetCompoundPointer"&gt;
&lt;ptr:startPointer rdf:resource="#XPathPointer"/&gt;
&lt;ptr:charOffset&gt;55&lt;/ptr:charOffset&gt;
&lt;/ptr:CharOffsetCompoundPointer&gt;</pre>
</div>
<h4 id="byteSnippetCompoundPointerClass">2.4.4 ByteSnippetCompoundPointer
Class</h4>
<p><em>Byte Snippet Compound Pointer</em> - a compound pointer pointing out
parts of a document by means of a range delimited by a single pointer that
defines the start point and a byte snippet from there.</p>
<h4 id="byteSnippetCompoundPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd>none</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<p>Properties not defined by this document:</p>
<dl>
<dt><code><a
href="http://www.w3.org/TR/Content-in-RDF/#terms-properties-bytes">cnt:bytes
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
/></a></code></dt>
<dd>Character string representing the Base64 encoded byte sequence of the
given content.</dd>
</dl>
<h4 id="byteSnippetCompoundPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 13:</strong> A <code>ByteSnippetCompoundPointer</code>
resource.</p>
<pre>&lt;ptr:ByteSnippetCompoundPointer rdf:about="#byteSnippetCompoundPointer"&gt;
&lt;ptr:startPointer rdf:resource="#byteOffsetPointer"/&gt;
&lt;cnt:bytes&gt;R0lGODlhtQAxAOYAAKynpv3t4v3j1P/59ZuXlveYZ/vDovvMsfBbGWRiYf7+{...}&lt;/cnt:bytes&gt;
&lt;/ptr:ByteSnippetCompoundPointer&gt;</pre>
</div>
<h4 id="byteOffsetCompoundPointerClass">2.4.5 ByteOffsetCompoundPointer
Class</h4>
<p><em>Byte Offset Compound Pointer</em> - a compound pointer pointing out
parts of a document by means of a range delimited by a single pointer that
defines the start point and a byte offset from there.</p>
<h4 id="byteOffsetCompoundPointerProperties">Related Properties</h4>
<p>Properties defined by this document:</p>
<dl>
<dt>in domain of:</dt>
<dd><ul>
<li><code><a href="#byteOffsetProperty">ptr:byteOffset</a></code></li>
</ul>
</dd>
<dt>in range of:</dt>
<dd>none</dd>
</dl>
<h4 id="byteOffsetCompoundPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 14:</strong> A <code>ByteOffsetCompoundPointer</code>
resource.</p>
<pre>&lt;ptr:ByteOffsetCompoundPointer rdf:about="#byteOffsetCompoundPointer"&gt;
&lt;ptr:startPointer rdf:resource="#byteOffsetPointer"/&gt;
&lt;ptr:byteOffset&gt;255&lt;/ptr:byteOffset&gt;
&lt;/ptr:ByteOffsetCompoundPointer&gt;</pre>
</div>
<h2 id="properties">3. Properties</h2>
<h3 id="groupPointerProperty">3.1 groupPointer Property</h3>
<p>A reference to a specific pointer.</p>
<p>A <code>PointersGroup</code> will have one <code>groupPointer</code>
property per each of the pointers it contains. As any group of pointers <strong
class="keyword">must</strong> have one or more pointers, instances of the
<code>PointersGroup</code> class <strong class="keyword">must</strong> have at
least one instance of the <code>groupPointer</code> property.</p>
<dl>
<dt>Domain:</dt>
<dd><a href="#pointersGroupClass"><code>ptr:PointersGroup</code></a></dd>
<dt>Range:</dt>
<dd><a href="#pointerClass"><code>ptr:Pointer</code></a></dd>
</dl>
<h3 id="referenceProperty">3.2 reference Property</h3>
<p>The document within which the pointer is applicable or meaningful.</p>
<p>A <code>SinglePointer</code> <strong class="keyword">must</strong> have
exactly one <code>reference</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a href="#singlePointerClass"><code>ptr:SinglePointer</code></a></dd>
<dt>Range:</dt>
<dd>none</dd>
</dl>
<h3 id="expressionProperty">3.3 expression Property</h3>
<p>The language expression used as pointer.</p>
<p>An <code>ExpressionPointer</code> <strong class="keyword">must</strong> have
exactly one <code>expression</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#expressionPointerClass"><code>ptr:ExpressionPointer</code></a></dd>
<dt>Range:</dt>
<dd>Literal</dd>
</dl>
<h3 id="versionProperty">3.4 version Property</h3>
<p>The language version used in the pointer expression.</p>
<p>An <code>ExpressionPointer</code> <strong class="keyword">must</strong> have
at most one <code>version</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#expressionPointerClass"><code>ptr:ExpressionPointer</code></a></dd>
<dt>Range:</dt>
<dd>Literal</dd>
</dl>
<h3 id="namespaceProperty">3.5 namespace Property</h3>
<p>The namespace within an XPath expression operates.</p>
<dl>
<dt>Domain:</dt>
<dd><a href="#xPathPointerClass"><code>ptr:XPathPointer</code></a></dd>
<dt>Range:</dt>
<dd><a
href="#namespaceMappingClass"><code>ptr:NamespaceMapping</code></a></dd>
</dl>
<h3 id="prefixProperty">3.6 prefix Property</h3>
<p>Associates element and attribute names with a namespace URI.</p>
<p>An <code>NamespaceMapping</code> <strong class="keyword">must</strong> have
exactly one <code>prefix</code></p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#namespaceMappingClass"><code>ptr:NamespaceMapping</code></a></dd>
<dt>Range:</dt>
<dd>none</dd>
</dl>
<h3 id="namespaceNameProperty">3.7 namespaceName Property</h3>
<p>Identifies the namespace.</p>
<p>A <code>NamespaceMapping</code> <strong class="keyword">must</strong> have
exactly one <code>namespace</code></p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#namespaceMappingClass"><code>ptr:NamespaceMapping</code></a></dd>
<dt>Range:</dt>
<dd>none</dd>
</dl>
<h3 id="offsetProperty">3.8 offset Property</h3>
<p>The target position counting from the start of the referenced document. The
count will start at one in each document.</p>
<p>An <code>OffsetPointer</code> <strong class="keyword">must</strong> have
exactly one <code>offset</code></p>
<dl>
<dt>Domain:</dt>
<dd><a href="#offsetPointerClass"><code>ptr:OffsetPointer</code></a></dd>
<dt>Range:</dt>
<dd>Positive Integer</dd>
</dl>
<h3 id="lineNumberProperty">3.9 lineNumber Property</h3>
<p>The line number where the target is localized. The line count will start at
one in each document.</p>
<p>A <code>LineCharPointer</code> <strong class="keyword">must</strong> have
exactly one <code>lineNumber</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#lineCharPointerClass"><code>ptr:LineCharPointer</code></a></dd>
<dt>Range:</dt>
<dd>Positive Integer</dd>
</dl>
<h3 id="charNumberProperty">3.10 charNumber Property</h3>
<p>The character number where the target is localized within a line. The
character count will start at one in each line.</p>
<p>A <code>LineCharPointer</code> <strong class="keyword">must</strong> have at
most one <code>charNumber</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#lineCharPointerClass"><code>ptr:LineCharPointer</code></a></dd>
<dt>Range:</dt>
<dd>Positive Integer</dd>
</dl>
<h3 id="startPointerProperty">3.12 startPointer Property</h3>
<p>Reference to the pointer that defines the beginning point for a range.</p>
<p>A <code>CompoundPointer</code> <strong class="keyword">must</strong> have
exactly one <code>startPointer</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#compoundPointerClass"><code>ptr:CompoundPointer</code></a></dd>
<dt>Range:</dt>
<dd><a href="#singlePointerClass"><code>ptr:SinglePointer</code></a></dd>
</dl>
<h3 id="endPointerProperty">3.13 endPointer Property</h3>
<p>Reference to the pointer that defines the end point for a range.</p>
<p>A <code>StartEndPointer</code> <strong class="keyword">must</strong> have
exactly one <code>endPointer</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#startEndPointerClass"><code>ptr:StartEndPointer</code></a></dd>
<dt>Range:</dt>
<dd><a href="#singlePointerClass"><code>ptr:SinglePointer</code></a></dd>
</dl>
<h3 id="charOffsetProperty">3.14 charOffset Property</h3>
<p>The position of the end of a range from a <code>startPointer</code>,
expressed by the number of characters that conform the range, and being the
first character of the range that one indicated by the
<code>startPointer</code>.</p>
<p>A <code>CharOffsetCompoundPointer</code> <strong
class="keyword">must</strong> have exactly one <code>charOffset</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#charOffsetCompoundPointerClass"><code>ptr:CharOffsetCompoundPointer</code></a></dd>
<dt>Range:</dt>
<dd>Positive Integer</dd>
</dl>
<h3 id="byteOffsetProperty">3.15 byteOffset Property</h3>
<p>The position of the end of a range from a <code>startPointer</code>,
expressed by the number of bytes that conform the range, and being the first
byte of the range that one indicated by the <code>startPointer</code>.</p>
<p>A <code>ByteOffsetCompoundPointer</code> <strong
class="keyword">must</strong> have exactly one <code>byteOffset</code>.</p>
<dl>
<dt>Domain:</dt>
<dd><a
href="#byteOffsetCompoundPointerClass"><code>ptr:ByteOffsetCompoundPointer</code></a></dd>
<dt>Range:</dt>
<dd>Positive Integer</dd>
</dl>
<h2><a id="terms" name="terms">Appendix A: Vocabulary Terms</a></h2>
<p>The following terms are defined by this specification:</p>
<h3><a id="terms-classes" name="terms-classes">Classes</a></h3>
<table class="terms">
<caption>Classes in the Pointer Methods namespace</caption>
<thead>
<tr>
<th scope="col">Class name</th>
<th scope="col">Label</th>
<th scope="col">Suggested types</th>
<th scope="col">Required properties</th>
<th scope="col">Optional properties</th>
</tr>
</thead>
<tbody>
<tr id="terms-classes-ByteOffsetPointer">
<td scope="row"><code>ptr:ByteOffsetPointer</code></td>
<td>Byte Offset Pointer</td>
<td></td>
<td><a href="#terms-properties-offset"><code>ptr:offset</code></a>, <a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-ByteOffsetCompoundPointer">
<td scope="row"><code>ptr:ByteOffsetCompoundPointer</code></td>
<td>Byte Offset Compound Pointer</td>
<td></td>
<td><a
href="#terms-properties-byteOffset"><code>ptr:byteOffset</code></a>, <a
href="#terms-properties-startPointer"><code>ptr:startPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-ByteSnippetCompoundPointer">
<td scope="row"><code>ptr:ByteSnippetCompoundPointer</code></td>
<td>Byte Snippet Compound Pointer</td>
<td></td>
<td><a
href="http://www.w3.org/TR/Content-in-RDF/#terms-properties-bytes"><code>cnt:bytes</code>
<img src="http://www.w3.org/Icons/tr.png" alt="external link" /></a>,
<a
href="#terms-properties-startPointer"><code>ptr:startPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-CharOffsetPointer">
<td scope="row"><code>ptr:CharOffsetPointer</code></td>
<td>Char Offset Pointer</td>
<td></td>
<td><a href="#terms-properties-offset"><code>ptr:offset</code></a>, <a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-CharOffsetCompoundPointer">
<td scope="row"><code>ptr:CharOffsetCompoundPointer</code></td>
<td>Char Offset Compound Pointer</td>
<td></td>
<td><a
href="#terms-properties-charOffset"><code>ptr:charOffset</code></a>, <a
href="#terms-properties-startPointer"><code>ptr:startPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-CharSnippetCompoundPointer">
<td scope="row"><code>ptr:CharSnippetCompoundPointer</code></td>
<td>Char Snippet Compound Pointer</td>
<td></td>
<td><a
href="http://www.w3.org/TR/Content-in-RDF/#terms-properties-chars"><code>cnt:chars</code>
<img src="http://www.w3.org/Icons/tr.png" alt="external link" /></a>,
<a
href="#terms-properties-startPointer"><code>ptr:startPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-CSSSelectorPointer">
<td scope="row"><code>ptr:CSSSelectorPointer</code></td>
<td>CSS selector Pointer</td>
<td></td>
<td><a
href="#terms-properties-expression"><code>ptr:expression</code></a>, <a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td><a href="#terms-properties-version"><code>ptr:version</code></a></td>
</tr>
<tr id="terms-classes-EquivalentPointers">
<td scope="row"><code>ptr:EquivalentPointers</code></td>
<td>Equivalent Pointers</td>
<td></td>
<td><a
href="#terms-properties-groupPointer"><code>ptr:groupPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-ExpressionPointer">
<td scope="row"><code>ptr:ExpressionPointer</code></td>
<td>Expression Pointer</td>
<td><a
href="#terms-classes-CSSSelectorPointer">ptr:CSSSelectorPointer</a>, <a
href="#terms-classes-XPathPointer">ptr:XPathPointer</a>, <a
href="#terms-classes-XPointerPointer">ptr:XPointerPointer</a></td>
<td><a
href="#terms-properties-expression"><code>ptr:expression</code></a>, <a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td><a href="#terms-properties-version"><code>ptr:version</code></a></td>
</tr>
<tr id="terms-classes-LineCharPointer">
<td scope="row"><code>ptr:LineCharPointer</code></td>
<td>Line-Char Pointer</td>
<td></td>
<td><a
href="#terms-properties-lineNumber"><code>ptr:lineNumber</code></a>, <a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td><a
href="#terms-properties-charNumber"><code>ptr:charNumber</code></a></td>
</tr>
<tr id="terms-classes-namespaceMapping">
<td scope="row"><code>ptr:NamespaceMapping</code></td>
<td>NamespaceMapping</td>
<td></td>
<td><a
href="#terms-properties-namespaceURI"><code>ptr:namespaceURI</code></a>,
<a href="#terms-properties-prefix"><code>ptr:prefix</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-OffsetPointer">
<td scope="row"><code>ptr:OffsetPointer</code></td>
<td>Offset Pointer</td>
<td><a href="#terms-classes-ByteOffsetPointer">ptr:ByteOffsetPointer</a>,
<a
href="#terms-classes-CharOffsetPointer">ptr:CharOffsetPointer</a></td>
<td><a href="#terms-properties-offset"><code>ptr:offset</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-Pointer">
<td scope="row"><code>ptr:Pointer</code></td>
<td>Pointer</td>
<td><a href="#terms-classes-PointersGroup">ptr:PointersGroup</a>, <a
href="#terms-classes-CompoundPointer">ptr:CompoundPointer</a>, <a
href="#terms-classes-SinglePointer">ptr:SinglePointer</a></td>
<td></td>
<td></td>
</tr>
<tr id="terms-classes-PointersGroup">
<td scope="row"><code>ptr:PointersGroup</code></td>
<td>Pointers Group</td>
<td><a
href="#terms-classes-EquivalentPointers">ptr:EquivalentPointers</a>, <a
href="#terms-classes-RelatedPointers">ptr:RelatedPointers</a></td>
<td><a
href="#terms-properties-groupPointer"><code>ptr:groupPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-CompoundPointer">
<td scope="row"><code>ptr:CompoundPointer</code></td>
<td>Compound Pointer</td>
<td><a href="#terms-classes-StartEndPointer">ptr:StartEndPointer</a>, <a
href="#terms-classes-CharSnippetCompoundPointer">ptr:CharSnippetCompoundPointer</a>,
<a
href="#terms-classes-CharOffsetCompoundPointer">ptr:CharOffsetCompoundPointer</a>,
<a
href="#terms-classes-ByteSnippetCompoundPointer">ptr:ByteSnippetCompoundPointer</a>,
<a
href="#terms-classes-ByteOffsetCompoundPointer">ptr:ByteOffsetCompoundPointer</a></td>
<td><a
href="#terms-properties-startPointer"><code>ptr:startPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-RelatedPointers">
<td scope="row"><code>ptr:RelatedPointers</code></td>
<td>Related Pointers</td>
<td></td>
<td><a
href="#terms-properties-groupPointer"><code>ptr:groupPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-SinglePointer">
<td scope="row"><code>ptr:SinglePointer</code></td>
<td>Single Pointer</td>
<td><a href="#terms-classes-OffsetPointer">ptr:OffsetPointer</a>, <a
href="#terms-classes-ExpressionPointer">ptr:ExpressionPointer</a>, <a
href="#terms-classes-LineCharPointer">ptr:LineCharPointer</a>, </td>
<td><a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-StartEndPointer">
<td scope="row"><code>ptr:StartEndPointer</code></td>
<td>Start-End Pointer</td>
<td></td>
<td><a
href="#terms-properties-endPointer"><code>ptr:endPointer</code></a>, <a
href="#terms-properties-startPointer"><code>ptr:startPointer</code></a></td>
<td></td>
</tr>
<tr id="terms-classes-XPathPointer">
<td scope="row"><code>ptr:XPathPointer</code></td>
<td>XPath Pointer</td>
<td></td>
<td><a
href="#terms-properties-expression"><code>ptr:expression</code></a>, <a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td><a href="#terms-properties-namespace"><code>ptr:namespace</code></a>,
<a href="#terms-properties-version"><code>ptr:version</code></a></td>
</tr>
<tr id="terms-classes-XPointerPointer">
<td scope="row"><code>ptr:XPointerPointer</code></td>
<td>XPointer Pointer</td>
<td></td>
<td><a
href="#terms-properties-expression"><code>ptr:expression</code></a>, <a
href="#terms-properties-reference"><code>ptr:reference</code></a></td>
<td><a href="#terms-properties-namespace"><code>ptr:namespace</code></a>,
<a href="#terms-properties-version"><code>ptr:version</code></a></td>
</tr>
</tbody>
</table>
<h3><a id="terms-properties" name="terms-properties">Properties</a></h3>
<table class="terms">
<caption>Properties in the Pointers namespace</caption>
<thead>
<tr>
<th scope="col">Property name</th>
<th scope="col">Label</th>
<th scope="col">Domain</th>
<th scope="col">Range</th>
<th>Restriction</th>
</tr>
</thead>
<tbody>
<tr id="terms-properties-byteOffset">
<td scope="row"><code>ptr:byteOffset</code></td>
<td>byte offset</td>
<td><a
href="#terms-classes-ByteOffsetCompoundPointer"><code>ptr:ByteOffsetCompoundPointer</code></a></td>
<td><a
href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#positiveInteger">Positive
Integer</a></td>
<td>Exactly one per <code>ptr:ByteOffsetCompoundPointer</code></td>
</tr>
<tr id="terms-properties-charNumber">
<td scope="row"><code>ptr:charNumber</code></td>
<td>char number</td>
<td><a
href="#terms-classes-LineCharPointer"><code>ptr:LineCharPointer</code></a></td>
<td><a
href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#positiveInteger">Positive
Integer</a></td>
<td>At most one per <code>ptr:LineCharPointer</code></td>
</tr>
<tr id="terms-properties-charOffset">
<td scope="row"><code>ptr:charOffset</code></td>
<td>char offset</td>
<td><a
href="#terms-classes-CharOffsetCompoundPointer"><code>ptr:CharOffsetCompoundPointer</code></a></td>
<td><a
href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#positiveInteger">Positive
Integer</a></td>
<td>Exactly one per <code>ptr:CharOffsetCompoundPointer</code></td>
</tr>
<tr id="terms-properties-endPointer">
<td scope="row"><code>ptr:endPointer</code></td>
<td>end pointer</td>
<td><a
href="#terms-classes-StartEndPointer"><code>ptr:StartEndPointer</code></a></td>
<td><a
href="#terms-classes-SinglePointer"><code>ptr:SinglePointer</code></a></td>
<td>Exactly one per <code>ptr:StartEndPointer</code></td>
</tr>
<tr id="terms-properties-expression">
<td scope="row"><code>ptr:expression</code></td>
<td>expression</td>
<td><a
href="#terms-classes-ExpressionPointer"><code>ptr:ExpressionPointer</code></a></td>
<td>Literal</td>
<td>Exactly one per <code>ptr:ExpressionPointer</code></td>
</tr>
<tr id="terms-properties-lineNumber">
<td scope="row"><code>ptr:lineNumber</code></td>
<td>line number</td>
<td><a
href="#terms-classes-LineCharPointer"><code>ptr:LineCharPointer</code></a></td>
<td><a
href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#positiveInteger">Positive
Integer</a></td>
<td>Exactly one per <code>ptr:LineCharPointer</code></td>
</tr>
<tr id="terms-properties-namespace">
<td scope="row"><code>ptr:namespace</code></td>
<td>namespace</td>
<td><a
href="#terms-classes-XPathPointer"><code>ptr:XPathPointer</code></a></td>
<td><a
href="#terms-classes-namespaceMapping"><code>ptr:namespaceMapping</code></a></td>
<td></td>
</tr>
<tr id="terms-properties-namespaceURI">
<td scope="row"><code>ptr:namespaceURI</code></td>
<td>namespace URI</td>
<td><a
href="#terms-classes-namespaceMapping"><code>ptr:NamespaceMapping</code></a></td>
<td></td>
<td>Exactly one per <code>ptr:NamespaceMapping</code></td>
</tr>
<tr id="terms-properties-offset">
<td scope="row"><code>ptr:offset</code></td>
<td>offset</td>
<td><a
href="#terms-classes-OffsetPointer"><code>ptr:OffsetPointer</code></a></td>
<td><a
href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#positiveInteger">Positive
Integer</a></td>
<td>Exactly one per <code>ptr:OffsetPointer</code> and
<code>ptr:StartOffsetPointer</code></td>
</tr>
<tr id="terms-properties-groupPointer">
<td scope="row"><code>ptr:groupPointer</code></td>
<td>group pointer</td>
<td><a
href="#terms-classes-PointersGroup"><code>ptr:PointersGroup</code></a></td>
<td><a href="#terms-classes-Pointer"><code>ptr:Pointer</code></a></td>
<td>At least one per <code>ptr:PointerGroup</code></td>
</tr>
<tr id="terms-properties-prefix">
<td scope="row"><code>ptr:prefix</code></td>
<td>prefix</td>
<td><a
href="#terms-classes-namespaceMapping"><code>ptr:NamespaceMapping</code></a></td>
<td>Literal</td>
<td>Exactly one per <code>ptr:NamespaceMapping</code></td>
</tr>
<tr id="terms-properties-reference">
<td scope="row"><code>ptr:reference</code></td>
<td>reference</td>
<td><a
href="#terms-classes-SinglePointer"><code>ptr:SinglePointer</code></a></td>
<td></td>
<td>Exactly one per <code>ptr:SinglePointer</code></td>
</tr>
<tr id="terms-properties-startPointer">
<td scope="row"><code>ptr:startPointer</code></td>
<td>start pointer</td>
<td><a
href="#terms-classes-CompoundPointer"><code>ptr:CompoundPointer</code></a></td>
<td><a
href="#terms-classes-SinglePointer"><code>ptr:SinglePointer</code></a></td>
<td>Exactly one per <code>ptr:CompoundPointer</code></td>
</tr>
<tr id="terms-properties-version">
<td scope="row"><code>ptr:version</code></td>
<td>version</td>
<td><a
href="#terms-classes-ExpressionPointer"><code>ptr:ExpressionPointer</code></a></td>
<td>Literal</td>
<td>At most one per <code>ptr:ExpressionPointer</code></td>
</tr>
</tbody>
</table>
<h2><a id="references" name="references">Appendix B: References</a></h2>
<dl>
<dt><a name="ref-content" id="ref-content">[Content]</a></dt>
<dd><a href="http://www.w3.org/TR/Content-in-RDF10/">Representing Content
in RDF</a><br />
<code>http://www.w3.org/TR/Content-in-RDF10/</code></dd>
<dt><a name="ref-earl" id="ref-earl">[EARL]</a></dt>
<dd><a href="http://www.w3.org/TR/EARL10-Schema/">Evaluation and Report
Language (EARL) 1.0 Schema</a><br />
<code>http://www.w3.org/TR/EARL10-Schema/</code></dd>
<dt><a name="ref-namespaces" id="ref-namespaces">[Namespaces]</a></dt>
<dd><a href="http://www.w3.org/TR/xml-names11/">Namespaces in XML 1.1
(Second Edition)</a> - W3C Recommendation, 16 August 2006. T. Bray, D.
Hollander, A. Layman, R. Tobin eds.<br />
<code>http://www.w3.org/TR/2006/REC-xml-names11-20060816</code></dd>
<dt><a name="ref-rdf" id="ref-rdf">[RDF]</a></dt>
<dd><a
href="http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/">RDF/XML
Syntax Specification (Revised)</a> - W3C Recommendation, 10 February
2004. D. Beckett ed.<br />
<code>http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/</code></dd>
<dt><a name="ref-rdf-primer" id="ref-rdf-primer">[RDF-PRIMER]</a></dt>
<dd><a href="http://www.w3.org/TR/rdf-primer/">RDF Primer</a> - W3C
Recommendation, 10 February 2004. F. Manola, E.Miller eds.<br />
<code>http://www.w3.org/TR/rdf-primer/</code></dd>
<dt><a name="ref-rdfs" id="ref-rdfs">[<acronym
title="Resource Description Framework Schema">RDFS</acronym>]</a></dt>
<dd><a href="http://www.w3.org/TR/rdf-schema/">RDF Vocabulary Description
Language 1.0: RDF Schema</a> - W3C Recommendation, 10 February 2004. D.
Brickley, R.V. Guha eds.<br />
<code>http://www.w3.org/TR/rdf-schema/</code></dd>
<dt><a name="ref-rdf-xml-diffs"
id="ref-rdf-xml-diffs">[RDF-XML-DIFFS]</a></dt>
<dd><a href="http://www.w3.org/DesignIssues/RDF-XML">Why RDF model is
different from the XML model</a> - Paper, September 1998. T.
Berners-Lee.<br />
<code>http://www.w3.org/DesignIssues/RDF-XML</code></dd>
<dt><a name="ref-rfc2119" id="ref-rfc2119">[<acronym
title="Request For Comments">RFC</acronym> 2119]</a></dt>
<dd><a href="http://www.ietf.org/rfc/rfc2119.txt">Key words for use in RFCs
to Indicate Requirement Levels</a> - <acronym
title="Internet Engineering Task Force">IETF</acronym> RFC, March
1997.<br />
<code>http://www.ietf.org/rfc/rfc2119.txt</code></dd>
<dt><a id="ref-xml" name="ref-xml">[XML]</a></dt>
<dd><a href="http://www.w3.org/TR/xml/">Extensible Markup Language (XML)
1.0 (Fourth Edition)</a>. W3C Recommendation 16 August 2006, edited in
place 29 September 2006. T. Bray, J. Paoli, C.M. Sperberg-McQueen, E.
Maler, F. Yergeau eds.<br />
<code>http://www.w3.org/TR/xml/</code></dd>
<dt><a id="ref-xpath" name="ref-xpath">[XPath]</a></dt>
<dd><a href="http://www.w3.org/TR/1999/REC-xpath-19991116">XML Path
Language (XPath) 1.0</a>. W3C Recommendation 16 November 1999. J. Clark,
S. DeRose eds.<br />
<code>http://www.w3.org/TR/1999/REC-xpath-19991116</code></dd>
<dt><a id="ref-xpointer-sch" name="ref-xpointer-sch">[<acronym
title="XML Pointer Language scheme">XPointer-SCH</acronym>]</a></dt>
<dd><a href="http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219/">XPointer
xpointer() scheme</a>. W3C Working Draft 19 December 2002. S. DeRose, E.
Maler, R. Daniel eds.<br />
<code>http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219/</code></dd>
</dl>
<h2><a name="contributors" id="contributors">Appendix C: Contributors</a></h2>
<p>Contributors to this Working Draft: Shadi Abou-Zahra, Sandor Herramhof,
Carlos Iglesias, Nick Kew, Johannes Koch, Jim Ley, Charles McCathieNevile,
Chris Ridpath, Christophe Strobbe, Michael Squillace and Carlos Velasco.</p>
<h2><a name="changes" id="changes">Appendix D: Document Changes</a></h2>
<p>There are only editorial changes and references updates since <a
href="http://www.w3.org/TR/2009/WD-Pointers-in-RDF10-20091029/">29 October,
2009 Working Draft</a></p>
</body>
</html>