- From: Graham Klyne <GK@NineByNine.org>
- Date: Thu, 10 Jan 2002 21:57:33 +0000
- To: Patrick Stickler <patrick.stickler@nokia.com>
- Cc: RDF Core <w3c-rdfcore-wg@w3.org>, Sergey Melnik <melnik@db.stanford.edu>
Patrick, I'm going to focus on your examples, because they stand the best chance of bringing us to some kind of common understanding... NOTE: for those who are not following this exchange in detail, this message suggests a possible formal interpretation for rdf:value. At 05:56 PM 1/10/02 +0200, Patrick Stickler wrote: >If you mean allowing literal nodes to be subjects, per P+, then I >fully agree. But certainly the D idiom is far easier to contract >to an eventual P+ representation when that time comes. I.e. going >to P+ > > Bob ex:age _:1:"30" . > _:1 rdf:type xsd:integer . > >from D > > Bob ex:age _:1 . > _:1 rdf:value "30" . (simnply move to anon-node label) > _:1 rdf:type xsd:integer . > >is far more straightforward than from S Well, the first of those could be pure S (if literal subjects are allowed): xsd:integer would be understood to be a class containing the lexical space of integers. And the second of those is entirely consistent with S if we also allow a very simple definition of rdf:value to be understood; i.e. that it is the identity predicate. Thus: FORALL v: <v,v> in IEXT(I(rdf:value)) (The rdf:value relational extension could be limited to literal strings, but why bother?) > Bob ex:age _:1 . > _:1 xsd:integer.map "30" . > xsd:integer.map rdfs:range xsd:integer.lex . > xsd:integer.map rdfs:domain xsd:integer.val . Well, I think that for "ordinary" use, it wouldn't be necessary to include the rdfs:range and rdfs:domain statements; i.e. just say: Bob ex:age _:1 . _:1 xsd:integer.map "30" . Since, at some level, the meaning of xsd:integer.map must be understood, ex-RDF, by communicating applications. (Just as the meaning of xsd:integer must be understood in your example.) The purpose of including range/domain statements in the examples I gave previously was to make the equivalence between the different idioms explicit in the RDF. For example, this: Bob ex:age _:1 . _:1 xsd:integer.map "30" . xsd:integer.map rdfs:domain xsd:integer.val . RDFS-entails this: _:1 rdf:type xsd:integer.val . without needing to refer to any special understanding of xsd:integer.map or xsd:integer.val. >and presumably > > xsd:integer.lex rdf:type s:LexicalSpace . > xsd:integer.val rdf:type s:ValueSpace . > xsd:integer.map rdf:type s:Mapping . > xsd:integer.cmap rdf:type s:CanonicalMapping . > xsd:integer s:lexicalSpace xsd:integer.lex . > xsd:integer s:valueSpace xsd:integer.val . > xsd:integer s:mapping xsd:integer.map . > xsd:integer s:canonicalMapping xsd:integer.cmap . > >and we still haven't actually said anything about >the data type xsd:integer itself, but have to "know" >about how to parse the special names and remove the >'.lex', '.val', and '.map' suffixes. Whoa!! Who said anything about having to *parse* the special names? I see them as just a convention for introducing datatype names so that the discussion is easier to follow. *Any* name could be used, as long as a common meaning is understood by applications that exchange information. So some name has to be picked. As for all the "extra" statements that you list: these are just some relationships between the datatype-related names that *can* be expressed in RDF if required, not additional mechanism that *must* be employed. The value of these are that they allow RDFS-entailments between the various data typing idioms that have been used. >And again, with S we get into the fun stuff with the >ability to say > > Bob ex:age "30" . > ex:age rdfs:subPropertyOf xsd:integer.map . > >which given the above range and domain statements >thereby declares Bob to be an instance of >xsd:integer.val, etc. etc. Yes, and I don't believe that any useful solution to the data typing issue can prevent people from making statements with silly consequences - i.e. that don't correspond to our understanding of reality. As more expressive constructs are layered on RDF that allow us to more fully describe our understanding of reality, such statements will likely result in contradictions in the knowledge base; as we know, basic RDF isn't expressive enough to express contradictions, but that doesn't mean it's not capable of expressing things with silly interpretations. > >From what I have understood, none of P, P+, D, or U make literals >anything other than they are as defined in the Dec14 draft of the MT. Well, P has the denotation of a literal-labelled graph node be in the datatype value space, and further allows that different graph nodes labeled with the same literal may denote different values. That is a fair amount of extra complexity in the model theory. Anyway, my point of focusing on your examples was to illustrate that, in terms of RDF usage, the various idioms discussed are not so dissimilar in what they express. Further, the choice of S as a basis does not preclude the idiom you appear to prefer. (I think much of the complexity you see in S is a misunderstanding of its basic approach, which is very simply to say that the denotation of a literal-labelled node is the literal label value, and RDF itself is used as required to describe nodes that denote the corresponding value.) The proposals differ more fundamentally in the model-theoretic treatment of the denotation of literal-labelled nodes, and here S has a clear virtue of simplicity. #g -------------------------- __ /\ \ Graham Klyne / \ \ (GK@ACM.ORG) / /\ \ \ / / /\ \ \ / / /__\_\ \ / / /________\ \/___________/
Received on Thursday, 10 January 2002 18:33:33 UTC