W3C home > Mailing lists > Public > semantic-web@w3.org > March 2005

RE: true/false in RDF?

From: Joshua Allen <joshuaa@microsoft.com>
Date: Mon, 14 Mar 2005 09:05:43 -0800
Message-ID: <0E36FD96D96FCA4AA8E8F2D199320E520483FC63@RED-MSG-43.redmond.corp.microsoft.com>
To: "Jeremy Wong" <wong@miko.com.hk>, <semantic-web@w3.org>
No, this is not the case.  You can define a value space for the predicate regardless of whether the value is literal or URI.

 

Furthermore, the problem of owl:sameAs applies equally to your example.  There is nothing stopping someone from declaring a new RDFS literal type that does literal “true” and “false”, and you would be forced to infer.  Besides, it’s not too smart to design your data based on a hypothetically poor implementation.

 

IMO, the idea of a “predefined value space” is antithetical to semantic web.  It is useful for prepopulating forms, doing data entry validations, and so on - but these are all *local* and should not be propagated to the web as a whole.  It destroys breadth-scale interop, and means that the only people who interop are people who share the exact same RDFS schema.  Suddenly RDF becomes no better than CORBA or XSD.

 

________________________________

From: Jeremy Wong [mailto:jeremy@miko.hk] 
Sent: Sunday, March 13, 2005 10:11 PM
To: Joshua Allen; semantic-web@w3.org
Subject: Re: true/false in RDF?

 

In my opinion, the advantage of using typed literal is its predefined value-space which is better known. If you use an object value, you'll need to define its class extension, i.e. the value space. Other people need to learn your object value.

 

Since many content provider may use a boolean value, using an object value rather than a data value may induce performance problem. Consider if there are some resources having the same meaning as your true object, "http://xmlns.com/wordnet/1.6/true <http://xmlns.com/wordnet/1.6/true> ", then we shall have some owl:sameAs statements...

 

R1 owl:sameAs http://xmlns.com/wordnet/1.6/true <http://xmlns.com/wordnet/1.6/true> 

R2 owl:sameAs http://xmlns.com/wordnet/1.6/true <http://xmlns.com/wordnet/1.6/true> 

...

Rn owl:sameAs http://xmlns.com/wordnet/1.6/true <http://xmlns.com/wordnet/1.6/true> 

 

A simple implementation of owl:sameAs inference is to duplicate statements, i.e. if we have one statement..

 

http://foobar/page.html P1 http://xmlns.com/wordnet/1.6/true <http://xmlns.com/wordnet/1.6/true> 

 

Then n more statements will be generated...

 

http://foobar/page.html P1 R1

http://foobar/page.html P1 R2

...

http://foobar/page.html P1 Rn

 

It would consume very huge memory space and even computation power. The rate of expansion is about n^2.

 

 

Jeremy

 

----- Original Message ----- 

	寄件者: Joshua Allen <mailto:joshuaa@microsoft.com>  

	收件者: Jeremy Wong <mailto:jeremy@miko.hk>  ; semantic-web@w3.org 

	傳送日期: Monday, 14 March, 2005 13:48

	主旨: RE: true/false in RDF?

	 

	Yeah, that’s what I intended to express with my first example - if you use a literal, the literal is absolutely meaningless without type information.

	 

	Why not just use URIs which mean “true” and “false” and do away with typing?  The only advantages I can see for typing are imaginary (compile time/run-time checks?!?!) and the disadvantage is real.

	 

	
________________________________


	From: Jeremy Wong [mailto:jeremy@miko.hk] 
	Sent: Sunday, March 13, 2005 9:35 PM
	To: Joshua Allen; semantic-web@w3.org
	Subject: Re: true/false in RDF?

	 

	I am not too familar with N3 notation about datatype, therefore I provide my example in RDF/XML

	 

	<rdf:Description rdf:about="http://foobar/page.html" xmlns:myterms="urn:myterms">

	  <myterms:isCached rdf:datatype="http://www.w3.org/TR/XMLSchema#boolean">true</myterms:isCached>

	</rdf:Description>

	 

	We have typed literal already. Why do you still consider object value?

	 

	 

	Jeremy

		----- Original Message ----- 

		From: Joshua Allen <mailto:joshuaa@microsoft.com>  

		To: semantic-web@w3.org 

		Sent: Monday, March 14, 2005 12:16 PM

		Subject: true/false in RDF?

		 

		I’ve decided that I want to use URI object values for my Boolean triples, rather than the literals “true/false”.  In other words, instead of:

		 

		http://foobar/page.html  urn:myterms:isCached   “true”

		 

		I want to use:

		 

		http://foobar/page.html  urn:myterms:isCached   http://xmlns.com/wordnet/1.6/true

		 

		I can find zero examples of the latter; only the former.  But I think the latter is right.  Why am I wrong?
Received on Monday, 14 March 2005 17:05:46 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:41:45 UTC