Inferring Class Membership w/o OWL Full?

Folks,

There are various parts of my (Media Publishing and Distribtuion) 
ontology where I would like to avoid the requirement of "multiple 
typing".  The objective here is to simplify the ontology and user 
interfaces which employ it.

A user of the ontology should be able to simply declare an Individual 
to be a Song, Album, Movie, MovieSeries, TelevisionProgram, 
TelevisionSeries, RadioProgram or RadioSeries.  Other important class 
membership should be inferred by property values.  A TelevisionSeries, 
for example, could have "hasSeriesType" of "SeasonalSeries" and thus be 
a member of that Class.  A Movie could have "hasGenre" of "Drama" and 
thus be a Drama.

The problem is that I can't see how to model this without landing in 
OWL Full.  Take the following example:

A sample Class hierarchy:

Music
    ElectronicMusic
    PopMusic
    RockMusic
       ClassicRockMusic
       GlamRockMusic
       GrungeRockMusic

And sample Class description:

<owl:Class rdf:ID="ClassicRockMusic">
    <rdfs:subClassOf rdf:resource="#RockMusic"/>
    <owl:equivalentClass>
       <owl:Restriction>
          <owl:onProperty rdf:resource="#hasGenre"/>
          <owl:hasValue rdf:resource="#ClassicRockMusic"/>
       </owl:Restriction>
    </owl:equivalentClass>
</owl:Class>

In other words, if the Individual (a Song or Album) hasGenre 
ClassicRockMusic, then it *is* ClassicRockMusic (or at least a member 
of a Restriction Class with the same class extension).  But (I think) 
this puts the ontology into OWL Full because ClassicRockMusic is being 
treated as both a Class and an Individual (I can confirm that Racer 
will not accept the ontology from Protege because it is "not in OWL 
DL").

Thoughts?  Solutions?

--- Stephen

Received on Saturday, 24 April 2004 16:50:37 UTC