- From: Sergey Melnik <melnik@db.stanford.edu>
- Date: Wed, 25 Sep 2002 19:00:38 +0200
- To: RDF Core <w3c-rdfcore-wg@w3.org>
In the heat of our argument about tidiness, we seem to be forgetting about a critical assumption that was suggested to justify untidy literals. Below, I'm questioning this assumption. If it holds, than untidy literals are a natural decision to make (and I voted for it last time), if it does not, there is no sufficient justification for introducing untidiness. What I'm arguing for is that we simply have to remove the prism we've been looking through recently, and untidiness goes away. Recall the motivating example from the RDF 1.0 Spec: foo dc:Creator "John Smith" Is "John Smith" supposed to represent a person or a string? The key argument behind untidiness is that "John Smith" (or "10") cannot possibly be meant to be a string, so it has to be something else, whose meaning can be deduced using a right bit of logic and AI. Or, consider our beaten up :x age "10" :y shoeSize "10" Again, the claim of proponents of untidiness is that "10" cannot possibly be meant to denote a string, in both cases. Why? Because we can infer :x age :z :y shoeSize :z supposedly meaning that the age of :x is the shoeSize of :y. Ok, we have datatyping now, so let's do it right: :x age int"10" :y shoeSize int"10" Now we got it! int"10" is not a string now; it's what we want it to mean: an integer. Damn. The entailment :x age :z :y shoeSize :z still holds... Is there something wrong with the above modeling practice? Should int"10" itself be considered untidy, like those untyped literals? Are all those folks who chose the above modeling style dumb? NO, they are not. Above, the properties age and shoeSize are merely used to restrict the valid interpretations of :x and :y. There is no claim that shoeSize is a property that holds between shoes and "shoe sizes". It's a property that holds between shoes and integers, thereby restricting the intepretation of :y. Just as well, shoeSize could be defined as a property that holds between shoes and strings/reals/etc. An overwhelming majority of applications use exactly this metaphor. For example, look at the AdobeXMP documentation, where the range of xapDynA:Volume is defined to be a Real. Did those folks want to assert that the abstract concept of volume coincides with real numbers? No. Or, what about CC/PP's :x displayWidth int"640" ? After all, display width is not measured in integers, but in inches or centimeters... My conclusion is that it is not necessary to claim that "John Smith" represents a person (and call for untidy literals), in order to achieve correct modeling. And, by no means have applications and APIs to be changed to reflect this "insight". The applications, and their developers, possess a consistent conceptual model of what dc:Creator or age or shoeSize mean. These apps run just fine. For the lack of conceptual necessity of "thinking untidy" I'm suggesting: don't touch running systems. Sergey
Received on Wednesday, 25 September 2002 13:00:40 UTC