Re: Extending properties in sub-class

Khalid,

The owl:Restriction is useful for instances like this.  I would suggest:

<owl:Class rdf:ID="Author">
	<rdfs:subClassOf rdf:resource="#Association" />
	<rdfs:subClassOf>
		<owl:Restriction>
			<owl:onProperty rdf:resource="#source />
			<owl:allValuesFrom rdf:resource="#Person />
		</owl:Restriction>
	</rdfs:subClassOf>
</owl:Class>

Have a nice day,
Jonathan

On 6/21/05, Khalid Latif <klatif@beaconet.net> wrote:
> 
> 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
> 
> 
> 
> 


-- 
Jonathan M. Brinley

jonathanbrinley@gmail.com
http://purl.org/net/brinley

Received on Wednesday, 22 June 2005 13:35:05 UTC