From: Jeff Heflin (heflin@cs.umd.edu)
Date: 04/25/01
Pat, I believe the current semantics are correct. The RDF Schema Spec (sect. 3.1.4) says that rdfs:domain is "used to indicate the class(es) on whose members a property can be used." To me, this indicates that an instance of the class does not have to have a value for that property, i.e., that there could be some Animals for which there is no hasParent property, but any thing with a hasParent property must be an Animal. If you want to say something like every animal has at least one parent then you should use cardinality. For example: <daml:Class rdf:ID="Animal"> <rdfs:subClassOf> <daml:Restriction daml:minCarinality="1"> <daml:onProperty rdf:resource="#hasParent"/> </daml:Restriction> </rdfs:subClassOf> </daml:Class> or if you want to say that every animal has at least one parent that is an animal, you should use the Q properties: <daml:Class rdf:ID="Animal"> <rdfs:subClassOf> <daml:Restriction daml:minCardinalityQ="1"> <daml:onProperty rdf:resource="#hasParent"/> <daml:hasClassQ rdf:resource="#Animal" /> </daml:Restriction> </rdfs:subClassOf> </daml:Class> Jeff pat hayes wrote: > > Checking thru the walk-thru. The section which introduces properties > is worded in a way that suggests a different semantics from the one > given in the model theory. > > The example says that the domain of hasParent is #Animal, and this > clearly suggests that the intention is that this should mean that > every animal has a parent, ie that hasParent applies to the entire > domain class (in contrast to the range specification.) I wrote the > following 'explanation' before realising that it might not be true: > > "The range specification restricts the property from 'above', ie it > specifies a class into which the value of the property must fit, > while the domain restricts it from 'below', ie it specifies a class > which must be included in the class of things that the property can > be applied to. " > > Is this correct?? Because if so, the semantics is wrong at this point. It says > > <rdfs:domain,?P,?C> means: if <x,y> in IR(?P) then x in IC(?C) > > but if the above is correct then it ought to say: > > <rdfs:domain,?P,?C> means: if x in IC(?C) then for some y, <x,y> in IR(?P) > > If the semantics is correct, however, then the example in the > walkthrough is rather misleading, and we will need to correct against > any potential misunderstanding. Also, in this case, HOW does someone > give a 'lower' bound to the domain of a property? Eg how can one say > that hasParent applies to *any* animal? (If both domain and range > restrict from above, then it would be consistent to give all > properties empty domains and ranges.) > > I await clarification from the Semantic Gurus, and will write > appropriate prose for the walkthru when clarity is restored to my > mind. > > Pat Hayes > > PS. A related question. If > <rdfs:domain,?P,?D> > <rdfs:range,?P,?R> > <inverseOf,?P,?S> > does it follow that > <rdfs:domain, ?S,?R> > <rdfs:range,?S,?D> > ?? > > PPS. The only way to really learn something is to try teaching it to > other people :-) > > --------------------------------------------------------------------- > IHMC (850)434 8903 home > 40 South Alcaniz St. (850)202 4416 office > Pensacola, FL 32501 (850)202 4440 fax > phayes@ai.uwf.edu > http://www.coginst.uwf.edu/~phayes
This archive was generated by hypermail 2.1.4 : 04/02/02 EST