On Nov 5, 2010, at 10:51 AM, Paulo Urbano wrote:
> Hi
>> I have a little modeling problem.
>> Imagine that I want to model musical tastes of individuals using OWL
> 2.
>> Let's say I want to list the muscial tastes of different people at
> different generalization levels: for example,
>> John likes Music
> Frida likes Rock
> Albert likes Progressive-Rock (sub-category of Rock)
> Linda likes free-jazz (sub-category of Jazz).
>>> How can I model this?
>> 1) musical categories would be classes, but then how can I have a
> property with class Person as domain (likes) whose value is a class
> and not an individuals of a class? A kind of meta range...
Well, actually putting classes into the property values would move you
out of OWL 2 DL and into OWL 2 Full. And the Protege interface
doesn't really support that. There is punning (as you note in item #2).
> 2. Musical categories would be classes, each would have only one
> individual. I could use puning to maintain the same names for
> classes and for the respective individuals. So I would have to say
> that the class Free-Jazz, would have only one individual Free-jazz
> and the class Music only one individual Music and the same for Rock
> (super-class of Progressive-Rock), etc.
Yes, you could do this. In effect you would use a canonical
individual for each of the classes and then be able to do some
reasoning about the hierarchy based on how they classify.
> 3. Any other way?
3. Instead of direct punning, you could create proxy individuals for
the classes, where you effectively move the non OWL-DL parts a bit
further away from your restrictions. This will allow certain
reasoners to work with the proxy individuals while ignoring the
connection to the classes. It does make the use of the individuals a
bit more difficult.
4. You could dispense with the individuals entirely and work just
with the descriptions and the axioms describing the restrictions. So,
for example you could say
John type (some likes Music)
Frida type (some likes Rock)
etc. You could then use things like DL query to find individuals that
satisfy the restrictions that you want. This can be a bit cumbersome
in that getting access to the details of the restrictions isn't as
easy as dealing directly with individuals and property values, but it
should be something you could reasonably encapsulate.