Search Mailing List Archives
[protege-owl] Modeling a class which is composed by two other classes (like an association class)
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
> is like an association class)
> A Producer can compose * WorkPerformance as well as the WorkUnit
> 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
> and WorkUnit and worse, it my ontology to be OWL-Full (I need it to be
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