W3C home > Mailing lists > Public > www-rdf-interest@w3.org > November 2001

Domain/Range: conjuntion or disjuntion??

From: <tarod@softhome.net>
Date: Wed, 21 Nov 2001 09:19:41 GMT
Message-ID: <20011121091941.11624.qmail@softhome.net>
To: brian_mcbride@hp.com
Cc: www-rdf-interest@w3.org, jena-dev@yahoogroups.com

  Hello Brian,

  let me try to convince you again, about the loss of expresivity
   
  with the disjuntion of ranges or domains

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
	<rdfs:Class rdf:about="http://some.com#Vehicle"/>
	<rdfs:Class rdf:about="http://some.com#Person"/>
	<rdfs:Class rdf:about="http://some.com#Car">
		<rdfs:subClassOf rdf:resource="http://some.com#Vehicle"/>
	</rdfs:Class>
	<rdfs:Class rdf:about="http://some.com#MotorCycle">
		<rdfs:subClassOf rdf:resource="http://some.com#Vehicle"/>
	</rdfs:Class>
	<!-- 1 -->
	<rdf:Property rdf:about="http://some.com#owns">
		<rdfs:domain rdf:resource="http://some.com#Person"/>
		<rdfs:range rdf:resource="http://some.com#Car"/>
		<rdfs:range rdf:resource="http://some.com#MotorCycle"/>
	</rdf:Property>
	<rdf:Property rdf:about="http://some.com#register">
		<rdfs:domain rdf:resource="http://some.com#Car"/>
		<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Number"/>
	</rdf:Property>
	<rdf:Property rdf:about="http://some.com#carIdentification">
		<rdfs:domain rdf:resource="http://some.com#MotorCycle"/>
		<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Number"/>
	</rdf:Property>
</rdf:RDF>

  So, I say that a person has a car or a motorcycle, or both or them, ok? 
  
  I will be able to have an isntance like that

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:com="http://some.com#">  
	<com:Person rdf:ID="me">
		<com:owns rdf:resource="#mercedes"/> <!-- I wish :) -->
	</com:Person>
	<com:Car rdf:ID="mercedes">
		<com:carIdentification rdf:resource="#mm"/>
	</com:Car>
	<rdfs:Number rdf:ID="mm" rdfs:value="0001"/>
</rdf:RDF>  

  With the new model I should change 1 for 
	<rdf:Property rdf:about="http://some.com#owns">
		<rdfs:domain rdf:resource="http://some.com#Person"/>
		<rdfs:range rdf:resource="http://some.com#Vehicle"/>
	</rdf:Property>
  
  And I will be able to have some instance like that

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:com="http://some.com#">  
	<com:Person rdf:ID="me">
		<com:owns rdf:resource="#vehicle"/> <!-- I wish :) -->
	</com:Person>
	<com:Vehicle rdf:ID="vehicle"/>
</rdf:RDF>  
  
  So, I will be able to have an instance of Vehicle that is not instance of
Car or MotorCycle. That's not what I had in the old way.
  
  However, the new decision doesn't add any new feature to the model.
  
  With the old model, If I wanted to say that a property has as range a
class that must be a Car and a MotorCycle I could add to the schema.
	<rdfs:Class rdf:about="http://some.com#CarsAndMotos">
		<rdfs:subClassOf rdf:resource="http://some.com#Car"/>
		<rdfs:subClassOf rdf:resource="http://some.com#MotorCycle"/>
	</rdfs:Class>
  and change 1 for	
	<rdf:Property rdf:about="http://some.com#owns">
		<rdfs:domain rdf:resource="http://some.com#Person"/>
		<rdfs:range rdf:resource="http://some.com#CarsAndMotos"/>
	</rdf:Property>
	
  now I can only have CarsAndMotos as range of the property own and because

  SubClass(CarsAndMotos, Car) and SubClass(CarsAndMotos, MotorCycle);
  Range(own, CarsAndMotos);

  Range(x, y) and SubClass(z, y) -> Range(x, z);
  
  Range(own, Car) and Range(own, MotorCycle) !!!!!! THAT's what you wanted,
isn't it?

  all CarsAndMotos will be Cars and MotorCycles and will have their
properties.
  
  
  We don't gain anything with the conjuntion view but we lose some
expresivity.
  
  Thanks,
        Marc
Received on Wednesday, 21 November 2001 04:54:17 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:52 GMT