RE: decision time: semantics of non-datatyped literals

>
> I note that all of the implementations of RDF with which I am
> familiar have
> implemented M&S with the assumption that literals have string semantics,
> i.e. literal("foo").equals(literal("foo")).
>
I read M&S as merely articulating syntactic facts, and hence reflecting a
syntactically tidy graph; this does not preclude semantic untidiness.

I prefer the option of "not deciding".
I could live with any of the options.

Syntactically tidy, (possibly) value based semantics, and valentines day MT.
For details see below.
(Or,
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Sep/0086.html
)

PROS:
  - does not require changes to preexisting implementations: equals is taken
as syntactic
  - does not preclude the "10" in <Jenny> <age> "10" from meaning the
integer ten.
  - could support rdfs:range="xsd:int" construction
  - could support tidiness
  - does not fly in the face of the community feedback.

CONS:
  - somewhat contorted (the divergence between syntax and semantics may
confuse)
  - stresses further the separation of the abstract graph syntax (the Model
in M&S) and the interpretation (the Model in the MT) [we already have this
with our decision on datatypes of last Friday, see below for example]



Specifically:
- the graph is syntactically tidy
- the interpretation of a typed literal is given by its datatype
- the interpretation of a triple with an untyped literal has an extra level
of indirection (semantically untidy, the interpretation of the literal in
the triple depends on the property, and maybe the subject too)
- otherwise, and in general terms, the model thoery follows the valentines
day approach, which does not permit bnodes to match literals in entailments,
and hence the decisive questions cannot be asked.


As an implementator I would expect to implement two equivalence
relationships over graph nodes. equals() would reflect syntactic equality,
and sameValueAs() would reflect semantic equality:

e.g.

       not equals( literal("<xsd:int>010"), literal("<xsd:decimal>10.0") )

but
       sameValueAs( literal("<xsd:int>010"), literal("<xsd:decimal>10.0") )

and
       n = literal("untyped")
       equals( n, n )
but
       not sameValueAs( n, n )

(I might prefer not to have sameValueAs defined over literal nodes, but only
over triples).


This does not require implementations to change; clarifies how to implement
RDFS; is somewhat contorted; and is a bit of a fudge.

A modification to this, would be to explicitly support [p rdfs:range
<datatype>] in it, in which case it is untidy. My weak preference is to not
require that there are any literals which do not have tidy semantics. (i.e.
exactly the valentines day mt position; the machinery of untidiness is
presented, but no commitment to actually use it!)

Jeremy


PS: At the Bristol F2F Guha talked about the mapping of the literal node
depending on either:
 - only the literal
 - the literal and the property
 - the literal, the property and the subject

I can't remember whether any crucial showstoppers were identified to any of
these. I remember that rdf:object was a little disappointing with the middle
one. (And I think only the last made me feel alright about dc:Creator, but
then I'm out on limb with dc).

Received on Tuesday, 17 September 2002 09:43:26 UTC