- From: Geoff Chappell <geoff@sover.net>
- Date: Sat, 20 Jul 2002 09:36:48 -0400
- To: "pat hayes" <phayes@ai.uwf.edu>
- Cc: <www-rdf-logic@w3.org>
----- Original Message -----
From: "pat hayes" <phayes@ai.uwf.edu>
To: "Geoff Chappell" <geoff@sover.net>
Cc: <www-rdf-logic@w3.org>
Sent: Friday, July 19, 2002 5:43 PM
Subject: Re: Input sought on datatyping tradeoff
>
> >----- Original Message -----
> >From: "Brian McBride" <bwm@hplb.hpl.hp.com>
> >To: "Geoff Chappell" <geoff@sover.net>; <www-rdf-logic@w3.org>
> >Sent: Monday, July 15, 2002 4:46 PM
> >Subject: Re: Input sought on datatyping tradeoff
> >
> >
> >>
> >> 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?
> >
> >Thanks, you've answered most of my questions. I do have a remaining
> >question - let me try to restate it.
>
> Cavalry arriving late:
>
> >In the untidy world, unlike the tidy world, a literal does not have a
fixed
> >meaning. Since literals can not be subjects of statements, the only way
to
> >constrain the meaning of a literal is to attach range constraints to the
> >property to which the literal is attached
>
> Lets say yes, though there might be some subtle tricks to do it in other
ways.
>
> >(maybe not entirely true? I guess
> >in some non-XML/RDF syntax you might also be able to terminate more than
one
> >arc on a literal node). A range constraint of an rdfs class is not
> >sufficient to license an rdf processor to "know" the value to which the
> >literal refers only to constrain it to one of the members of the class. A
> >datatype constraint does provide enough information (to a processor
intimate
> >with that datatype) to actually fix the value since the datatype provides
a
> >mapping between literals and the members of the datatype class.
> >
> >I guess my remaining question boils down to what licenses an rdf
processor
> >to conclude that the literal on the object side of a datatype property is
> >referring to itself while all other literals are (potentially) referring
to
> >entities other than themselves?
>
> In the untidy option, it never can make that determination. A 'lone'
> literal in the untidy world is like a bnode with a meaningless label
> attached to it: it just says that something exists which has this as
> its lexical rendering; but until you know more about the
> lexical-to-value rules (ie the datatype) that doesn't tell you
> anything.
Sorry to beat what is probably a dead horse at this point, but...
assuming untidy, if
(1) <Jenny> <ageInYears> "10" .
(2) <ageInYears> rdfs:range xsd:decimal .
lets us infer
(3) <John> <ageInYears> _:a .
(4) _:a xsd:decimal "10" .
and given your response (as I understood it), "10" in line (4) is
meaningless without something like:
(5) <xsd:decimal > rdfs:range xsd:string .
or
(5) <xsd:decimal > rdfs:range rdfs:Literal . (assuming Literal is
redefined as a datatype that maps a literal/string to itself)
then can't we infer:
(6) _:a xsd:decimal _:b .
(7) _:b xsd:string "10" .
and then
(8) _:b xsd:string _:c .
(9) _:c xsd:string "10" .
etc, etc.?
Is (5) not needed for the model theory to do its magic? or is there a
special terminating case (i.e. _:x xsd:string "nnn" doesn't imply any
additional triples)?
--geoff
>
> In the tidy option, literals *always* denote themselves, and any
> datatyping information doesnt change that: at best, it can be used to
> fix the interpretations of some bnode suitably 'linked' to the
> literal.
>
> There are several 'hybrid' options on the table that try to get the
> best of both worlds. Brian's questions were partly designed to elicit
> intuitions which might have supported one of these. In spite of
> having invented a few of them, I now think they cause more smoke than
> light.
>
> Pat Hayes
>
>
> --
> ---------------------------------------------------------------------
> IHMC (850)434 8903 home
> 40 South Alcaniz St. (850)202 4416 office
> Pensacola, FL 32501 (850)202 4440 fax
> phayes@ai.uwf.edu
> http://www.coginst.uwf.edu/~phayes
Received on Saturday, 20 July 2002 09:07:24 UTC