RE: Are properties from a context-constrained class inherited by subclasses?

> It *is* permitted to say
>
>      <owl:Class rdf:ID="Blah">
>          <rdfs:subClassOf rdf:resource="#Flueve"/>
>           <rdfs:subClassOf>
>                 <owl:Restriction>
>                         <owl:onProperty rdf:resource="#emptiesInto"/>
>                         <owl:allValuesFrom rdf:resource="#Lake"/>
>                 </owl:Restriction>
>           </rdfs:subClassOf>
>      </owl:Class>
>
> here.  It is not particularly useful, as this ends up meaning that Blah's
> don't empty into anything and that could more-explicitly be said via
>
>      <owl:Class rdf:ID="Blah">
>           <rdfs:subClassOf>
>                 <owl:Restriction>
>                         <owl:onProperty rdf:resource="#emptiesInto"/>
>                         <owl:cardinality
> rdfs:datatype="xsd:nonNegativeInteger">0</owl:cardinality>
>                 </owl:Restriction>
>           </rdfs:subClassOf>
>      </owl:Class>

My Bad. I assumed that a river must empty into something, and that this
would be expressed by a cardinality constraint on #emptiesInto expressed for
#River. However this is not given in Roger's example.

Do you agree with me that with such a cardinality constraint on #River that
a restriction to #Lake would then implicitly require a cardinality of 0 (as
you say) which would conflict with the required cardinality of 1, and hence
not be permitted?

> > #Briney is less clear. It may be that #Briney is a subClassOf
> #Sea, but we
> > just don't have the triple stating this, in which case it's
> clearly allowed.
> > Likewise it may be that #Briney is disjointWith #Sea, in which case it's
> > clearly not allowed.
>
> This is not correct reasoning.  In the absence of information on whether
> Briney is a subclass of or disjoint with Sea,
>
>      <owl:Class rdf:ID="Blah">
>          <rdfs:subClassOf rdf:resource="#Flueve"/>
>           <rdfs:subClassOf>
>                 <owl:Restriction>
>                         <owl:onProperty rdf:resource="#emptiesInto"/>
>                         <owl:allValuesFrom rdf:resource="#Briney"/>
>                 </owl:Restriction>
>           </rdfs:subClassOf>
>      </owl:Class>
>
> is not only permitted, but is useful.

Yes, it's useful because:

if you are told that a #Blah emptiesInto
> > #JonsRunOutOfExampleNames then you know that
> >
> > <#JonsRunOutOfExampleNames> <rdf:type> <#Briney> .
> > <#JonsRunOutOfExampleNames> <rdf:type> <#Sea> .

What's wrong with my reasoning?

Received on Thursday, 22 May 2003 08:41:22 UTC