Re: Dataypes, literals, syntax

   [Jonathan Borden]
   >>  Why not:
   >>
   >>  <rdf:Description rdf:about="foo://bar">
   >>      <ex:property xsi:type="xsd:integer">10</ex:property>
   >>  </rdf:Description>
   >>
   >>  being defined to parse to:
   >>
   >  > <foo://bar> ex:property xsd:integer"10" .

  
   [Peter Patel-Schneider]
   >This has been proposed several times, by several people, including myself,
   >most recently in
   >   http://lists.w3.org/Archives/Public/www-rdf-comments/2002JulSep/0024.html
   >The RDF Core WG has, for some reason, chosen not to accept this in any
   >guise, even as part of a datatyping facility for RDF.

   [Pat Hayes]
   One reason is that (as far as I can see; correct me if Im wrong here) 
   this proposal does not allow non-datatyped literals. That (very 
   strong) constraint seems unacceptable for RDF and would clash with 
   established usage. 

Yes, I think you would need to adopt a "grandfather" clause that said
that all untyped literals should be interpreted as strings.  That
would probably work as well as the current system (if you can call it
a system).

   In a related criticism, it does not (again, please 
   correct) allow for 'remote' datatyping, where the association of a 
   datatype with a property range imposes a datatype interpretation on 
   uses of the property in other statements.

Could you give an example of remote datatyping?  Is Test Case D an
example: 

   <Jenny>      <ageInYears> "10" .
   <ageInYears> rdfs:range xsd:decimal .

If so, I agree there is a problem here, but perhaps one could think of
it as a problem in type inference.  If the first triple had been

   <Jenny>  <ageInYears>  xsd:string"10"

then we can infer that the range of <ageInYears> must include strings.
The second triple then contradicts that inference.  Under my
grandfather clause, "10" would be interpreted as a string by default.
Hence any RDF processor should complain if it sees the triple stating
Jenny's age before it sees the triple stating the range of
<ageInYears>.  (Okay, this violates the principle that a triple's
meaning is independent of context.  I would make an exception for type
declarations.) 

   As an example of a problematic inference, consider whether

   <foo://bar> ex:property xsd:integer"10" .
   <foo://baz> ex:property xsd:octal"12" .

   should or should not entail

   <foo://bar> ex:property _:xxx .
   <foo://baz> ex:property _:xxx .

   and how this could be detected by a reasoner.

What's the problem?  All the reasoner has to do is realize that
xsd:integer"10" and xsd:octal"12" are the same object.  (Assuming
"integer" means "decimal integer.")  That requires the reasoner to
understand the literal formats 'xsd:integer' and 'xsd:octal', which
presumably all reasoners would.

I suppose there are other cases where two data couldn't be compared
(e.g., two literals describing Turing machines), but they should be
rare. 

                                             -- Drew McDermott

Received on Friday, 19 July 2002 18:21:30 UTC