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] Modeling a class which is composed by two other classes (like an association class)

Thomas Russ tar at ISI.EDU
Fri Aug 3 16:04:00 PDT 2007

On Aug 3, 2007, at 1:49 PM, Gustavo Felhberg wrote:

> Hi everybody.
> I'm trying to model the following relation on Protege:
> There are three concepts: Producer, WorkPerformance and WorkUnit.
> WorkUnit is composed by 1 Producer and 1 WorkUnit. (This  
> WorkPerformance
> is like an association class)
> A Producer can compose * WorkPerformance as well as the WorkUnit  
> class.
> I'm modeling them like this (the relation "involves" is my composition
> relation in this case):
> The class WorkPerformance has 3 restrictions:
> involves only (WorkUnit or Producer)
> involves some Producer
> involves some WorkUnit
> (is this somehow redundant? but that's not the main point)

It's not redundant.
Each restriction expresses something different.

> The problem is that I want to constraint that a WorkPerformance is
> composed only by 1 producer AND 1 workUnit.
> If I use the restriction "involves exactly 1", it just let me add one
> Producer OR one WorkUnit.

Correct.  You don't want to say this.

> If I restrict using "involves exactly 2", it
> allows me to add 2 Producers or 2 WorkUnits.

Well, if you make sure that Producer and WorkUnit are disjoint, then  
you will have the restrictions that you need.  Although it would let  
you specify 2 WorkUnits, it would then be impossible to satisfy the  
"involves some Producer", since the cardinality restriction is  
already used up and you can't have any consistent individual that is  
both a WorkUnit and a Producer.

Note that this type of construction only works for exactly 1  
restrictions with disjoint ranges.  If you wanted 1 Producer and 2  
WorkUnits you would be out of luck.

> If I use the restrictions
> involves exactly 1 Producer
> involves exactly 1 WorkUnit
> it does not work. It continues allowing me to add more than one  
> Producer
> and WorkUnit and worse, it my ontology to be OWL-Full (I need it to be
> OWL-DL).

Well, if you insist on OWL-DL, then you also have to accept that  
there are things you won't be able to say.  That is the trade-off  
between reasoner efficiency and expressiveness.  Some things you just  
can't model in OWL-DL.

> Do anyone knows how to model it?

More information about the protege-owl mailing list