Abstract

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 Evaluation And Report Language
(EARL) but can be reused in other contexts too.

Status of this Document

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 W3C technical reports index at https://www.w3.org/TR/.

Pointer Methods in RDF 1.0 is a supporting document for the Evaluation and Report Language (EARL) 1.0 Schema but can be used in other contexts too. It is considered to be complete and mature but at this time there are not sufficient implementations to finalize this work.

Publication as a Working Group Note 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.

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.

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.

The namespace for Pointer Methods in RDF as specified in this draft is
http://www.w3.org/2009/pointers# and uses the ptr
prefix. Other namespaces typically used by Pointer Methods in RDF include the
following:

cnt

The Representing Content in RDF namespace
http://www.w3.org/2011/content# described in [Content]

rdf

The RDF namespace
http://www.w3.org/1999/02/22-rdf-syntax-ns# described in [RDF]

rdfs

The RDF Schema namespace
http://www.w3.org/2000/01/rdf-schema# described in [RDFS]

One motivation for this vocabulary stems from methods for reporting test
results such as the Evaluation and Report Language (EARL) [EARL] but this need not be its only application. Other
typical applications could include:

Applications dealing with retrieving content and then storing that
content in an alternative format

Applications dealing with the testing and/or repairing of content

Content-authoring tools that would aid authors in finding problematic or
incomplete portions of the content being created or edited

Aggregation, comparison, or synopsis of the results of applications, such
as the aggregation, comparison, or synopsis of test results or
reparations

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.

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 machine-understandable. The examples will
be serialized with the abbreviated RDF/XML notation.

2. Classes

2.1 Pointer Class

Pointer - 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 must be a ptr:Pointer subclass.

This abstract class can not be used directly, one of the more specific
refinements contained in this document must be
used instead.

Related Properties

Related Classes

While the generic PointersGroup class can be used directly, one
of the following more specific refinements should be used instead to provide more information
about the existing relationship between the group members:

A group of pointers that point simultaneously to the same part of the
document.

2.2.1 RelatedPointers Class

Related Pointers - a group of pointers to be grouped
together for some purpose, indicating that the group members
(presumably pointing to different parts of the document) have some relationship
because they have a meaning as a whole. This is a subclass of
the PointersGroup class

2.2.2 EquivalentPointers Class

Equivalent Pointers - a group of pointers that point
simultaneously to the same part of the document, so that they
can be considered equivalent. 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 PointersGroup
class

In order to achieve the maximum level of flexibility and interoperability,
it is recommended to provide as much
equivalent pointers as possible for any case.

2.3 SinglePointer Class

Single Pointer - a pointing method made up of a
unique 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 must be used.

A single pointer that points out a part of a document by means of the
line number and character position where it is located.

2.3.1 ExpressionPointer Class

Expression Pointer - 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
should be used where suitable.

Related Properties

Related Classes

While the generic OffsetPointer class can be used directly, one
of the following more specific refinements should be used instead to provide more information
about the type of offset that is being used.

2.4 CompoundPointer Class

Compound Pointer - a pointing method made up of a pair of
pointers that identify a well defined section within a document
delimited by a begin and an end.

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 must be used instead.

3. Properties

3.1 groupPointer Property

A reference to a specific pointer.

A PointersGroup will have one groupPointer
property per each of the pointers it contains. As any group of pointers must have one or more pointers, instances of the
PointersGroup class must have at
least one instance of the groupPointer property.