- From: Boris Motik <boris.motik@comlab.ox.ac.uk>
- Date: Mon, 6 Apr 2009 21:01:28 +0100
- To: "'Sandro Hawke'" <sandro@w3.org>
- Cc: <public-rdf-text@w3.org>
Hello, I'm fine with this. I worry, however, that Andy Seaborne might not be: he explicitly wanted the spec to make sure that, say, SPARQL implementations never see rdf:text literals. If you can get him to sign off on this, I'd be happe to add it to the spec. Regards, Boris > -----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 20:40 > To: Boris Motik > Cc: public-rdf-text@w3.org > Subject: Re: text "MUST replace in the graph" > > > > 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 20:02:42 UTC