Re: Properties in OWL

Hi,
I think this is an issue of great importance.I've a question 
now.rdf:Property is an instance of rdfs:Class.
From RDFS specification,we know that "The rdfs:domain of rdfs:subClassOf is 
rdfs:Class. The rdfs:range of rdfs:subClassOf is rdfs:Class."
Then why we can not use rdfs:subClassOf in definition of a Property.
In order to express my idea more concretely,I've a sample here.I want to 
model a fact that People Love People,and the Love is a complex property
with its own property.My OWL description is as follows.I'm looking forward 
to your comments and feedbacks that if it's right.:-),or what's wrong?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wme [
     <!ENTITY rdf  "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
     <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
     <!ENTITY xsd  "http://www.w3.org/2001/XMLSchema#" >
     <!ENTITY owl  "http://www.w3.org/2002/07/owl#" >
     <!ENTITY love  "http://love.net/#" >
   ]>
<rdf:RDF
  xmlns     ="&love;"
  xmlns:owl ="&owl;"
  xml:base  ="http://love.net"
  xmlns:rdf ="&rdf;"
  xmlns:rdfs="&rdfs;"
>
	<owl:Ontology>
		<rdfs:comment>
			People Love People
			Author: Guo Tong Xie  
			Date:15/12,2003                                 
		</rdfs:comment>
		<owl:imports rdf:resource="http://www.w3.org/2002/07/owl" />
	</owl:Ontology>

	<owl:Class rdf:ID="People">
		<rdfs:comment>
			A kind of animal.			
		</rdfs:comment>
		<rdfs:subClassOf>
			<owl:Restriction>
				<owl:onProperty rdf:resource="#Love"/>
				<owl:minCardinality 
rdf:datatype="&xsd;nonNegativeInteger">0</owl:minCardinality>
			</owl:Restriction>
		</rdfs:subClassOf>
	</owl:Class>
	
	<owl:ObjectProperty rdf:ID="Love">
		<rdf:type rdf:resource="&owl;SymmetricProperty"/>
		<rdfs:domain rdf:resource="#People"/>
		<rdfs:range rdf:resource="#People"/>
		<rdfs:subClassOf>
			<owl:Restriction>
				<owl:onProperty rdf:resource="#hasRelationship"/>
				<owl:minCardinality 
rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
				<owl:maxCardinality 
rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
			</owl:Restriction>
		</rdfs:subClassOf>
	</owl:ObjectProperty>	
	
	<owl:ObjectProperty rdf:ID="hasRelationship">
		<rdfs:domain rdf:resource="#Love"/>
		<rdfs:range rdf:resource="#LoveType"/>
	</owl:ObjectProperty>	
	
	<owl:Class rdf:ID="LoveType">
		<rdfs:comment>
			type of love			
		</rdfs:comment>
		<owl:oneOf rdf:parseType="Collection">
			<owl:Thing rdf:about="Lover"/>
			<owl:Thing rdf:about="Friend"/>
			<owl:Thing rdf:about="Family"/>
			<owl:Thing rdf:about="Enemy"/>
		</owl:oneOf>
	</owl:Class>
	
	<People rdf:ID="Tom">
		<Love rdf:resource="#Jerry">
			<hasRelationship rdf:resource="#Enemy"/>
		</Love>
	</People>
	
	<People rdf:ID="Jerry"/>

</rdf:RDF>
-------------------------------------------------------
Properties of properties are allowed in OWL Full.

In OWL DL classes and properties are disjoint, so you cannot express the 
notion of a UML association class directly. A well-known workaround is 
to define  an intermediate class, e.g. in the case of your problem a 
"Quantity" class with a value and a unit property. See the measurement 
example in Sec. 5.1 in OWL Reference [1].

Hope this helps,
Guus

[1] http://www.w3.org/TR/owl-ref/

_________________________________________________________________
享用世界上最大的电子邮件系统— MSN Hotmail。  http://www.hotmail.com  

Received on Monday, 15 December 2003 20:41:11 UTC