- From: Stasinos Konstantopoulos <konstant@iit.demokritos.gr>
- Date: Fri, 2 May 2008 09:19:36 +0300
- To: achuter.technosite@yahoo.com
- Cc: Powder public <public-powderwg@w3.org>
Alan,
On Tue Apr 29 14:40:30 2008 Alan Chuter said:
> Phil suggests:
> ...if you want to have a ready-made label that has several checkpoints
> except others then the vocab file could include, say:
>
> <owl:Class rdf:about="&tswcag10;A">
> <rdfs:label xml:lang="en">Technosite Label WCAG 1.0 Level A</rdfs:label>
> <owl:intersectionOf rdf:parseType="Collection">
> <owl:Class rdf:about="#cp1.1_compliance" />
> <owl:Class rdf:about="#cp1.2_compliance" />
> <owl:Class rdf:about="#cp1.3_compliance" />
> <owl:Class rdf:about="#cp1.4_compliance" />
> <owl:Class rdf:about="#cp2.1_compliance" />
> <owl:Class rdf:about="#cp4.1_compliance" />
> <owl:Class rdf:about="#cp5.1_compliance" />
> <owl:Class rdf:about="#cp5.2_compliance" />
> <owl:Class rdf:about="#cp6.1_compliance" />
> <owl:Class rdf:about="#cp6.2_compliance" />
> <owl:Class rdf:about="#cp6.3_compliance" />
> <owl:Class rdf:about="#cp7.1_compliance" />
> <owl:Class rdf:about="#cp9.1_compliance" />
> <owl:Class rdf:about="#cp11.4_compliance" />
> </owl:intersectionOf>
> <owl:complementOf rdf:parseType="Collection">
> <owl:Class rdf:about="#cp12.1_compliance" />
> <owl:Class rdf:about="#cp14.1_compliance" />
> </owl:complementOf>
> </owl:Class>
>
> As you'll recognize this specifically excludes checkpoints 12.1 and 14.1.
This should be:
<owl:Class rdf:about="&tswcag10;A">
<rdfs:label xml:lang="en">Technosite Label WCAG 1.0 Level A</rdfs:label>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#cp1.1_compliance" />
<owl:Class rdf:about="#cp1.2_compliance" />
<owl:Class rdf:about="#cp1.3_compliance" />
<owl:Class rdf:about="#cp1.4_compliance" />
<owl:Class rdf:about="#cp2.1_compliance" />
<owl:Class rdf:about="#cp4.1_compliance" />
<owl:Class rdf:about="#cp5.1_compliance" />
<owl:Class rdf:about="#cp5.2_compliance" />
<owl:Class rdf:about="#cp6.1_compliance" />
<owl:Class rdf:about="#cp6.2_compliance" />
<owl:Class rdf:about="#cp6.3_compliance" />
<owl:Class rdf:about="#cp7.1_compliance" />
<owl:Class rdf:about="#cp9.1_compliance" />
<owl:Class rdf:about="#cp11.4_compliance" />
<owl:Class>
<owl:complementOf>
<owl:Class rdf:about="#cp12.1_compliance" />
</owl:complementOf>
</owl:Class>
<owl:Class>
<owl:complementOf>
<owl:Class rdf:about="#cp14.1_compliance" />
</owl:complementOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
Although I don't think there is a way of saying in POWDER/XML that a
property does not hold, this this document would have to be written
directly in POWDER-S. Or the WG should consider providing for negation
in POWDER/XML.
NOTE that according to OWL open-world semantics there is no assumption
made about unspecified properties, so that not stating that a property
holds is different from stating that a property does not hold. Any
property defined anywhere in the universe might hold for a resource
unless there is an explicit or inferred statement to the contrary.
> Alan says: But I this means creating a new label for each case, in
> OWL. Is there no way to simply say *in the label* that some of the
> rules are not complied with?
That's exactly what you're doing here, giving a name to
interesting and commonly seen mixtures of haves and have-nots.
You can create a hierarchy of increasingly specific label-aggregates:
<owl:Class rdf:about="&tswcag10;AB">
<rdfs:label xml:lang="en">Technosite Label WCAG 1.0 Level A or B</rdfs:label>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#cp1.1_compliance" />
<owl:Class rdf:about="#cp1.2_compliance" />
<owl:Class rdf:about="#cp1.3_compliance" />
<owl:Class rdf:about="#cp1.4_compliance" />
<owl:Class rdf:about="#cp2.1_compliance" />
<owl:Class rdf:about="#cp4.1_compliance" />
<owl:Class rdf:about="#cp5.1_compliance" />
<owl:Class rdf:about="#cp5.2_compliance" />
<owl:Class rdf:about="#cp6.1_compliance" />
<owl:Class rdf:about="#cp6.2_compliance" />
<owl:Class rdf:about="#cp6.3_compliance" />
<owl:Class rdf:about="#cp7.1_compliance" />
<owl:Class rdf:about="#cp9.1_compliance" />
<owl:Class rdf:about="#cp11.4_compliance" />
</owl:intersectionOf>
</owl:Class>
which leaves cp12.1 and cp14.1 unspecified, and can have two refinements
which inherit the common properties and build upon them:
<owl:Class rdf:about="&tswcag10;A">
<rdfs:label xml:lang="en">Technosite Label WCAG 1.0 Level A</rdfs:label>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#AB" />
<owl:Class>
<owl:complementOf>
<owl:Class rdf:about="#cp12.1_compliance" />
</owl:complementOf>
</owl:Class>
<owl:Class>
<owl:complementOf>
<owl:Class rdf:about="#cp14.1_compliance" />
</owl:complementOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:about="&tswcag10;B">
<rdfs:label xml:lang="en">Technosite Label WCAG 1.0 Level B</rdfs:label>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#AB" />
<owl:Class rdf:about="#cp12.1_compliance" />
<owl:Class rdf:about="#cp14.1_compliance" />
</owl:intersectionOf>
</owl:Class>
Obviously, both #A and #B are rdfs:subClassOf #AB, which can be
explicitly stated but does not need to, as any OWL tool will be able
to infer it.
You *cannot* have defaults which are subsequently overriden.
Hope this helps a bit,
stasinos
Received on Friday, 2 May 2008 06:20:23 UTC