- From: Stasinos Konstantopoulos <konstant@iit.demokritos.gr>
- Date: Fri, 7 Dec 2007 02:39:55 +0200
- To: public-powderwg@w3.org
On Thu Dec 6 23:32:06 2007 Andrea Perego said: > > Or s'thing like declaring an RDF meta-property that has owl:Class as > > it's domain: > > > > <rdf:Property rdf:ID="includesHost"> > > <rdfs:domain owl:Class"/> > > <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> > > </rdf:Property> > > > > <owl:Class rdf:ID="FOSIchildSafe"> > > <rdfs:subClassOf wdr:ChildSafe/> > > <wdr:includeHost>example.org^^xsd:string</includesHost> > > </owl:Class> > > Well, this allows me to ask you a new question. > > In the POWDER vocabulary [1], we have defined the equivalent of the new > wdr:includeHost: > > <owl:DatatypeProperty rdf:about="&wdr;includeHosts"> > <rdfs:isDefinedBy rdf:resource="&wdr;" /> > <rdfs:label xml:lang="en">include hosts</rdfs:label> > <rdfs:comment xml:lang="en">This property ...</rdfs:comment> > <rdfs:range rdf:resource="&wdrd;uriHostList" /> > <rdfs:subPropertyOf rdf:resource="&wdr;addressRestriction" /> > <rdfs:seeAlso rdf:resource="&group;#byURIcomp" /> > </owl:DatatypeProperty> > > The new definition should then be something like what follows: > > <owl:DatatypeProperty rdf:about="&wdr;includeHost"> > ... > <rdfs:domain rdf:resource="&owl;Class" /> > <rdfs:range rdf:resource="&xsd;string" /> > ... > </owl:DatatypeProperty> No nit-picking on whether it's going to be includeHosts (range is RDF List) or includeHost (range is XML string), come to think of it, I don't see any reason not to retain the RDF List range. I am not persuaded that it should be owl:DatatypeProperty in addition to being some POWDER-specific sub-property of rdf:Property, say wdr:addressRestriction, but that is a different issue. The key difference is that the domain is owl:Class instances, as opposed to owl:Thing instances. Let me explain: OWL instances and OWL classes are symbols taken from distinct alphabets, that is, a class symbol cannot be confused for an instance symbol and vice-versa. But if one looks under this layer of OWL semantics, they are all RDF instances: OWL class symbols are instances of the owl:Class class, which is a subclass of the rdf:Class class and OWL instance symbols are instances of the owl:Thing class. Now, > You then say that the DR scope definition can be: > > <owl:Class rdf:ID="FOSIchildSafe"> > <wdr:includeHost>example.org</wdr:includeHost> > </owl:Class> > > My question is: given that the wdr:includeHost property is defined as > above, is this equivalent or not to writing: > > <owl:Class rdf:ID="ResourceOnExampleDotOrg"> > <owl:equivalentClass> > <owl:Restriction> > <owl:onProperty rdf:resource="&wdr;includeHost" /> > <owl:hasValue>example.org</owl:hasValue> > </owl:Restriction> > </owl:equivalentClass> > </owl:Class> Not at all. In the former case includeHost is a property of an owl:Class instance, whereas in the latter it is a property of all owl:Thing instances that are members of an owl:Class instance. Huge difference: in the former case you are saying something about the class (the container, the box) without saying about its instances (the things in the box). You might have as well said that this box is shiny, or black, or whatever, and wouldn't have gotten any wiser about what kinds of things are in the box. In the latter case you are not describing the class (the container), but rather the things that are in it. By doing so, you are creating the (false) impression that you have provided a touchstone for membership in the class. Which it is not, as sample.example.org also belongs in this class (according to the intended semantics), but you have no means of expressing in OWL that includeHost X.Y.Z implies includeHost Y.Z. OWL with rules might cut it, but then Phil will point out that you have no standard (or at least W3C recommended) means of expressing rules. > In other words, do we really need to use owl:Restriction? In my view, we need to avoid it. s
Received on Friday, 7 December 2007 00:26:46 UTC