Define disjoint classes in protege

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

Define disjoint classes in protege

PippoBaudo
I'm building an ontology about music industry and I've a problem: I've a
taxonomy structured as well (Solo and Group are disjoint):
<http://protege-project.136.n4.nabble.com/file/t377194/Pb3tF.png>
The group class is defined as formedBy min 2 Artist, where the formedBy
object properties is defined as well:
<http://protege-project.136.n4.nabble.com/file/t377194/ooMzB.png>
The Solo class is defined as sing min 1 track, and this is the sing object
properties:
<http://protege-project.136.n4.nabble.com/file/t377194/EHHr6.png>
My problem is that when I create an individual "Group" and I add the object
property "sing", it gets classified as a "Solo", which gives me error since
the classes are disjoint. How can I solve this problem? Do I need to change
the equivalentTo property of the classes?



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Define disjoint classes in protege

Lorenz Buehmann
The issue is clearly saying

Solo EquivalentTo sing min 1

This axiom is nothing more than syntactic sugar for saying

Solo SubClassOf (sing min 1 Thing)

and

(sing min 1 Thing) SubClassOf Solo

Obviously, the latter is not what you want, given that a band also sings
songs.


Solution: just add

Solo SubClassOf (sing min 1 thing)

instead of the EquivalentTo axiom.


On 03.02.20 11:06, PippoBaudo wrote:

> I'm building an ontology about music industry and I've a problem: I've a
> taxonomy structured as well (Solo and Group are disjoint):
> <http://protege-project.136.n4.nabble.com/file/t377194/Pb3tF.png>
> The group class is defined as formedBy min 2 Artist, where the formedBy
> object properties is defined as well:
> <http://protege-project.136.n4.nabble.com/file/t377194/ooMzB.png>
> The Solo class is defined as sing min 1 track, and this is the sing object
> properties:
> <http://protege-project.136.n4.nabble.com/file/t377194/EHHr6.png>
> My problem is that when I create an individual "Group" and I add the object
> property "sing", it gets classified as a "Solo", which gives me error since
> the classes are disjoint. How can I solve this problem? Do I need to change
> the equivalentTo property of the classes?
>
>
>
> --
> Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
> _______________________________________________
> 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: Define disjoint classes in protege

PippoBaudo
I tried but it didn't work. The problem is that the object property "sing"
has as domain "Artist", which can be either a Group or a Solo. So when I add
this object property to a Group it classifies it as a Solo, even if I
specified that the Group class has also the "formedBy" object property
(which it doesn't appear in the Solo class)



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Define disjoint classes in protege

Lorenz Buehmann

On 03.02.20 11:46, PippoBaudo wrote:
> I tried but it didn't work. The problem is that the object property "sing"
> has as domain "Artist", which can be either a Group or a Solo. So when I add
> this object property to a Group it classifies it as a Solo, even if I
> specified that the Group class has also the "formedBy" object property
> (which it doesn't appear in the Solo class)

that's impossible. A reasoner can't classify it as both subclasses just
because a domain is given. You have to change the axiom as I suggested,
re-sync the reasoner - that's all you have to do.

If that doesn't help, you have some other axioms in your ontology, that
you did not share with us.

Please share the whole ontology, just 3 pictures is not enough to find
the error.

>
>
>
> --
> Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
> _______________________________________________
> 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: Define disjoint classes in protege

PippoBaudo
Here it is: https://pastebin.com/p7wkXxCB
My output should be:
Group1 as "Group"
Paul as "Solo"

Now it is:
Group1 as "Group"
Paul, John, Mark as "Artist"



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Define disjoint classes in protege

Lorenz Buehmann
Ok, but that's a different issue now.

Do you understand why this can't work? I mean, what is your sufficient
requirement to classify an artist as person?

Just saying "if an artist sings at least one song" is obviously not
enough. you'll need an additional or even another restriction.

On 03.02.20 12:02, PippoBaudo wrote:

> Here it is: https://pastebin.com/p7wkXxCB
> My output should be:
> Group1 as "Group"
> Paul as "Solo"
>
> Now it is:
> Group1 as "Group"
> Paul, John, Mark as "Artist"
>
>
>
> --
> Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
> _______________________________________________
> 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: Define disjoint classes in protege

PippoBaudo
In my ontology a Solo is an Artist which as sang at least 1 song. This is why
I only used that condition. Which restriction you think should I add in this
class?



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Define disjoint classes in protege

Lorenz Buehmann
Ok, but this axiom is in your ontology.

Solo SubClassOf sing min 1

But I don't understand why you expect that from this statement a
reasoner can infer that Paul belongs to class Solo.


On 03.02.20 12:38, PippoBaudo wrote:

> In my ontology a Solo is an Artist which as sang at least 1 song. This is why
> I only used that condition. Which restriction you think should I add in this
> class?
>
>
>
> --
> Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
> _______________________________________________
> 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: Define disjoint classes in protege

PippoBaudo
Because in my ontology Paul has song 1 Track (Song2). So, since the only
other member of the ontology that has sang a song is successfully classified
(Group1), I'm, excepting that all the other entities that has sang a song
and not are formedBy some Artist (so they are not a Group) goes into Solo.
Mark and John should just stay in Artist since they haven't sing any song
(they are only part of a Group that has sing a song, but I'm not interested
in this fact).



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: Define disjoint classes in protege

Igor Toujilov-2
Hi,
I have some comments, which might shine light on conceptual design issues in this ontology. Those issues in turn might be the source of the problem in the topic.
“Group” is a subclass of “Artist”, which is a subclass of “Person”. “Group” is commented as “A number of people or things that are put together or considered as a unit.” How a person can be equivalent to a group of people? Definitely they cannot.

Cheers,
Igor

> Sent: Monday, February 03, 2020 at 12:27 PM
> From: "PippoBaudo" <[hidden email]>
> To: [hidden email]
> Subject: Re: [protege-user] Define disjoint classes in protege
>
> Because in my ontology Paul has song 1 Track (Song2). So, since the only
> other member of the ontology that has sang a song is successfully classified
> (Group1), I'm, excepting that all the other entities that has sang a song
> and not are formedBy some Artist (so they are not a Group) goes into Solo.
> Mark and John should just stay in Artist since they haven't sing any song
> (they are only part of a Group that has sing a song, but I'm not interested
> in this fact).
>
>
>
> --
> Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
> _______________________________________________
> 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: Define disjoint classes in protege

Lorenz Buehmann
In reply to this post by PippoBaudo

Because in my ontology Paul has song 1 Track (Song2).

That is all the reasoner knows about Paul, so based on which axiom should the reasoner infer that Paul is Solo?

All you say in your ontology is

Solo SubClassOf sing min 1 Track

which means

"every solo singer sings at least 1 Track"

 So, since the only
other member of the ontology that has sang a song is successfully classified
(Group1), I'm, excepting that all the other entities that has sang a song
and not are formedBy some Artist (so they are not a Group) goes into Solo.

Absence of information isn't considered as the negation of something. OWL reasoning is using the Open World Assumption. Moreover, having two subclasses doesn't mean all individuals belong to either one of those - it's not something like in database area having complete and disjoint modeling.

Mark and John should just stay in Artist since they haven't sing any song
(they are only part of a Group that has sing a song, but I'm not interested
in this fact).



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

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