OWL and DL Reasoning: Why is Eros not beautiful?

2019-06-27 12:47发布

问题:

I have created an ontology based on:

  1. Every person is beautiful if one of his/her parents is beautiful

  2. Aphrodite is a parent of Eros

  3. Aphrodite is beautiful

thus we would expect Eros to be beautiful too! However, the Pellet reasoner doesn't seem to infer that. If I manually put the type of Eros to successful, it will accept it, but shouldn't it infer it?

My ontology lies here (change the extension to .owl). I am also providing screenshots from Protege:

Class hierarchy: Eros: Inferred class hierarchy:

What am I missing?


EDIT:

I can see Eros appearing in this DL query:

hasParent some Beautiful

but not in this:

hasParent exactly 1 Beautiful

but still even if I say OK for some, I would expect to see Beautiful as I see Child in my 2nd picture, where Child is inferred by the reasoner.

回答1:

What about the HermiT reasoner (built-in with protege) ?

UDPATE:

Ok, here is a new ontology I wrote based on your assignment (though, I didn't complete all sentences just the ones that suffice to infer that Eros is happy).

For the RDF/XML syntax see this pastebin link

Now the reasoner will certainly infer that both Aphrodite and Eros are happy, although that was never asserted in the ontology above. Here is a DL query for Happy concept that shows the result, "notice we just query which instances belongs to Happy concept":

Eros is finally happy :)

Here is the same ontology in Manchester syntax

Ontology: <beautiful>


ObjectProperty: <beautiful#hasChild>


Class: <beautiful#Happy>

    EquivalentTo: 
        <beautiful#Person>
         and (<beautiful#hasChild> only <beautiful#Beautiful>),
        <beautiful#Beautiful>
         and <beautiful#Person>


Class: <beautiful#Beautiful>


Class: <beautiful#Successful>

    EquivalentTo: 
        <beautiful#Beautiful>
         and <beautiful#Successful>


Class: <beautiful#Child>


Class: <beautiful#Parent>


Class: <beautiful#Person>


Individual: <beautiful#Aphrodite>

    Types: 
        <beautiful#Beautiful>,
        <beautiful#Parent>,
        <beautiful#Person>

    Facts:  
     <beautiful#hasChild>  <beautiful#Eros>


Individual: <beautiful#Eros>

    Types: 
        <beautiful#Successful>,
        <beautiful#Person>

MORE UPDATE:

DL query on Beautiful shows Eros as Beautiful too:

Hope it helps.