- From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
- Date: Fri, 07 May 2004 15:44:51 +0100
- To: Stephen Rhoads <rhoadsnyc@mac.com>
- Cc: www-rdf-logic@w3.org
Taking subproperties of rdf:type is not permitted in OWL DL. This design pattern may, or may not, be sensible in OWL Full. It's certainly thinkable. Jeremy Stephen Rhoads wrote: > > I realize that everyone is probably beat from that "Classes as Values" > discussion in the SWBP, but ... no thoughts on this? > > Would it be unthinkable to create a subPropertyOf rdf:type? Something > like ... > > <owl:ObjectProperty rdf:ID="hasGenre"> > <rdfs:subPropertyOf rdf:resource="&rdf;type"/> > </owl:ObjectProperty> > > <ex:Song rdf:ID="PurpleHaze"> > <ex:hasGenre rdf:resource="&ex;ClassRockMusic"/> > </ex:Song> > > Thus, the Individual "PurpleHaze" is an instance of both Song and > ClassicRockMusic. > > Note that the intent is state class membership, not to say that the > "subject" of the Song is a concept denoted by a Class (as in the > "Classes as Values" paper). > > --- Stephen > > > On Apr 24, 2004, at 4:50 PM, Stephen Rhoads wrote: > >> >> 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 Friday, 7 May 2004 10:45:15 UTC