Re: Inferring that a Camera is a SLR?

> Hi Folks,
> 
> I am a bit stuck on an inference.  I want to be able to infer that this
> document is talking about a SLR:
> 
> <Camera>
>      <viewFinder rdf:resource="http://www.camera.org#ThroughTheLens"/>
>      ...
> </Camera>
> 
> Here is the piece of knowledge that I am trying to use to make the
> inference: 
> 
>     "Only SLRs have a ThroughTheLens viewFinder"
> 
> When I defined SLR I restricted the value of viewFinder to
> 'ThroughTheLens', as shown here:
> 
>      <owl:Class rdf:ID="SLR">
>           <rdfs:subClassOf rdf:resource="#Camera"/>
>           <rdfs:subClassOf>
>               <owl:Restriction>
>                    <owl:onProperty rdf:resource="#viewFinder"/>
>                    <owl:hasValue rdf:resource="#ThroughTheLens"/>
>               </owl:Restriction>
>           </rdfs:subClassOf>
>      </owl:Class>
> 
> And when I defined viewFinder I stated that it is a FunctionalProperty
> and all Cameras have a viewFinder:
> 
>      <owl:ObjectProperty rdf:ID="viewFinder">
>           <rdf:type rdf:resource="&owl;#FunctionalProperty"/>
>           <rdfs:domain rdf:resource="#Camera"/>
>           <rdfs:range rdf:resource="#Viewer"/>
>      </owl:ObjectProperty>
> 
> Initially, I thought that these two OWL statements were sufficient to
> allow me to infer for the above instance that the Camera is a SLR.  I
> now believe, however, that it only allows me to infer that it "may" be a
> SLR.  True?  

Yes, It may be a SLR.

> What do I need to allow me to infer that the Camera "must"
> be a SLR?  /Roger

We should use owl:intersectionOf instead of rdfs:subClassOf, such as:

<owl:Class rdf:ID="SLR">
    <owl:equivalentClass>
        <owl:Class>
           <owl:intersectionOf rdf:parseType="Collection">
                  <owl:Class rdf:resource="#Camera"/>
                  <owl:Restriction>
                       <owl:onProperty rdf:resource="#viewFinder"/>
                       <owl:hasValue rdf:resource="#ThroughTheLens"/>                        
                  </owl:Restriction>
               </owl:intersectionOf>      
        </owl:Class>
    </owl:equivalentClass>
 </owl:Class>

BTW, how about using owl:allValuesFrom instead of owl:hasValue?

Yuzhong Qu

Received on Saturday, 19 April 2003 05:14:30 UTC