W3C home > Mailing lists > Public > www-rdf-logic@w3.org > July 2002

Re: Input sought on datatyping tradeoff

From: Brian McBride <bwm@hplb.hpl.hp.com>
Date: Mon, 15 Jul 2002 21:46:18 +0100
Message-Id: <5.1.0.14.0.20020715213530.04a38658@0-mail-1.hpl.hp.com>
To: "Geoff Chappell" <geoff@sover.net>, <www-rdf-logic@w3.org>

At 09:20 15/07/2002 -0400, Geoff Chappell wrote:

>I have a question about datatyping used with untidy literals. Given test
>case D:
>
>Test D:
>
>    <Jenny>      <ageInYears> "10" .
>    <ageInYears> rdfs:range xsd:decimal .
>
>    <John>  <ageInYears>   _:a .
>    _:a     xsdr:decimal   "10" .
>
>
>My understanding is that in a world of untidy literals, literals are
>(potentially) ambiguous names. Not only can many literals refer to one
>thing, but the same literal can refer to many things (as opposed to uris
>which are supposedly unambiguous names - i.e. a uri can only identify one
>thing though many uris could refer to the same thing). With this
>understanding a datatype identifies by uri a black-box that performs name
>resolution - i.e. the datatype is able to functionally identify a
>thing/object/value based solely upon its
>(potentially-ambiguous-wrt-the-world-at-large-but-not-wrt-the-datatype)
>name. A datatype has a set of names that it is able to resolve and a
>corresponding set of things/values.  The members of the datatype class (when
>the datatype is used as a class) are simply the things/values it is able to
>resolve names to.

That is a pretty good summary.  I think you have that right, though there 
was one place  where I wanted to wordsmith a bit, and there are others 
where the logicians might.  But those would be to picky for our purpose 
here, I think.


>But what specifically is the meaning of the datatype when used as a
>property?

Associated with the datatype is a property extension which consists of a 
set of pairs, e.g.

   { (1, "1"), (2, "2"), ... }

This is the way the current model theory works, so there is nothing special 
in this aspect about datatype properties.

>Clearly in test D above the first "10" is meant to denote the
>decimal value 10, as is node _:a. But what does the second "10" (the object
>of xsdr:decimal) denote?

Ignoring complexities referred to by Peter for now, the second "10" denotes 
a string.
We know its a string because we know xsdr:decimal is a datatype property 
and all datatype properties take strings as their values.

I may be glossing over some technical details here, but this is the basic idea.

>  One possibility is that it is also the decimal 10.
>Then a datatype used as a property states the equality under the datatype of
>the subject and object (which would be enough in this instance for a
>datatype-aware processor to figure out that _:a denotes the decimal 10).
>Another possibility might be that it is referring to the name itself (which
>I guess would make use of a datatype property some sort of a quoting
>mechanism?). But if that is the case, how is the rdf processor to know that?

Somewhere we have an assertion which I didn't show:

   xsd:decimal rdf:type rdfd:datatype .

>what range constraint on the datatype property would indicate that? just
>rdfs:Literal? does rdfs:Literal become a "built-in" datatype that maps
>string values to themselves? (I often confuse myself here because in the
>whole discussion of tidyness vs untidyness I understand the term "literal"
>as used to talk about the name/label of the graph node while "rdfs:Literal"
>obviously is referring to the type of the value - little difference I guess
>in the world of tidy literals).

Just so.

Have I done enough to convince you this is possible, or do I need to call 
in the cavalry?

Brian
Received on Monday, 15 July 2002 16:47:22 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:42 GMT