Interpretation Use Cases for Datatyping (and Union to the rescue)

The following are a set of datatyping interpretation use
cases which  illustrate what I want to be able to get out
of the various idioms provided by the datatyping solution
and which the datatyping MT should in some manner provide for.

Hopefully these will be more useful to the remaining discussions
about datatyping than just prose ;-)

In all cases below where there is '???' in place of a datatype in the TDL
pairing, it is due to the inability to determine if the URIref in question
actually denotes an rdfs:Datatype.

Each blank-line separated use case should be taken in isolation.

--

ppp rdfs:range ddd .
xxx ppp "zzz" .
   -> TDL("zzz",???)

ppp rdfs:range ddd .
ddd rdf:type rdfs:Datatype .
xxx ppp "zzz" .
   -> TDL("zzz",ddd)

ppp rdfs:drange ddd .
xxx ppp "zzz" .
   -> TDL("zzz",ddd)

ppp rdfs:range ddd .
xxx ppp _:1 .
_:1 rdf:lform "zzz" .
   -> TDL("zzz",???)

ppp rdfs:range ddd .
ddd rdf:type rdfs:Datatype .
xxx ppp _:1 .
_:1 rdf:lform "zzz" .
   -> TDL("zzz",ddd)

ppp rdfs:drange ddd .
xxx ppp _:1 .
_:1 rdf:lform "zzz" .
   -> TDL("zzz",ddd)

xxx ppp _:1 .
_:1 rdf:lform "zzz" .
_:1 rdf:type ddd .
   -> TDL("zzz",???)

ddd rdf:type rdfs:Datatype .
xxx ppp _:1 .
_:1 rdf:lform "zzz" .
_:1 rdf:type ddd .
   -> TDL("zzz",ddd)

xxx ppp _:1 .
_:1 rdf:lform "zzz" .
_:1 rdf:dtype ddd .
   -> TDL("zzz",ddd)
{note only fully local case)

xxx ppp _:1 .
_:1 ddd "zzz" .
   -> TDL("zzz",???)

ppp rdfs:range ddd .
xxx ppp _:1 .
_:1 ddd "zzz" .
   -> TDL("zzz",???)

ppp rdfs:drange ddd .
xxx ppp _:1 .
_:1 ddd "zzz" .
   -> TDL("zzz",ddd)

ddd rdf:type rdfs:Datatype
xxx ppp _:1 .
_:1 ddd "zzz" .
   -> TDL("zzz",ddd)

--

The present DT MT in Pat's appears to account for all of the above use
cases, with the exception of the inline idiom, where there is a problem with
the range constraints, since they expect the property value to denote the
data value, not the lexical form.

The most visible difference between the inline idiom and the other idioms is
that the other idioms have an explicit bNode denoting the actual value
whereas with the inline idiom the value itself has no syntactic denotation
in the graph.

A few weeks ago I suggested (somewhat facitiously, actually, but maybe my
subconcious was being particularly clever that day ;-) that when a datatype
URI serves as a range value it should be interpreted as the union of the
value space and the lexical space of the datatype -- and in fact, as it
turns out, such an interpretation may actually solve this conflict between
the inline and bNode idioms.

The union datatype range would constrain the object of the property to be
either a literal denoting a member of the lexical space or a bNode denoting
a member of the value space, and if the latter, the set of allowable values
constrains the lexical forms which may be attached to it via rdf:lform due
to the known n-to-1 mapping from lexical forms to values, and it is always
clear how to partition the datatype range union members into lexical space
and value space from the graph syntax (literal node vs. bNode) which tells
us which is which.

This union interpretation would then allow for all of the above desired TDL
interpretation use cases without conflict of range semantics.

Eh?

Cheers,

Patrick

--
               
Patrick Stickler              Phone: +358 50 483 9453
Senior Research Scientist     Fax:   +358 7180 35409
Nokia Research Center         Email: patrick.stickler@nokia.com

Received on Saturday, 16 February 2002 07:31:56 UTC