> 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 QuReceived on Saturday, 19 April 2003 05:14:30 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:58 GMT