Multiple domain/ranges for the same OWL properties

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

Multiple domain/ranges for the same OWL properties

Artur Caetano
Hello!

There are some threads on this topic but I have been unable to apply the
proposed solutions to the problem I'm describing here. I am trying to use
OWL to check the consistency of models against a set of rules. The problem I
have is that different classes relate through the same set of relationships.
Consider the following scenario:

There are three classes: ClassA, ClassB, ClassC

There are two possible (binary) relationships: R1, R2

Now let's consider that the following restrictions apply:
ClassA ---> R1 ---> [0..*] ClassA
ClassA ---> R1 ---> [0..*] ClassB
ClassB ---> R1 ---> [0..*] ClassC

ClassB ---> R2 ---> [0..*] ClassB
ClassB ---> R2 ---> [0..*] ClassC
ClassC ---> R2 ---> [0..*] ClassC

For example:
- ClassA ---> R1 ---> [0..*] ClassB means that individuals of classA may
relate to zero or more ClassB via R1.

- ClassB ---> R2 ---> [0..*] ClassB means that individuals of ClassB may
relate to individuals of ClassB via R2.

Examples of violations of the above rules are:
- an individual of ClassA relates to ClassC via R1
- an individual of ClassA relates to ClassB via R2

BTW, note that I am using 0..* cardinality for the sake of simplicity but
there will be rules with different cardinalities.

What is the best way to represent this in OWL 2 (in Protege 4.x)? I am
currently trying to state that each class has a set of super-classes that
restrict the possible relationships as follows:

ClassA
     superclasses
        R1 only (ClassA or ClassB or ClassC)

ClassB
     superclasses
        R1 only (ClassC)
        R2 only (ClassB or ClassC)

ClassC
     superclasses
        R2 only (ClassC)

I have also tried combining some (existential) and only (universal)
restricitions , e.g.

ClassA
     superclasses
        R1 some ClassA
        R1 some ClassB
        R1 some ClassC
        R1 only (ClassA or ClassB or ClassC)


However, it seems the reasoner is not correctly considering the rules above
and does not detect any kind of violations nor does it correctly classify
the individuals.

Can you please provide me some insights on how to model this scenario?


Thanks in advance,
Artur Caetano
Reply | Threaded
Open this post in threaded view
|

Re: Multiple domain/ranges for the same OWL properties

Lorenz Buehmann

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

have you tried to set the classes pairwise disjoint? This is needed, if
a reasoner can find some inconsistencies in the instance data.

Regards,
Lorenz
On 15.11.2012 14:13, Artur Caetano wrote:
> Hello!
>
> There are some threads on this topic but I have been unable to apply the
> proposed solutions to the problem I'm describing here. I am trying to use
> OWL to check the consistency of models against a set of rules. The
problem I
> have is that different classes relate through the same set of
relationships.

> Consider the following scenario:
>
> There are three classes: ClassA, ClassB, ClassC
>
> There are two possible (binary) relationships: R1, R2
>
> Now let's consider that the following restrictions apply:
> ClassA ---> R1 ---> [0..*] ClassA
> ClassA ---> R1 ---> [0..*] ClassB
> ClassB ---> R1 ---> [0..*] ClassC
>
> ClassB ---> R2 ---> [0..*] ClassB
> ClassB ---> R2 ---> [0..*] ClassC
> ClassC ---> R2 ---> [0..*] ClassC
>
> For example:
> - ClassA ---> R1 ---> [0..*] ClassB means that individuals of classA may
> relate to zero or more ClassB via R1.
>
> - ClassB ---> R2 ---> [0..*] ClassB means that individuals of ClassB may
> relate to individuals of ClassB via R2.
>
> Examples of violations of the above rules are:
> - an individual of ClassA relates to ClassC via R1
> - an individual of ClassA relates to ClassB via R2
>
> BTW, note that I am using 0..* cardinality for the sake of simplicity but
> there will be rules with different cardinalities.
>
> What is the best way to represent this in OWL 2 (in Protege 4.x)? I am
> currently trying to state that each class has a set of super-classes that
> restrict the possible relationships as follows:
>
> ClassA
> superclasses
> R1 only (ClassA or ClassB or ClassC)
>
> ClassB
> superclasses
> R1 only (ClassC)
> R2 only (ClassB or ClassC)
>
> ClassC
> superclasses
> R2 only (ClassC)
>
> I have also tried combining some (existential) and only (universal)
> restricitions , e.g.
>
> ClassA
> superclasses
> R1 some ClassA
> R1 some ClassB
> R1 some ClassC
> R1 only (ClassA or ClassB or ClassC)
>
>
> However, it seems the reasoner is not correctly considering the rules
above

> and does not detect any kind of violations nor does it correctly classify
> the individuals.
>
> Can you please provide me some insights on how to model this scenario?
>
>
> Thanks in advance,
> Artur Caetano
>
>
>
> --
> View this message in context:
http://protege-ontology-editor-knowledge-acquisition-system.136.n4.nabble.com/Multiple-domain-ranges-for-the-same-OWL-properties-tp4656655.html
> Sent from the Protege-OWL 4.x Support mailing list archive at Nabble.com.
> _______________________________________________
> p4-feedback mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/p4-feedback
>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQEcBAEBAgAGBQJQpQj7AAoJEI97YhPimK8y0MUIAIxEooQCxuXAGJxhDRWEcFM7
qWpKFv4TBbsGl+10SsVg8FyOUG3EO+YADnd2h5HVmIunBS5d0TwqVaZNDB6OxCSu
84XTZslg5/QdDLjuLnN8aWqYnUi0O/3BVZuy/V9K/7LxhEkwfkPDjzMRkl0WNP1N
7WsKqTnH0O2thPH1/Pw2A4IvVJJF8Qo6s0xt6qTqZiQIlPiwhSj7rB9HDleKwGZY
8hn1w/vQb6YB8ri41diP4y4myTZ4KmvoBqqSNn3hm2KLD/sFYkHPrb3qSOkD8Z/a
taRr4VHY9dNfg5J3AtUe5afAyAaEkj6mibZdVLqDo957cKW9I2LBus9VEs63hp8=
=TYZH
-----END PGP SIGNATURE-----

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

Re: Multiple domain/ranges for the same OWL properties

Timothy Redmond
In reply to this post by Artur Caetano

For example:
- ClassA ---> R1 ---> [0..*] ClassB means that individuals of classA may
relate to zero or more ClassB via R1.

This is somewhat imprecise.  As stated, it sounds vacuous.  Any collection of individuals will have zero or more elements.  From context, it appears that you also have some expectation that if some possible relationship is not stated that it then cannot happen.

ClassA ---> R1 ---> [0..*] ClassA
ClassA ---> R1 ---> [0..*] ClassB
ClassB ---> R1 ---> [0..*] ClassC

ClassB ---> R2 ---> [0..*] ClassB
ClassB ---> R2 ---> [0..*] ClassC
ClassC ---> R2 ---> [0..*] ClassC

Given your explanation, I am interpreting this to mean that
  • members of ClassA can only be related by the R1 relation to members of ClassA or ClassB.
  • members of ClassB can only be related by the R1 relation to members of the ClassC.
  • members of ClassB can only be related by the R2 relation to members of ClassB or ClassC.
  • members of ClassC can only be related by the R2 relation to members of the ClassC.
It is unclear whether you wanted to allow members of ClassA to be related to other members by the R2 relation.

ClassA
     superclasses
        R1 only (ClassA or ClassB or ClassC)

ClassB
     superclasses
        R1 only (ClassC)
        R2 only (ClassB or ClassC)

ClassC
     superclasses
        R2 only (ClassC)

Modulo the fact that the above the above ontology allows members of ClassA to be related to members of ClassC by the R1 relation, this sounds like a more precise statement of what you are trying to say.  I made a version of this ontology and added the simplifying assumption that the classes A, B and C are disjoint to simplify the exposition.

However, it seems the reasoner is not correctly considering the rules above
and does not detect any kind of violations nor does it correctly classify
the individuals.

In order to evaluate this issue you would need to send an ontology with some examples.  Even better, add an english explanation why you think the reasoner should come to some conclusion.  I did some experiments with the attached ontology and the reasoning seemed to work.  In particular the reasoner detects that the individual x is in the class C.  It also detects an inconsistency if I add the assertion <c1 R2 a1>.

-Timothy



On 11/15/2012 05:13 AM, Artur Caetano wrote:
Hello!

There are some threads on this topic but I have been unable to apply the
proposed solutions to the problem I'm describing here. I am trying to use
OWL to check the consistency of models against a set of rules. The problem I
have is that different classes relate through the same set of relationships.
Consider the following scenario:

There are three classes: ClassA, ClassB, ClassC

There are two possible (binary) relationships: R1, R2

Now let's consider that the following restrictions apply:
ClassA ---> R1 ---> [0..*] ClassA
ClassA ---> R1 ---> [0..*] ClassB
ClassB ---> R1 ---> [0..*] ClassC

ClassB ---> R2 ---> [0..*] ClassB
ClassB ---> R2 ---> [0..*] ClassC
ClassC ---> R2 ---> [0..*] ClassC

For example:
- ClassA ---> R1 ---> [0..*] ClassB means that individuals of classA may
relate to zero or more ClassB via R1.

- ClassB ---> R2 ---> [0..*] ClassB means that individuals of ClassB may
relate to individuals of ClassB via R2.

Examples of violations of the above rules are:
- an individual of ClassA relates to ClassC via R1
- an individual of ClassA relates to ClassB via R2

BTW, note that I am using 0..* cardinality for the sake of simplicity but
there will be rules with different cardinalities.

What is the best way to represent this in OWL 2 (in Protege 4.x)? I am
currently trying to state that each class has a set of super-classes that
restrict the possible relationships as follows:

ClassA
     superclasses
        R1 only (ClassA or ClassB or ClassC)

ClassB
     superclasses
        R1 only (ClassC)
        R2 only (ClassB or ClassC)

ClassC
     superclasses
        R2 only (ClassC)

I have also tried combining some (existential) and only (universal)
restricitions , e.g.

ClassA
     superclasses
        R1 some ClassA
        R1 some ClassB
        R1 some ClassC
        R1 only (ClassA or ClassB or ClassC)


However, it seems the reasoner is not correctly considering the rules above
and does not detect any kind of violations nor does it correctly classify
the individuals.

Can you please provide me some insights on how to model this scenario?


Thanks in advance,
Artur Caetano



--
View this message in context: http://protege-ontology-editor-knowledge-acquisition-system.136.n4.nabble.com/Multiple-domain-ranges-for-the-same-OWL-properties-tp4656655.html
Sent from the Protege-OWL 4.x Support mailing list archive at Nabble.com.
_______________________________________________
p4-feedback mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/p4-feedback


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

relations.owl (6K) Download Attachment