- 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