- From: Khalid Latif <klatif@beaconet.net>
- Date: Tue, 21 Jun 2005 15:40:43 +0200
- To: <semantic-web@w3.org>
What is the better way of extending (and modifying) properties inherited from the super class? To elaborate my question I present a scenario. Think of a "Person" and "Document" as sub-class of "Entity". Two entities could have associations between each other, being the source and target, modeled as below: <owl:Class rdf:ID="Entity"/> <owl:Class rdf:ID="#Document"> <rdfs:subClassOf rdf:resource="#Entity"/> </owl:Class> <owl:Class rdf:ID="Person"> <rdfs:subClassOf rdf:resource="#Entity"/> </owl:Class> <owl:Class rdf:ID="Association"/> <owl:ObjectProperty rdf:ID="source"> <rdfs:range rdf:resource="#Entity"/> <rdfs:domain rdf:resource="#Association"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="target"> <rdfs:range rdf:resource="#Entity"/> <rdfs:domain rdf:resource="#Association"/> </owl:ObjectProperty> So far so simple, and now the problem! What if I want to have a special case for association, Authorship, which says the "source" property MUST only be "Person" instead of any "Entity" <owl:Class rdf:ID="Author"> <rdfs:subClassOf rdf:resource="#Association"/> </owl:Class> How to modify the property "source" for "Author" to have "Person" in its "range" so that it doesn't effect the previous general case? Khalid
Received on Wednesday, 22 June 2005 01:30:32 UTC