Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] Transitivity isn't working!! Why?

Timothy Redmond tredmond at
Mon Nov 1 15:43:48 PDT 2010

In Protege 4, these inferences are easily seen (more below).  I think 
that the problems you are having are:

   1. Protege 3 does not seem to show these types of inferences.
   2. SPARQL doesn't understand OWL semantics and can't be expected to
      infer things about transitive properties.  There is SPARQL-DL
      capability which is supported by pellet but I don't know of a
      Protege plugin providing a ui for accessing these capabilities.

In the latest Protege 4.1, the following will show these inferences:

   1. If you haven't changed your reasoning preferences, this step is
      not needed.  Click Reasoner->Configure and ensure that "Object
      Property Assertions" is selected near the bottom of the displayed
      inferences tab.
   2. In the reasoner menu, choose a reasoner (HermiT should be there
      after a fresh install) and then click Reasoner->Start Reasoner.
   3. Go to the individuals tab, select the Class People and then select
      the user Alice.  You will see a highlighted property towards the
      right, indicating that Carol is senior_to Alice.  This property
      value was put there by the reasoner.

You can also do other more complicated queries in the DLQuery tab (which 
also uses the reasoner).  For example if you put

    senior_to value Carol

in the Query widget, select Individuals and click "Execute" you will see 
that the reasoner knows that both Bob and Alice are senior to Carol.  
You can make many different types of queries here.  In particular, you 
could ask who is junior to Alice with the query

    inverse(senior_to) value Alice

More information on the expressions that you can enter in the DLQuery 
tab can be found here [1].



On 11/01/2010 01:58 PM, Alex Macfie wrote:
> I am defining an OWL ontology that extensively uses transitive
> properties. However, I  find that no reasoner infers any transitive
> relations. I would naturally expect, if I define property senior_to as
> transitive, and assert the following:
> Individuals: Alice, Bob, Carol
> Alice senior_to Bob
> Bob senior_to Carol
>   I expect to be able to infer through the transitive senior_to
> relationship that
> Alice senior_to Carol
> Yet the Pellet reasoner does not add any new relationships, and SPARQL
> only lists the direct relationships when I do a query like
> SELECT ?subject ?object
> WHERE { ?subject :senior_to ?object }
> What is going on here? What is the point of the "transitive" tick-box
> when creating a property if it cannot be used to actually infer
> transitive relationships? I am fairly new to OWL and Protege but I know
> what transitivity is and what one would expect to infer with a
> transitive property. So I find it very frustrating that this elementary
> concept doesn't actually seem to *work*.
> Regards
> Alex
> _______________________________________________
> protege-owl mailing list
> protege-owl at
> Instructions for unsubscribing:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: transitivity.owl
Type: application/rdf+xml
Size: 1099 bytes
Desc: not available
URL: <>

More information about the protege-owl mailing list