RE: text "MUST replace in the graph"

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