Question about Drool reasoning

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Question about Drool reasoning

claire qiu
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

Lorenz Buehmann

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

samsontu
Claire already shares her ontology.

The property hasSize is functional. Given that Apple1 hasSize Small1 (of type Small), Apple1 is a SmallApple.

The Drool-based SWRLTab should have concluded that Jimmie is a HappyKid w/o the equivalence definition of HappyKid. The Pellet reasoner uses the SWRL rule to make that conclusion.

With best regards,
Samson


On Jun 26, 2017, at 2:24 AM, Lorenz Buehmann <[hidden email]> wrote:

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

Martin O'Connor-2

Can you send the ontology to me. 

It is possible that the OWL 2 RL profile supported by the SWRLTab does not support this conclusion (though I think it should).

Martin

On Jun 26, 2017, at 11:53 AM, Samson Tu <[hidden email]> wrote:

Claire already shares her ontology.

The property hasSize is functional. Given that Apple1 hasSize Small1 (of type Small), Apple1 is a SmallApple.

The Drool-based SWRLTab should have concluded that Jimmie is a HappyKid w/o the equivalence definition of HappyKid. The Pellet reasoner uses the SWRL rule to make that conclusion.

With best regards,
Samson


On Jun 26, 2017, at 2:24 AM, Lorenz Buehmann <[hidden email]> wrote:

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

Lorenz Buehmann
In reply to this post by samsontu

@Samson: Right, but not a complete document such that one could load it e.g. into Protege for debugging.

Cheers,

Lorenz


On 26.06.2017 20:53, Samson Tu wrote:
Claire already shares her ontology.

The property hasSize is functional. Given that Apple1 hasSize Small1 (of type Small), Apple1 is a SmallApple.

The Drool-based SWRLTab should have concluded that Jimmie is a HappyKid w/o the equivalence definition of HappyKid. The Pellet reasoner uses the SWRL rule to make that conclusion.

With best regards,
Samson


On Jun 26, 2017, at 2:24 AM, Lorenz Buehmann <[hidden email]> wrote:

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

Lorenz Buehmann
In reply to this post by samsontu

By the way, I overlooked the functionality of :hasSize.

Indeed, you're right. anyways, loading the ontology in Protege and using the explanation feature would have been easier for me :D


Cheers,

Lorenz


On 26.06.2017 20:53, Samson Tu wrote:
Claire already shares her ontology.

The property hasSize is functional. Given that Apple1 hasSize Small1 (of type Small), Apple1 is a SmallApple.

The Drool-based SWRLTab should have concluded that Jimmie is a HappyKid w/o the equivalence definition of HappyKid. The Pellet reasoner uses the SWRL rule to make that conclusion.

With best regards,
Samson


On Jun 26, 2017, at 2:24 AM, Lorenz Buehmann <[hidden email]> wrote:

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

Lorenz Buehmann
In reply to this post by Martin O'Connor-2

@Martin

OWL RL does not support owl:allValuesFrom in a subclass expression [1] which makes the equivalence axiom working only in one direction.


Cheers,

Lorenz


[1] https://www.w3.org/TR/owl2-profiles/#Class_Expressions_3


On 27.06.2017 04:06, Martin O'Connor wrote:

Can you send the ontology to me. 

It is possible that the OWL 2 RL profile supported by the SWRLTab does not support this conclusion (though I think it should).

Martin

On Jun 26, 2017, at 11:53 AM, Samson Tu <[hidden email]> wrote:

Claire already shares her ontology.

The property hasSize is functional. Given that Apple1 hasSize Small1 (of type Small), Apple1 is a SmallApple.

The Drool-based SWRLTab should have concluded that Jimmie is a HappyKid w/o the equivalence definition of HappyKid. The Pellet reasoner uses the SWRL rule to make that conclusion.

With best regards,
Samson


On Jun 26, 2017, at 2:24 AM, Lorenz Buehmann <[hidden email]> wrote:

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

Martin O'Connor-2

OWL RL does not support owl:allValuesFrom in a subclass expression [1] which makes the equivalence axiom working only in one direction.


Yup. 

It is worth noting that the OWL 2 RL profile supports a restricted subset of OWL and will not produce all the inferences that reasoners such as HermiT and Pellet will. These reasoners support the full language. For the majority of ontologies these restrictions are not significant. See [1] for some details on the SWRLTab’s OWL 2 RL implementation..

Martin



On 27.06.2017 04:06, Martin O'Connor wrote:

Can you send the ontology to me. 

It is possible that the OWL 2 RL profile supported by the SWRLTab does not support this conclusion (though I think it should).

Martin

On Jun 26, 2017, at 11:53 AM, Samson Tu <[hidden email]> wrote:

Claire already shares her ontology.

The property hasSize is functional. Given that Apple1 hasSize Small1 (of type Small), Apple1 is a SmallApple.

The Drool-based SWRLTab should have concluded that Jimmie is a HappyKid w/o the equivalence definition of HappyKid. The Pellet reasoner uses the SWRL rule to make that conclusion.

With best regards,
Samson


On Jun 26, 2017, at 2:24 AM, Lorenz Buehmann <[hidden email]> wrote:

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Question about Drool reasoning

samsontu
In reply to this post by Lorenz Buehmann
Actually, I just copy and pasted most of the ontology-defining email text (minus the swrl rule) to a file and loaded it in Protege. I only had to enter the swrl rule manually. I used Protege's explanation facility to see that "Jimmie is a HappyKid" could be inferred in two ways.

Thanks for pointing out that RL does not support owl:allValuesFrom.

With best regards,
Samson


On Jun 27, 2017, at 1:23 AM, Lorenz Buehmann <[hidden email]> wrote:

@Samson: Right, but not a complete document such that one could load it e.g. into Protege for debugging.

Cheers,

Lorenz


On 26.06.2017 20:53, Samson Tu wrote:
Claire already shares her ontology.

The property hasSize is functional. Given that Apple1 hasSize Small1 (of type Small), Apple1 is a SmallApple.

The Drool-based SWRLTab should have concluded that Jimmie is a HappyKid w/o the equivalence definition of HappyKid. The Pellet reasoner uses the SWRL rule to make that conclusion.

With best regards,
Samson


On Jun 26, 2017, at 2:24 AM, Lorenz Buehmann <[hidden email]> wrote:

I'm wondering how HemiT can infer this...

We still have the open world assumption, i.e. the conclusion that

:Apple1 rdf:type :SmallApple

is not possible - given that I did not overlook something.

Can you share the ontology?


On 26.06.2017 10:58, claire Qiu wrote:
Hi,
here is my modelling:
#    Object Properties
:hasObject rdf:type owl:ObjectProperty ;
           rdfs:subPropertyOf owl:topObjectProperty .
:hasSize rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty .
 
#    Classes
:Apple rdf:type owl:Class .
:HappyKid rdf:type owl:Class ;
          owl:equivalentClass [ rdf:type owl:Restriction ;
                                owl:onProperty :hasObject ;
                                owl:someValuesFrom :SmallApple
                              ] .
:Small rdf:type owl:Class .
:SmallApple rdf:type owl:Class ;
            owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:someValuesFrom :Small
                                                       ]
                                                       [ rdf:type owl:Restriction ;
                                                         owl:onProperty :hasSize ;
                                                         owl:allValuesFrom :Small
                                                       ]
                                                     ) ;
                                  rdf:type owl:Class
                                ] .

#    Individuals
:Apple1 rdf:type owl:NamedIndividual ,
                 :Apple ;
        :hasSize :Small1 .
:Jimmy rdf:type owl:NamedIndividual ;
       :hasObject :Apple1 .
:Small1 rdf:type owl:NamedIndividual ,
                 :Small .

SWRL rule:  SmallApple(?x) ^ hasObject(?y, ?x) -> HappyKid(?y)


After run the Drool, it cannot infer that Jimmy is a HappyKid.


But, if I model HappyKid as a class: HappyKid isEquvilentTo hasObject some SmallApple, the Hermit reasoner can infer that Jimmy is a HappyKid.

Can someone please explain the differences? 

Best,
Claire



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user



_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user