From: Jeff Heflin ([email protected])
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
> [email protected]
> http://www.coginst.uwf.edu/~phayes
This archive was generated by hypermail 2.1.4 : 04/02/02 EST