Re: Proposal for earl:Location

Hi,
With regard to Carlos' thoughts in yesterday's telecon, I 
think deciding whether two errors are the same, e.g. in two 
earl reports from two different tools, can be a problem.

Not dependent on the error classes (simple, etc.) shadi
defined, but the way the errors can be referenced. If one 
tool references via structure independend method (id) and
the another tool other ways (xpath), there is no way for a 
third application to decide if two errors refer to the same 
instance or not. 

(I'm not sure if this is what Carlos meant, but if, I agree
that this could be a substantial problem)

Could a solution be to call developers to provide redundant
information?

Regards,
Sandor

>>> Shadi Abou-Zahra <shadi@w3.org> 03.10.2005 16:00:42 >>>

Hi,

The following is a rough proposal for the location class. A location
can be one of four types:


Single Location
 - one "pointer" using all means we have
(XPath/XPointer/XQuery/Line/Offset/etc) to point to one instance of a
location within a subject.

Range Location
 - has two types of "pointers" for start and end (each "pointer" is
actually a single location).

Shadow Location
 - same as "range" but with primary/additional "pointers" (that are
also single location types).

Compound Location
 - any other unstructured location with one or more "pointers" (single
location).


Below is the schema for the location (please note that many details are
still to be determined):


<rdfs:Class rdf:about="&earl;Location">
  <rdfs:label xml:lang="en">Location</rdfs:label>
  <rdfs:comment xml:lang="en">Location for the result within the
subject</rdfs:comment>
  <owl:oneOf rdf:parseType="Collection">
    <!--// this is the basic type of location //-->
    <owl:Thing rdf:about="&earl;singleLocation"/>
    <!--// the following are more complex types //-->
    <owl:Thing rdf:about="&earl;rangeLocation"/>
    <owl:Thing rdf:about="&earl;shadowLocation"/>
    <owl:Thing rdf:about="&earl;compoundLocation"/>
    <!--// other types can be added if needed //-->
  </owl:oneOf>
</rdfs:Class>

<rdfs:Class rdf:about="&earl;singleLocation">
  <rdfs:label xml:lang="en">Single Location</rdfs:label>
  <rdfs:comment xml:lang="en">everything we have to point to a location
in a subject</rdfs:comment>
  <rdfs:subClassOf rdf:parseType="Collection">
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;title"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;description"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;Line"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;Column"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;XPath"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;Fuzzy"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <!--// exact locator types are to be determined //-->
  </rdfs:subClassOf>
</rdfs:Class>

<rdfs:Class rdf:about="&earl;rangeLocation">
  <rdfs:label xml:lang="en">Range Location</rdfs:label>
  <rdfs:comment xml:lang="en">@@@</rdfs:comment>
  <rdfs:subClassOf rdf:parseType="Collection">
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;title"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;description"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;startLocation"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;endLocation"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
  </rdfs:subClassOf>
</rdfs:Class>

<rdfs:Class rdf:about="&earl;shadowLocation">
  <rdfs:label xml:lang="en">Shadow Locator</rdfs:label>
  <rdfs:comment xml:lang="en">@@@</rdfs:comment>
  <rdfs:subClassOf rdf:parseType="Collection">
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;title"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;description"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;primaryLocation"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;additionalLocation"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
  </rdfs:subClassOf>
</rdfs:Class>

<rdfs:Class rdf:about="&earl;compoundLocation">
  <rdfs:label xml:lang="en">Shadow Locator</rdfs:label>
  <rdfs:comment xml:lang="en">@@@</rdfs:comment>
  <rdfs:subClassOf rdf:parseType="Collection">
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;title"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&dc;description"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&earl;hasLocation"/>
      <!--// min / max cardinality constraints //-->
    </owl:Restriction>
  </rdfs:subClassOf>
</rdfs:Class>

<rdf:Property rdf:about="&earl;Locator">
  <rdfs:label xml:lang="en">Locator</rdfs:label>
  <rdfs:comment xml:lang="en">@@@</rdfs:comment>
  <rdfs:domain rdf:resource="&earl;Location"/>
  <rdfs:range rdf:resource="&earl;Location"/>
</rdf:Property>

<rdf:Property rdf:about="&earl;startLocation">
  <rdfs:subClassOf rdf:resource="&earl;Locator"/>
  <rdfs:label xml:lang="en">Start Locator</rdfs:label>
  <rdfs:comment xml:lang="en">@@@</rdfs:comment>
  <rdfs:domain rdf:resource="&earl;rangeLocation"/>
  <rdfs:range rdf:resource="&earl;singleLocation"/>
</rdf:Property>

<!--// other locator types follow the same schema //-->

<!--// definition of actual location pointed TBD //-->


Regards,
  Shadi


-- 
Shadi Abou-Zahra,     Web Accessibility Specialist for Europe 
Chair and Team Contact for the Evaluation and Repair Tools WG 
World Wide Web Consortium (W3C),           http://www.w3.org/ 
Web Accessibility Initiative (WAI),    http://www.w3.org/WAI/ 
WAI-TIES Project,                 http://www.w3.org/WAI/TIES/ 
Evaluation and Repair Tools WG,     http://www.w3.org/WAI/ER/ 
2004, Route des Lucioles -- 06560, Sophia-Antipolis -- France 
Voice: +33(0)4 92 38 50 64           Fax: +33(0)4 92 38 78 22 

Received on Wednesday, 5 October 2005 08:53:43 UTC