Re: Urgent! Semantic question about rdfs:domain.

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