# Tidy/untidy: that's all about assumptions, folks

From: Sergey Melnik <melnik@db.stanford.edu>
Date: Wed, 25 Sep 2002 19:00:38 +0200
Message-ID: <3D91EBB6.6050900@db.stanford.edu>
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,

: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

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:54:00 UTC