- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Fri, 19 Jul 2002 18:21:22 -0400 (EDT)
- To: www-rdf-logic@w3.org
[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