- From: Brian Ulicny <bulicny@vistology.com>
- Date: Thu, 10 Mar 2011 12:48:37 -0800 (PST)
- To: public-owl-dev@w3.org
BaseVISor 2.0 is an OWL 2 RL reasoner that can be extended very simply to handle the above example. You can download it at http://www.vistology.com/basevisor/ and try it yourself. First, I produced a friends ontology where the lhl relation is defined using the property chain likes o hates-eachother o inv(likes). Hates-eachother is simply the symmetric version of 'hates'. <owl:ObjectProperty rdf:about="&friends;lhl"> <owl:propertyChainAxiom rdf:parseType="Collection"> <rdf:Description rdf:about="&friends;likes"/> <rdf:Description rdf:about="&friends;hate- eachother"/> <rdf:Description> <owl:inverseOf rdf:resource="&friends;likes"/> </rdf:Description> </owl:propertyChainAxiom> </owl:ObjectProperty> I then said that NeutralPerson is a subClass of Person equivalent to: lhl some Self. Ie. <owl:Class rdf:about="&friends;NeutralPerson"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="&friends;lhl"/> <owl:hasSelf rdf:datatype="&xsd;boolean">true</owl:hasSelf> </owl:Restriction> </owl:equivalentClass> <rdfs:subClassOf rdf:resource="&friends;Person"/> </owl:Class> In BaseVISor, I then added two rules for the semantics of the hasSelf restriction: This rule says that if a class has a self-restriction on property p and ?u bears p to itself, then it is a member of that class: <comment> Rule: has Self if T(?x, owl:hasSelf, true^^xsd:boolean) T(?x, owl:onProperty, ?p) T(?u, ?p, ?u) then T(?u, rdf:type, ?x) </comment> <rule name="hasSelf"> <body> <triple> <subject variable="?x"/> <predicate resource="owl:hasSelf"/> <object,* datatype="xsd:boolean">true</object,> </triple> <triple> <subject variable="?x"/> <predicate resource="owl:onProperty"/> <object, variable="?p"/> </triple> <triple> <subject variable="?u"/> <predicate variable="?p"/> <object, variable="?u"/> </triple> </body> <head> <assert> <triple> <subject variable="?u"/> <predicate resource="rdf:type"/> <object, variable="?x"/> </triple> </assert> </head> </rule> </root> (*Note that I had to turn object into object, (object followed by a comma) in order to post this to the mailing list for some reason via the Web interface. If you cut and paste, do a global replace.) The second rule asserts that if something is a member of a class with a self-restriction on property p, then that thing bears property p to itself. <comment> Rule: hasSelfInstantiation if T(?x, owl:hasSelf, true^^xsd:boolean) T(?x, owl:onProperty, ?p) T(?u, rdf:type, ?x) then T(?u, ?p, ?u) </comment> <rule name="hasSelfInstantiation"> <body> <triple> <subject variable="?x"/> <predicate resource="owl:hasSelf"/> <object, datatype="xsd:boolean">true</object,> </triple> <triple> <subject variable="?x"/> <predicate resource="owl:onProperty"/> <object, variable="?p"/> </triple> <triple> <subject variable="?u"/> <predicate resource="rdf:type"/> <object, variable="?x"/> </triple> </body> <head> <assert> <triple> <subject variable="?u"/> <predicate variable="?p"/> <object, variable="?u"/> </triple> </assert> </head> </rule> Using these two rules, from the fact that Alex likes Bob and Alex likes Carlos and Bob hates-eachother Carlos (Bob and Carlos hat each other), it can be inferred that Alex lhl Alex, and therefore that Alex is a NeutralPerson. Further, if I assert that Frank is a NeutralPerson, the inference engine infers that Frank lhl Frank. Brian Ulicny, PhD Sr. Scientist VIStology, Inc. Framingham, MA 01701 USA www.vistology.com Michael Schneider-6 wrote: > > > However, there is at least one reasoner that is able to produce the > expected result: It is the (extended) online OWL 2 RL/RDF rule reasoner by > Ivan Herman at [3]. Since the original specification of the OWL 2 RL/RDF > rules [4] does not contain rules for self-restrictions, you have to switch > on the "OWL extras" on the reasoner homepage to include a rule for this > OWL 2 feature. This will make the result appear. It is quite possible that > other OWL 2 RL/RDF rule reasoners will give you the result as well, as the > corresponding rule for self-restrictions isn't hard to be added. Note, > however, that the OWL 2 RL/RDF rules will conversely not give you all the > results that you would expect from an OWL 2 DL reasoner. Further, reliant > ontology consistency and non-entailment detection is something that you > can only expect from an OWL 2 DL reasoner. So both entailment regimes have > their advantages and disadvantages. > > -- View this message in context: http://old.nabble.com/beginer-question-about-inferencing-tp31065680p31119622.html Sent from the w3.org - public-owl-dev mailing list archive at Nabble.com.
Received on Thursday, 10 March 2011 20:49:06 UTC