Hi Marc, your rule is too risky for the goal you are aiming for. It is because you do not know what are the specifics of the property p (the property for which the restriction is all about)
with your pizza ontology and just adding that rule to owl-max ruleset - owlim was not able to finish the inference in some reasonable time (20min) - after some debugging I found that most of your properties (hasTopping, hasSpiciness - etc) are functional or inverseFunctional - so with this consequent of your rule, you are forming quite large clusters of equivalent nodes through the inferred sameAs statements (as a side effect from the functional or invercefuntional nature of it). I just commented few fragments of the pizza ontology - all those that define Functionality or inverseFunctionality for the properties used in restriction definitions and got some positive results. but have in mind that these properties have also domain and range and you will end up with an ontology that is in OWL full fragment if that rule stays in your rule set. Probably there is something not right in your approach - you are mixing instances and classes here - your rule states that for each class that is a subclass of an someValues restriction over some property P to hold that the class is related with that property to some other class - so as soon this rule fires your class will become instance to the domain of the property and also the class from the restriction (someValuesFrom argument) will become instance of the range class of that property - then since the property is functional or inversefunctional - and you have at least two restrictions over the same property for several classes - as is the case with the pizza ontology) you are starting to infer unwanted sameAs statements between different classes. could you explain what you are aiming for so to be able to give you some more hints regards, Damyan ----- Original Message ----- From: Marc Mültin To: owlim-discussion@ontotext.com Sent: Tuesday, February 03, 2009 7:25 PM Subject: [Owlim-discussion] Urgent: Problem with rule! Hi there, I'm currently working on my diploma thesis, due date is next week friday and I need urgent help from some of you guys. My rule: a <rdfs:subClassOf> r [Constraint a != r] r <rdf:type> <owl:Restriction> r <owl:onProperty> p p <rdf:type> <owl:ObjectProperty> r <owl:someValuesFrom> c ------------- a p c Having the pizza ontology from http://www.co-ode.org/ontologies/pizza/pizza.owl, I want to reason for example about the following part: --- snip --- <owl:Class rdf:about="#Margherita"> <rdfs:label xml:lang="pt">Margherita</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty> <owl:ObjectProperty rdf:about="#hasTopping"/> </owl:onProperty> <owl:allValuesFrom> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#MozzarellaTopping"/> <owl:Class rdf:about="#TomatoTopping"/> </owl:unionOf> </owl:Class> </owl:allValuesFrom> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:someValuesFrom> <owl:Class rdf:about="#MozzarellaTopping"/> </owl:someValuesFrom> <owl:onProperty> <owl:ObjectProperty rdf:about="#hasTopping"/> </owl:onProperty> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty> <owl:ObjectProperty rdf:about="#hasTopping"/> </owl:onProperty> <owl:someValuesFrom rdf:resource="#TomatoTopping"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf rdf:resource="#NamedPizza"/> ... </owl> --- snip ---What I want to do is to get a triple statement like: "margherita hasTopping TomatoTopping" (with "margherita" being variable "a", "hasTopping" being variable "p" and "TomatoTopping" being variable "c").But it doesn't work! If any of you know the software AquaLog (http://technologies.kmi.open.ac.uk/aqualog/), I want AquaLog to be able to answer me the question "show me the toppings of margherita", which only works if this explicit triple notation is stated in the owl file (but it's not, it's stated via restrictions as you can see above). That's why I need this rule, to get this extra statement via inference.Where am I wrong?I would really appreciate a quick help!! Thanks in advance!Kind regards, Marc ------------------------------------------------------------------------------ _______________________________________________ OWLIM-discussion mailing list OWLIM-discussion@ontotext.com http://ontotext.com/mailman/listinfo/owlim-discussion
_______________________________________________ OWLIM-discussion mailing list OWLIM-discussion@ontotext.com http://ontotext.com/mailman/listinfo/owlim-discussion