Universal Restriction in every Restriction

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

Universal Restriction in every Restriction

Christine Natschlaeger
Universal Restriction in every Restriction

Hi,

I am currently testing my ontology with concrete examples and individuals that should lead to inconsistent ontologies. For example, I defined that a class connector references a source and a target node:

source exactly 1 Node

target exactly 1 Node

Afterwards I defined a concrete individual Connector1 which doesnt reference a Node but another Connector. Both, Node and Connector, are derived from the same superclass and are defined to be disjoint, so this should lead to an inconsistency.

Connector1 defines:     target Connector2

Connector 2 defines:    source Connector 1

Although I have also specified the range of source and target (and set to Node), all three reasoners (HermiT, FaCT++ and Pellet) cant detect the inconsistency. This seems to be based on the open world assumption, since further relationships to other elements are not explicitly forbidden.

I solved the problem by specifying that:

source exactly 1 Node and source only Node

target exactly 1 Node and target only Node

However, my question now is whether I must specify a universal restriction for every restriction in my ontology? Do I always have to say that a class has a relationship to another class and only to this other class? Or is there maybe an easier way to restrict the ontology so that inconsistencies as described above can be detected?

Thank you for any suggestions,

christine


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

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Universal Restriction in every Restriction

Thomas Russ

On Feb 3, 2011, at 11:54 PM, Natschläger Christine wrote:

> Hi,
>
> I am currently testing my ontology with concrete examples and individuals that should lead to inconsistent ontologies. For example, I defined that a class “connector” references a source and a target node:
>
> source exactly 1 Node
>
> target exactly 1 Node

All this restriction says is that "target has exactly 1 property value of type Node" but it doesn't say anything about the number or type of any additional property values of different types.  You would get an inconsistencies if two different individuals of type Node where values of the property.

> Afterwards I defined a concrete individual “Connector1” which doesn’t reference a Node but another Connector. Both, Node and Connector, are derived from the same superclass and are defined to be disjoint, so this should lead to an inconsistency.

No, because the qualified number restriction you gave doesn't rule out other fillers as long as they are NOT of type Node.


> Connector1 defines:     target Connector2
>
> Connector 2 defines:    source Connector 1
>
> Although I have also specified the range of source and target (and set to Node), all three reasoners (HermiT, FaCT++ and Pellet) can’t detect the inconsistency. This seems to be based on the open world assumption, since further relationships to other elements are not explicitly forbidden.

Hmmm.  It seems that there is a problem with this, then.  From the range constraint on the property it should be possible to infer that the value of the property must be of type Node.  So a reasoner should be able to conclude that Connector2, for example, must be of type Node since it is the value of the target prpoerty.   And I assume that Connector2 is asserted to be of type Connector.  And since Node and Connector are disjoint, you should get an inconsistency.

In fact, you should get this inconsistency even without the "target exactly 1 Node" restriction, since it should follow just from the range of "target" and the asserted type of its filler.

> I solved the problem by specifying that:
>
> source exactly 1 Node and source only Node
>
> target exactly 1 Node and target only Node
>
> However, my question now is whether I must specify a universal restriction for every restriction in my ontology? Do I always have to say that a class has a relationship to another class and only to this other class? Or is there maybe an easier way to restrict the ontology so that inconsistencies as described above can be detected?

Well, assuming that the property has a range defined, that will in effect be similar to a universal restriction of "P only C" on the topmost class of the hierarchy.  So I don't think it should be necessary for restriction to be in place to get an inconsistency.

Another option would be to use a slightly different combination of restrictions, namely
   source exactly 1 and source only Node

But in fact, if you have the range set up then you could use just the simple cardinality constraint without the qualification.


I just tried a simple case of this using Protégé 3.4.4 and Pellet 1.5.2 and I get the inconsistency that I expect.
I defined the following classes:

Thing
  Top
    A  disjoint from B
    B  disjoint from A

and the property
    p  domain A, range B

I then create individuals
  a-1 type A
  a-2 type A

and when I arrange to assert*

  a-1 p a-2

and then run the Pellet 1.5.2 reasoner, it returns an inconsistency result saying that an individual is being forced to belong to a class and its complement.  That is exactly what one should expect.

Now, since you are using qualified number restrictions from OWL 2, I assume you are using Pellet 4.1 for your reasoning.  You may need to enable more of the reasoning options, since IIRC by default Protege 4.1 does not do the full range of inference.  If you go to the Reasoner > Configure menu and turn on object property domain and range inferences, then you will get an inconsistency from the range inference.


-Tom.
* It took a little bit of work to assert this, since Protégé 3's individual widgets try not to allow you to insert values from outside the range.
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Universal Restriction in every Restriction

Christine Natschlaeger

Hi Tom,

 

Thank you for your answer! You are right, the check boxes of domain and range in the preferences haven't been checked.

 

However, I don't get the described error message. I always get an InconsistentOntologyException with every reasoner, without any detailed messages:

The message from Pellet:

 

The error message from HermiT 1.2.4:

 

The error message from FaCT++:

 

Is there any possibility to receive the concrete message as well?

 

Thanks,

christine

 

P.S.:  I use Protege 4.1 (Build 206).


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

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Universal Restriction in every Restriction

Thomas Russ

On Feb 7, 2011, at 12:40 AM, Natschläger Christine wrote:

> Hi Tom,
>  
> Thank you for your answer! You are right, the check boxes of domain and range in the preferences haven't been checked.
>  
> However, I don't get the described error message. I always get an InconsistentOntologyException with every reasoner, without any detailed messages:
> ...
>  
> Is there any possibility to receive the concrete message as well?

I got that message using Protégé 3.4,not 4.1, so I'm not sure how to get it with version 4.1

Sometimes you get better information from Pellet if you can load your ontology directly into Pellet from the command line rather than running it through the interface.

But it is certainly true that one of the areas of OWL reasoners and editors that needs more work is in providing useful feedback on why an ontology is inconsistent.  Often, as you have discovered, the only information you get is that the ontology is not consistent.

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

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Universal Restriction in every Restriction

Timothy Redmond
In reply to this post by Christine Natschlaeger

Inconsistent ontologies are a case that is not currently handled very well by Protege.  If the ontology is consistent I have managed to implement a tool that can explain unexpected inferences.  But when the ontology is actually inconsistent my current tools don't work.  I have a partial plan for this.

What you currently need to do with these exceptions is to run pellet from the command line as Thomas suggests.  If you like, you can send the ontology and I can tell you what is wrong with the ontology and I will also be able to file it somewhere as a test case for when I try to implement the explanation of inconsistent ontologies.

-Timothy

On 02/07/2011 12:40 AM, Natschläger Christine wrote:

Hi Tom,

 

Thank you for your answer! You are right, the check boxes of domain and range in the preferences haven't been checked.

 

However, I don't get the described error message. I always get an InconsistentOntologyException with every reasoner, without any detailed messages:

The message from Pellet:

 

The error message from HermiT 1.2.4:

 

The error message from FaCT++:

 

Is there any possibility to receive the concrete message as well?

 

Thanks,

christine

 

P.S.:  I use Protege 4.1 (Build 206).

_______________________________________________ protege-owl mailing list [hidden email] https://mailman.stanford.edu/mailman/listinfo/protege-owl Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03


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

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03