W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > October 2002

Re: email straw poll: literal semantics proposals

From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
Date: Wed, 09 Oct 2002 16:58:19 +0100
Message-ID: <3DA4521B.2040801@hpl.hp.com>
To: Brian McBride <bwm@hplb.hpl.hp.com>
CC: RDF Core <w3c-rdfcore-wg@w3.org>


Sorry for the delayed response. I have not managed to discuss the format 
proposal with the HP community, so I am guessing on that one.
I will try to have a more solid opinion by the telecon.
I also have done some work on Jena2 that I have not communicated with 
the Jena team yet that has impacted the F score (downwards).

I have deliberately given nothing a 5, if we want a good datatyping 
solution I think we shouldn't start from here (i.e. RDF M&S).




> Proposal B:

1?

> 
> Proposal C:

3  (but C+B is 0)

> 
> Proposal D:

4

> 
> Proposal F:
> 

2?

Comments
========
B+C together would be hard to explain and hard to implement because 
users and APIs would both get confused (IMO) between the lexical space 
and the value space - for both pedagogical and API cleanliness it is 
necessary to have a consistent philosophy which should be either lexical 
or value space.


My assessment of how difficult untidy semantics would be in Jena2 has 
gone up recently, which is why my endorsement of F is lower than 
previous indications. The problem being that:
- Jena users are likely to find it difficult if two literals with the 
same label (and no other information) are not Java equals()
but
- normal usage in Java suggests that two objects that are equal can 
mostly be used interchangeably, which cannot be supported with untidy 
semantics.

e.g.

   Node a = Node.createLiteral("foo");
   Node b = Node.createLiteral("foo");
   if ( a.equals(b) ) {
     System.err.println("a = b");
   }
   Triple t = new Triple(subj,pred, a);
   if ( t.hasObject(a) ) {
      System.err.println("a is the object of t");
   } else {
      System.err.println("a is not the object of t");
   }
   if ( t.hasObject(b) ) {
      System.err.println("b is the object of t");
   } else {
      System.err.println("b is not the object of t");
   }

would print out

a = b
a is the object of t
b is not the object of t
Received on Wednesday, 9 October 2002 11:55:28 EDT

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:52:23 EDT