- From: <Patrick.Stickler@nokia.com>
- Date: Wed, 7 Nov 2001 13:27:37 +0200
- To: bwm@hplb.hpl.hp.com, w3c-rdfcore-wg@w3.org
Will try. Patrick > -----Original Message----- > From: ext Brian McBride [mailto:bwm@hplb.hpl.hp.com] > Sent: 07 November, 2001 13:06 > To: rdf core > Subject: Post format > > > I note that the copy of the post in the archive: > > > http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Nov/0184.html > > is not the same as the version I received in my inbox. The > archive version has > lost some of the "this was copied from a previous message" > structure. I suspect > this may be due to the origninal post being in HTML or some such. > > Could folks please stick to using plain text. Its kinda old > fashioned, but it > works. > > Brian > > > Patrick.Stickler@nokia.com wrote: > > > > > > > -----Original Message----- > > From: ext Pat Hayes [mailto:phayes@ai.uwf.edu] > > Sent: 07 November, 2001 04:39 > > To: Stickler Patrick (NRC/Tampere) > > Cc: w3c-rdfcore-wg@w3.org > > Subject: RE: Subject literals > > > >> > Right. YOu need to extend the Ntriples notation > slightly to be able > >> > to fully capture the structures that can be built. > One proposal > >> > (still not adopted) is to allow nodeIds (the new > name for the _:x > >> > labels) to identify not just blank nodes but also > literal nodes. So > >> > one might write the graph I had in an earlier message: > >> > > >> > aaa ---eg:prop--->10--rdf:type--->xsd:integer > >> > > >> > could be written in Ntriples++ as: > >> > > >> > aaa eg:prop _:1:"10" . > >> > _:1 rdf:type xsd:integer . > >> > >> Well, now I'm just gonzo confused (a common state for me these > >> days is seems ;-) > >> > >> Exactly what is the difference between this "new" > >> representation > >> > >> aaa eg:prop _:1:"10" . > >> _:1 rdf:type xsd:integer . > >> > >> and > >> > >> aaa eg:prop <genid:123> . > >> <genid:123> rdf:value "10" . > >> <genid:123> rdf:type xsd:integer . > >> > >> aside from the fact that the literal value is now part > >> of the *unique* identifier? > > > > > > The first one has three nodes and two edges; the second > one has four > > nodes and three edges. > > > > > > Graphs in ascii-art, respectively (view in Courier): > > > > > > aaa ---eg:prop--> "10" ---rdf:type--->xsd:integer > > > > > > aaa ---eg:prop-->[ ]---rdf:value--->"10" > > > > | > > > > '---rdf:type--->xsd:integer > > > > > > The second graph has a blank node in the middle. > > > > So labels on bNodes are just a means of compression, in the case of > > literals, to avoid the extra rdf:value arc? > > > > > > And how are labels represented in e.g. a set of triples > describing that > > compressed subgraph? > > > > You'd anyway have to expand that out to some kind of arc > (statement) > > based on the nodes identity, so > > > > what exactly does it buy us? > > > > > > > > Sorry I missed the bNode discussions, and I don't want to open up a > > closed issue, I just > > > > would like to at least understand the key benefits to the label > > representation as opposed to > > > > the former anonymous node representation. > > > > > > > >> And since the label of the node is now unique, why > >> then not use a URI. > > > > > > That gets into another debate, which we have had to > exhaustion, and > > decided that literals and bnodes were to be permitted. > Done deal. > > > > > > But be careful with that 'label'. The nodeIDs in > Ntriples are not in > > the graph itself: they are just used by Ntriples to > keep track of > > which node is which in its lexicalization of the graph > structure. > > > > > >> I.e. why not just > >> > >> aaa eg:prop <xsd:integer:10> . > >> > >> and be done with it? > > > > > > Well, what's that in a graph? Is 'xsd:literal:10' a > node label? > > > > > > > > It's a URI, and hence a resource. Thus it's a uriref and it > is a label. > > But the typing is "built in". > > > > > > > > If so, I tend to agree, that would certainly make > everything a hell > > of a lot simpler (even if it does throw away several > weeks work:-). > > Literals wear their datatype on their sleeves, they > have a single > > globally fixed interpretation, are never ambiguous; end > of story. > > > > Exactly. That's the point of the URV encoding. No questions > about data > > type ever, even beyond RDF space. > > > > > > Not that I wouldn't hate to see weeks of work thrown away ;-) > > > >> > >> Interpretation of literals is for applications above the RDF > >> space anyway, right? So why not just use a self > contained package > >> of value and type, which doesn't get munged when binding to > >> query variables employing inference based on subClass > relations? > > > > > > Right, good point. > > > >> > >> > where the subject of the second triple is the same > nodeID as the > >> > object of the first one. The general rule to make a > graph from > >> such a > >> > document is: make a separate graph for each triple, > then merge all > >> > nodes with the same nodeID or uriref label; then > erase the nodeIDs. > >> > > >> > Now, the examples given above might look like this: > >> > _:1:"fi" rdf:type <urn:iso:3166_1> . > >> > _:2:"fi" rdf:type <urn:iso:639> . > >> > <urn:foo> xyz:someProperty _:1:"fi" . > >> > >> Well, that's *alot* different than the earlier examples > >> which had the object nodes labled identically. This treatment > >> seems the same to me as the current "genid:" approach > >> which of course is required in order to get to triples. > >> > >> Each bNode has a "system" identity, and statements are > >> expressed using that system identity as the subject. And > > > >> in essence, that system identity is a kind of "local URI". > > > > > > I'm lost. I really don't follow what you are saying here. > > > > > >> So your label really *is* the same as a URI, but it's > >> the URI of a resource node (or bNode) not the literal itself, > >> and properties (arcs) hung on that node are properties of > > > >> the object for that particular statement, not the literal. > > > > > > Think of the graph as follows: its the NODES that denote things. > > Nodes with a uriref label denote the resource with that uriref. > > Blank nodes denote things, but we don't have names for > them. Literal > > nodes (in my understanding) are like uriref nodes in that they > > denote through their labels, but literal labels denote > things by a > > different route than urirefs; their meaning is determined by a > > datatyping scheme rather than by an interpretation. > > > > > > Now, nodeIDs ('_:2' and so on) are not mentioned, > because they are > > not in the graph at all; they are only used by an > Ntriples parser to > > keep track of the correspondence between labels in > triples and nodes > > in the graph. > > > > OK, things are becoming clearer. The literal itself does > not constitute > > the identity of the node, only its lexical representation, > just as a URI > > may represent the lexical identity of a global resource in the > > serialization. Right. Got it. But still, the fact that a > uriref label is > > used as a nodeID but a literal label is not, seems a little > messy (for > > lack of a more technical term ;-) > > > > > > I guess that was why I was equating a literal label as a nodeID. > > > > > > > > It's interesting that, if a URV approach were adopted > wholesale, then > > literals as they are now could be eliminated entirely, interpreting > > untyped content data values in XML/RDF or NTriples > serializations as > > implicit defintions of <xsd:anySimpleType:*> I.e. > > > > > > > > <someProperty>foo</someProperty> > > > > > > > > becomes <xsd:anySimpleType:foo> in the graph. If someone wants > > interpretation of the value according to some other data > type, then they > > have to declare it locally using an explicit URV encoding, e.g. > > > > > > > > <someProperty rdf:resource="xsd:token:foo"/> > > > > > > > > and we have the locally defined <xsd:token:foo> as the > object node of > > the property in the graph. > > > > > > > > Then, label would always equate to nodeID and in fact label > could be > > discarded and we'd just have nodeIDs, all of which are > urirefs. Eh? Or > > is that a bit too radical ;-) > > > > > > > > It uses fewer nodes, for one thing; > > > > > > > > Fair enough. I'm all for more efficient representations. > > > > but more significantly (IMHO), it allows the datatype > 'context' to > > be inferred from other parts of the graph by using RDFS > reasoning. > > However, I confess that the issue you have raised about > > inappropriate bindings has got me more worried about > this than I was > > previously. > > > > > > > > Well, hopefully I've not worried you needlessly. I think > that the issue > > of RDF not providing any kind of compilation of lexical forms into > > canonical representations and that a descriptive interpetation of > > rdfs:range presuming such a canonical representation does > need to be > > addressed. Or else we will have the risk of bindings that cannot be > > reliably interpreted according to the inferred data type. > > > > > > > > Cheers, > > > > > > > > Patrick > > > > > > > > > > > >
Received on Wednesday, 7 November 2001 06:27:57 UTC