- From: Brian McBride <bwm@hplb.hpl.hp.com>
- Date: Mon, 30 Sep 2002 11:33:48 +0100
- To: RDF Core <w3c-rdfcore-wg@w3.org>
Here is a writeup of the problem and the desiderata. We've spent a lot of time banging heads on whether tidy or untidy is to be preferred. Please could we take a little time to take a fresh look at what we are trying to accomplish and see whether there might be another solution which would give more of what we want than either tidy or untidy. I note that the main concerns I've seen so far from the untidy camp are: o redundancy of specifying datatype on every element o easily adding datatype info to old data Long range datatyping is a solution to meet those needs. Perhaps they can be met in another way that is compatible with the tidy entailment. Brian The Issue ========= Given the following RDF/XML <rdf:Description rdf:about="Jenny"> <foo:age>10</foo:age> </rdf:Description> <rdf:Description rdf:about="John"> <foo:age>10</foo:age> </rdf:Description> Do Jenny and John have the same age? It may appear obvious that they do. But consider a similar example: <rdf:Description rdf:about="Jenny"> <foo:age>10</foo:age> </rdf:Description> <rdf:Description rdf:about="Film"> <foo:title>10</foo:title> </rdf:Description> Though the title of the film and the age of Jenny are both written as an rdf literal "10", it can be argued that the meaning of the statement about Jenny's age is that her age is the integer 10, and the meaning of the statement about the title of the film is that it is the string of characters "10". If that is what they mean then the age of Jenny is not the same as the title of the film. The formal definition of this question is whether, given the second of the RDF fragments above, entails (implies) the following (expressed in n-triples): <jenny> foo:age _:l . <film> foo:title _:l . Desiderata ========== This is an issue that requires a judgement between different options. The WG has not found a solution to satisfy all desirable features. Rather than trying to state precise requirements it is better to define the considerations that bear on that judgement. General ------- GD01: Inline literals - @@clarify what this means GD02: Interoperability [Ed note: I've added that one in the light Patrick's proposal to say nothing] Use --- UD01: Verbosity of expressing datatyped literals in the RDF/XML syntax. [Note eventually rdf/xml will be written by tools, but for bootstrapping, users see it] UD02: CC/PP schema should not have to change UD03: Support from RDF customers including daml/webont, rss, cc/pp, dublin core, Adobe XMP, DMOZ, mozilla and Jena. UD04: the ability to put, in a schema, constraints on the *lexical form* of values (gravy, not requirement) UD05: It should be easy to update legacy data with datatype information UD06: Must be able to merge duplicate statements with the same literal value as object (when there is an applicable range constraint and when there is not) UD07: Minimize the number of nodes and arcs to represent a datatype value (scalability) UD08: Support xml schema datatypes UD09: Need mechanism to enable queries based on datatype values (before, after, during re dates; lessthan, gtr than) UD10: Global type inference - this is a solution - need to figure out the need UD11: Backward compatibility for existing data and specs (dc, cc/pp, rss) UD12: Capture as much of the information as possible in the RDF (e.g. if its an integer, RDF should know its an integer) UD13: It should be easy to explain to users. Implementation -------------- ID01: Minimize burden on implementors ID02: Monotonic and sound model theory. Complete inference is not required. ID03: Convincing evidence that the solution is implementable ID04: Do not require implementations to maintain a hash table of literals. UD05: not have to keep track of each different occurrence of some literal UD06: Backward compatibility: existing implementations and applications should be able to upgrade in a backward compatible way Process ------- PD01: Speed - the WG needs to finish soon Other ----- OD01: an endorsement of the practice of using datatype properties, i.e. [ xsdt:date "2002-09-23"]. (gravy, not a requirement)
Received on Monday, 30 September 2002 06:36:36 UTC