ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Strange problem with cardinality restrictions

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: William Frank <williamf.frank@xxxxxxxxx>
Date: Sun, 9 Jun 2013 19:53:59 -0400
Message-id: <CALuUwtASrOxr9Y-xVujWBajCKzMTLbbx-=gPZ5pacyKxFJe9YA@xxxxxxxxxxxxxx>


On Sun, Jun 9, 2013 at 7:04 PM, Przemyslaw Jaskierski <przemjaskier@xxxxxxxxx> wrote:
Hello!

I'm still learning things. So far, so good - I've created a working POC in Protege and started to like how all this work.

Sadly I've hit a problem that I can't understand.

Here is a rough simplification of a part of my ontology:

classes:

1. PositiveVote, NegativeVote - both subclasses of Vote

I would like help with this.  Is this considered good practice in Protege-OWL?

Doe this modelling approach encourage defining the attributes of things as subtypes?

For example, we also have votes cast absentee and votes cast in person?  votes cast during the day and votes cast during the night.  are these more subtypes of votes?

What is the benefit to be had of using subtyping for this purpose?

It appears to me, from the Wine tutorial, that it does encourage this.  I just don't understand what you can do by having positive votes and negative votes be different types of things, rather than the same type of thing with a different attribute value.

I can see from the below that it surely adds complexity, this plethora of 'types'.

Wm


2. PositiveVoteResult, NegativeVoteResult - both subclasses of VoteResult

VoteResult has object property "hasVote" which connects it to 0..many of Vote individuals(!!!)


What I want to accomplish is to make reasoner to set type (PositiveVoteResult, NegativeVoteResult) for an individual - according to types of all connected through hasVote individuals of class Vote

So, the individual's type should be:

1.  type PositiveVoteResult if all its connected through hasVote are of type PositiveVote

2. type NegativeVoteResult if there is at least one NegativeVote connected through hasVote


So I added these cardinality restrictions to the "equivalent classes":

1. In NegativeVoteResult: 

hasVote min 1 NegativeVote

this works flawlessly - after running reasoner individual's type is set to NegativeVoteResult if there is at least one NegativeVote

2. PositiveVoteResult - I cannot make this work...

I've tried

- hasVote max 0 NegativeVote
- disjunction
- other things in desperation mode...

All my tries leads at best to classify individual as Vote (the superclass) if there is no NegativeVote properties...

How can I make it to have PositiveVoteResult set properly?

Best regards,
Przemek












_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
 



--
William Frank


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J    (01)

<Prev in Thread] Current Thread [Next in Thread>