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.
 
 
 
 
 
 

1210 lines
64 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
<title>Pointer Methods in RDF</title>
<style type="text/css">
.example {
margin: 1em 2em 1em 2em;
color: #000;
background-color: #fff;
padding: 0.5em;
border: 1px dotted #e63232;
}
.keyword {
font-weight: bold;
font-style: italic;
}
pre {
border: 1px dotted #000;
color: #000;
background-color: #f4f3e7;
font-size: 110%;
}
table {
margin: 1ex 2%;
border: solid 1px #000;
border-collapse: collapse;
}
thead, tfoot, tbody, tr {
margin: 0;
padding: 0;
}
th, td {
margin: 0;
padding: 0.2em 1em;
border: solid 1px #000;
vertical-align: top;
}
th ul, td ul {
margin-top: 0;
margin-bottom: 0;
padding-top: 0;
padding-bottom: 0;
}
abbr, acronym {
font-weight: inherit;
font-style: normal;
border-bottom-width: 1px;
border-bottom-style: dotted;
border-bottom-color: inherit;
}
</style>
<link href="http://www.w3.org/StyleSheets/TR/base" rel="stylesheet" type="text/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></a></h1>
<h2><a id="w3c-doctype" name="w3c-doctype"><acronym title="World Wide Web Consortium">W3C</acronym> Working Draft 10 March 2009</a></h2>
<dl>
<dt>This version:</dt>
<dd><a href="http://www.w3.org/TR/2009/WD-Pointers-in-RDF-20090310">http://www.w3.org/TR/2009/WD-Pointers-in-RDF-20090310</a></dd>
<dt>Latest version:</dt>
<dd><a href="http://www.w3.org/TR/Pointers-in-RDF/">http://www.w3.org/TR/Pointers-in-RDF/</a></dd>
<dt>Editors:</dt>
<dd>Carlos Iglesias, Fundaci&oacute;n <acronym title="Centro Tecnol&oacute;gico de la Informaci&oacute;n y la Comunicaci&oacute;n">CTIC</acronym></dd>
<dd>Mike Squillace, IBM Corporation</dd>
</dl>
<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &#169; 2009 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>&#174;</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
</div>
<hr/>
<div id="abs">
<h2><a id="abstract" name="abstract">Abstract</a></h2>
<p>Access to the World Wide Web has meant access to many types of content, including text, documents in a variety of formats such as the Open Document Format (ODF) or Portable Document Format (PDF), audio or video clips, and, of course, Web content. Web content (e.g. XML, XHTML, and HTML documents), like many types of content, usually has a structure that allows identifying portions of the document in many ways.</p>
<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 will also describe 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.</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>The intent of this First Public Working Draft of this specification is to introduce the Pointer Methods in RDF vocabulary, a collection of classes and properties that can be used to identify portions or segments of content, especially Web content. Keep in mind that this specification is part of a larger suite of the <a href="http://www.w3.org/WAI/intro/earl.php">Evaluation and Report Language (EARL)</a> produced and maintained by the <a href="http://www.w3.org/WAI/ER/">Evaluation and Repair Tools Working Group (ERT WG)</a>, but that it is meant to be consumable as an independent vocabulary. Feedback from the groups involved in the W3C Semantic Web Activity, especially the Semantic Web Coordination Group, the Semantic Web Deployment Working Group, the Semantic Web Interest Group, and the POWDER Working Group, would be greatly appreciated. ERT WG does not expect this document to become a W3C Recommendation.</p>
<p>Besides the issues described in the editor's notes throughout this document, the group would apreciate feedback on:</p>
<ul>
<li>The extent to which this draft follows best practices for the description and publication of new vocabularies</li>
<li>The practicality of the use cases suggested in section 1.3 as well as other possible use cases not listed</li>
<li>Other pointer methods not discussed by this document</li>
</ul>
<p>Please send comments to the <a href="mailto:public-wai-ert@w3.org">mailing list</a> of the ERT WG <strong>before 7 April 2009</strong>. The <a href="http://lists.w3.org/Archives/Public/public-wai-ert/">archives for this list</a> are publicly available.</p>
<p>This is a First Public Working Draft of the Pointers Methods in RDF. 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 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>
<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"><acronym title="Web Accessibility Initiative">WAI</acronym> Technical Activity</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="#xmlNamespaceClass">2.3.1.1.1 XMLNamespace 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>
</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>
<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/2008/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 storeing 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 repairations</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 simoultaneously to the same part of the document.</dd>
</dl>
<h4 id="pointersGroupExamples">Examples:</h4>
<div class="example">
<p><strong>Example 1:</strong> A series of pointers grouped using a <code>PointersGroup</code> resource.</p>
<pre>&lt;ptr:PointersGroup rdf:about="#group"&gt;
&lt;ptr:groupPointer rdf:resource="#pointer1"/&gt;
&lt;ptr:groupPointer rdf:resource="#pointer2"/&gt;
...
&lt;/ptr:PointersGroup&gt;</pre>
</div>
<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 2:</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>Equivalent Pointers - a group of pointers that point <strong>simoultaneously</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 3:</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="singlePointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 4:</strong> A <code>SinglePointer</code> resource.</p>
<pre>&lt;ptr:SinglePointer rdf:about="#singlePointer"&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;/ptr:SinglePointer&gt;</pre>
</div>
<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>
<h4 id="expressionPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 5:</strong> an <code>ExpressionPointer</code> resource with version information.</p>
<pre>&lt;ptr:ExpressionPointer rdf:about="#expressionPointer"&gt;
&lt;ptr:expression&gt;some expression&lt;/ptr:expression&gt;
&lt;ptr:version&gt;x.y&lt;/ptr:version&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;/ptr:ExpressionPointer&gt;</pre>
</div>
<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="#xmlNamespaceClass">ptr:XMLNamespace</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 6:</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="#xmlNamespace1"/&gt;
&lt;/ptr:XPathPointer&gt;</pre>
</div>
<h6 id="xmlNamespaceClass">2.3.1.1.1 XMLNamespace Class</h6>
<p><em>XML Namespace</em> - a namespace as defined by [<a href="#ref-namespaces">Namespaces</a>].</p>
<h4 id="xmlNamespaceProperties">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="xmlNamespaceExamples">Examples:</h4>
<div class="example">
<p><strong>Example 7:</strong> An <code>XMLNamespace</code> resource indicating prefix and name.</p>
<pre>&lt;ptr:XMLNamespace rdf:about="#XMLnamespace1"&gt;
&lt;ptr:prefix&gt;eg&lt;/ptr:prefix&gt;
&lt;ptr:namespaceName&gt;http://example.org/ns/&lt;/ptr:namespaceName&gt;
&lt;/ptr:XMLNamespace&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 8:</strong> A <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 9:</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>
<h4 id="offsetPointerExamples">Examples:</h4>
<div class="example">
<p><strong>Example 2.10:</strong> An <code>OffsetPointer</code> resource.</p>
<pre>&lt;ptr:OffsetPointer rdf:about="#offsetPointer"&gt;
&lt;ptr:reference rdf:resource="http://example.org/doc1.html"/&gt;
&lt;ptr:offset&gt;33&lt;/ptr:offset&gt;
&lt;/ptr:OffsetPointer&gt;</pre>
</div>
<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 2.11:</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 2.12:</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 2.13:</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 2.14:</strong> A <code>StartEndPointer</code> resource.</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 2.15:</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 2.16:</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 2.17:</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 2.18:</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="#xmlNamespaceClass"><code>ptr:XMLNamespace</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>XMLNamespace</code> <strong class="keyword">must</strong> have exactly one <code>prefix</code></p>
<dl>
<dt>Domain:</dt>
<dd><a href="#xmlNamespaceClass"><code>ptr:XMLNamespace</code></a></dd>
<dt>Range:</dt>
<dd>none</dd>
</dl>
<h3 id="namespaceNameProperty">3.7 namespaceName Property</h3>
<p>Identifies the namespace.</p>
<p>An <code>XMLNamespace</code> <strong class="keyword">must</strong> have exactly one <code>namespace</code></p>
<dl>
<dt>Domain:</dt>
<dd><a href="#xmlNamespaceClass"><code>ptr:XMLNamespace</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-xmlNamespace">
<td scope="row"><code>ptr:XMLNamespace</code></td>
<td>XMLNamespace</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>char 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-xmlNamespace"><code>ptr:XMLNamespace</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-xmlNamespace"><code>ptr:XMLNamespace</code></a></td>
<td></td>
<td>Exactly one per <code>ptr:XMLNamespace</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-xmlNamespace"><code>ptr:XMLNamespace</code></a></td>
<td>Literal</td>
<td>Exactly one per <code>ptr:XMLNamespace</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/WAI/ER/Content/WD-Content-in-RDF-20080327">Representing Content in RDF</a> - W3C Working Draft, 27 March 2008. J. Koch, C.A. Velasco eds.<br /><code>http://www.w3.org/WAI/ER/Content/WD-Content-in-RDF-20080327</code></dd>
<dt><a name="ref-earl" id="ref-earl">[EARL]</a></dt>
<dd><a href="http://www.w3.org/TR/2007/WD-EARL10-Schema-20070323/">Evaluation and Report Language (EARL) 1.0 Schema</a> - W3C Working Draft, 23 March 2007. S. Abou-Zahra ed.<br /><code>http://www.w3.org/TR/2007/WD-EARL10-Schema-20070323/</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>
</body>
</html>