Pointer Methods in RDF update (DRAFT)

Table of Contents


1. Class Model Overview

Relations between classes and subclasses.

Pointers Classes Model

2. Pointers

2.1. Pointer Class

Generic pointer. It could be subclassed for extensibility.

ptr:Pointer

2.2 PointerGroup Class

Generic group of Pointers. Superseeds the PointerCollection class.

No more need of dedicated properties for each class of Pointer

ptr:PointerGroup (rdfs:subClassOf ptr:Pointer)
    ptr:pointer (rfds:range ptr:Pointer)

2.2.1 RelatedPointers Class

Group of related pointers you use together for some purpose (pointers that point to different "things" at different places, but that have some relationship. They have a meaning as a group)

ptr:RelatedPointers (rdfs:subClassOf ptr:PointerGroup)

2.2.2 EquivalentPointers Class

Group of equivalent pointers (pointers that point to the same "thing" at the same place)

ptr:EquivalentPointers (rdfs:subClassOf ptr:PointerGroup)

2.3 SinglePointer Class

Generic single pointer. It could be subclassed for extensibility.

Pointers that point to a single "thing".

prt:SinglePointer (rdfs:subClassOf ptr:Pointer)
    // the scope within which the pointer operates
    ptr:reference (rdfs:range rdf:Resource)

2.3.1 XPathPointer Class

We have a new brand XPath version (2.0).

Apparently it may be a superset of version 1.0, and so is backwards compatible, but we need to check to be sure. A new ptr:version or similar property may be necessary.

ptr:XPathPointer (rdfs:subClassOf ptr:SinglePointer)
    // XPath expression
    ptr:expression
    // point to a Namespace class as defined in the current draft (2.4.1)
    ptr:namespace

2.3.2 XPointerPointer Class

It is not clear how to handle namespaces

(Ref. from the spec: http://www.w3.org/TR/2003/REC-xptr-framework-20030325/#nsContext)

ptr:XPointerPointer (rdfs:subClassOf ptr:SinglePointer)
    // XPointer expression
    ptr:expression    

2.3.3 LineCharPointer Class

Need to finally define the start values for counting: zero or one (and probably coordinate to use the same criterion for the rest of values, (e.g. charOffset, byteOffset...).

There is some preference for starting at one from the TSD TF.

(Ref: http://lists.w3.org/Archives/Public/public-wai-ert-tsdtf/2006Sep/0008.html)

Decide between rename the current properties as ptr:lineNumber and ptr:charNumber, or just clarify in the text of the document

ptr:LineCharPointer (rdfs:subClassOf ptr:SinglePointer)
    // line number within reference
    ptr:line or ptr:lineNumber (rdfs:range rdf:Literal)
    // character number within line given by ptr:line
    ptr:char or ptr:charNumber (rdfs:range rdf:Literal)

2.3.4 CharOffsetPointer Class

Need to define the start value for the offset: zero or one.

Could this one and the following be merged into a single OffsetPointer Class?

ptr:CharOffsetPointer (rdfs:subClassOf ptr:SinglePointer)
    // number of characters from the start of the reference
    ptr:charOffset (rdfs:range rdf:Literal)

2.3.5 ByteOffsetPointer Class

Need to define the start value for the offset: zero or one.

Could this one and the previous be merged into a single OffsetPointer Class?

ptr:ByteOffsetPointer (rdfs:subClassOf ptr:SinglePointer)
    // number of bytes from the start of the reference
    ptr:byteOffset (rdfs:range rdf:Literal)

2.3.6 CSSSelectorPointer Class

Need to define if they are applicable to HTML, CSS or both.

Note that there may be certain level of ambiguity using this selector with HTML (multiple selections with one rule, e.g. H2) or CSS (multiple rules with the same repetition of selectors). We should avoid this ambiguity if we want to use them as single selectors.

We could avoid CSS ambiguity using a rule number (e.g. ptr:ruleNumber optional property: the 1st if omitted). Any idea for HTML?

Need to distinguish between selectors from different CSS versions with a ptr:version? (CSS1, CSS2, CSS2.1, CSS3)

ptr:CSSSelectorPointer (rdfs:subClassOf ptr:SinglePointer)
    // CSS selector
    ptr:selector

2.3.7 HTMLPointer Class

A sort of "fuzzy" pointer specially intended for not well-formed (x)html. We don't have a formal definition for this yet.

There were several discussions before but not definitive conclusions until now:

Need to go on with one of the following:

ptr:HTMLPointer (rdfs:subClassOf ptr:SinglePointer)
    // HtmlPointer expression
    ptr:expression

2.4 CompoundPointer Class

Pointer to a range.

Generic Compound Pointer. It could be subclassed for extensibility.

The start point is defined here; the end will depend on the kind of Pointer

ptr:CompoundPointer (rdfs:subClassOf ptr:Pointer)
    // pointer to the start of the range 
    ptr:startPointer (rdfs:range ptr:SinglePointer)

2.4.1 RangePointer Class

ptr:RangePointer (rdfs:subClassOf ptr:CompoundPointer)
    // inherits ptr:startPointer
    // pointer to the end of the range
    ptr:endPointer (rdfs:range ptr:SinglePointer)

2.4.2 CharSnippetRangePointer Class

The first character in the snippet will be defined by the inherited startPointer.

It includes the snippet itself.

ptr:CharSnippetPointer (rdfs:subClassOf ptr:CompoundPointer)
    ptr:charSnippet (rdfs:range rdf:Literal)

2.4.3 CharOffsetRangePointer Class

Need to define the start value for the offset: zero or one.

Could the CharOffsetPointer single Pointer be used here instead of a Literal?

ptr:CharOffsetRangePointer (rdfs:subClassOf ptr:CompoundPointer)
    // number of characters from the inherited ptr:startPointer
    ptr:charOffset (rdfs:range rdf:Literal)

2.4.4 ByteSnippetRangePointer Class

The fist byte in the snippet will be defined by the inherited startPointer.

It includes the snippet itself.

ptr:ByteSnippetPointer (rdfs:subClassOf ptr:CompoundPointer)
    ptr:byteSnippet (rdfs:range rdf:Literal)

2.4.5 ByteOffsetRangePointer Class

Need to define the start value for the offset: zero or one.

Could the CharOffsetPointer single Pointer be used here instead of a Literal?

ptr:ByteOffsetRangePointer (rdfs:subClassOf ptr:CompoundPointer)
    // number of bytes from the inherited ptr:startPointer
    ptr:byteOffset (rdfs:range rdf:Literal)