- From: Sandro Hawke <sandro@w3.org>
- Date: Mon, 06 Apr 2009 15:40:23 -0400
- To: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
- cc: public-rdf-text@w3.org
> This part of the text has been introduced to address the compatibility > problems pointed out by the HP people. Yes, and I agreed with their basic point, as I understand it. > Furthermore, I'm not really sure I understand this comment. Please note the > following things: > > - This requirement pertains *only* to RDF graph exchange and says > *nothing* about other types of formats. For example, the OWL 2 > functional-style syntax permits rdf:text literals without any > problems; similarly, there is nothing that prevents RIF from allowing > rdf:text literals to occur in non-RDF exchange formats. Let's imagine that next year I want to make N-Triples-2, which is like N-Triples, but a little different. Would it be okay for me to omit syntactic mechanisms for plain literals, and instead just provide typed literals, saying that people can just use rdf:text? So any software converting between N-Triples and N-Triples-2 would have to do the conversions seen in rdf:text table 2. It seems to me we want to allow for this case, but that the text in question could be reasonably understood as forbidding it. (It also seems to me that RIF Frames and and OWL ObjectPropertyAssertions, as used in the non-RDF serializations, really are just more RDF-exchange formats, and we know they use rdf:text instead of providing special syntaxes for RDF plain litersal.) > - RDF plain literals "abc" and "abc"@lang are fully equivalent to > typed rdf:text literals "abc@"^^rdf:text and "abc@lang"^^rdf:text, > respectively. Thus, even if MUST is left as it is, nothing is lost > from the expressivity point of view: this requirement merely means > that all typed rdf:text literals MUST be canonicalized to (equivalent) > plain RDF literals. Since the two are equivalent, there is no loss of > functionality. For example, if you want to exchange ground facts > between RIF implementations using RDF, you can do so as long you use > the (equivalent) plain RDF literal forms rather than the typed > rdf:text literal ones. The RIF implementation that sends the RDF graph > can thus send all the data without any loss of information, and the > RIF implementation that receives the RDF graph can reconstruct the > original graph up to logical equivalence. Yeah, I'm concerned about the case of people making an "RDF Syntax" that you might not consider an "RDF Syntax" since it doesn't support plain literals. I think the important thing is to say that every RDF graph serialization format should mandate using EITHER a special syntax for plain literals OR rdf:text, but not both. And since all existing formats don't give their answer to this choice (and some future ones wont either), we just declare that if the format provides plain literals and/or doesn't say you have to use rdf:text, then you shouldn't use rdf:text in it. How's this: Despite the semantic equivalence between typed rdf:text RDF literals and plain RDF literals, the presence of rdf:text literals in an RDF graph might cause interoperability problems. For example, if an RDF graph containing rdf:text literals is serialized in RDF/XML, a system may receive it which does not implement rdf:text handling. Such a system will typically treat these literals opaquely, storing them without processing and not matching them to plain literals. To avoid this problematic behavior, tools which support rdf:text MUST replace in the graph each rdf:text literal with the correspinding plain RDF literal before transmitting the graph to any system which is not required to implement rdf:text handling. In practice this means the replacement SHOULD be done before serializing in any RDF format which supports plain literals, since systems reading such a format will typically omit rdf:text handling. In contrast, some formats for RDF may provide only typed literals and thus require that each plain literal be replaced by the corresponding rdf:text typed literal before transmission. -- Sandro > > -----Original Message----- > > From: public-rdf-text-request@w3.org [mailto:public-rdf-text-request@w3.org > ] > > On Behalf Of Sandro Hawke > > Sent: 06 April 2009 18:02 > > To: public-rdf-text@w3.org > > Subject: rdf:text "MUST replace in the graph" > > > > > > (This is my second substantive comment in my rdf:text review; so far all > > my other comments are editorial, and I'll send them along separately.) > > > > I don't think the text at the end of section 4 is quite right. It > > currently says: > > > > Despite the semantic equivalence between typed rdf:text RDF > > literals and plain RDF literals, the presence of typed rdf:text RDF > > literals in an RDF graph might cause interoperability problems > > between RDF tools, as not all RDF tools will support > > rdf:text. Therefore, before exchanging an RDF graph with other RDF > > tools, an RDF tool that suports rdf:text MUST replace in the graph > > each typed rdf:text RDF literal with the corresponding plain RDF > > literal. The notion of graph exchange includes, but is not limited > > to, the process of serializing an RDF graph using any (normative or > > nonnormative) RDF syntax. > > > > The problem with this is that it forbids use of rdf:text in interchange > > in the future. In fact, RIF can be used to interchange RDF Graphs (by > > stating ground frame facts,), but it's forbidden by this text from > > including internationalized strings! More seriously, I expect new > > machine formats for RDF would use rdf:text, but this forbids it. > > > > I think this can be fixed by adding a little phrase, which I've put in > > all-caps below, just to show the change: > > > > Despite the semantic equivalence between typed rdf:text RDF > > literals and plain RDF literals, the presence of typed rdf:text RDF > > literals in an RDF graph might cause interoperability problems > > between RDF tools, as not all RDF tools will support > > rdf:text. Therefore, before exchanging an RDF graph with other RDF > > tools, an RDF tool that suports rdf:text MUST replace in the graph > > each typed rdf:text RDF literal with the corresponding plain RDF > > -> literal, UNLESS THE EXCHANGE FORMAT BEING USED MANDATES THAT > > -> RECIEVERS SUPPORT RDF:TEXT. The notion of graph exchange includes, > > but is not limited to, the process of serializing an RDF graph > > using any (normative or nonnormative) RDF syntax. > > > > The paragraph could be re-written to be smoother, but I think that's the > > minimal change we need here. > > > > -- Sandro > > > > >
Received on Monday, 6 April 2009 19:40:37 UTC