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

Reply via email to