- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Wed, 3 Jun 2009 08:22:38 -0400
- To: Sandro Hawke <sandro@w3.org>
- Cc: Lee Feigenbaum <lee@thefigtrees.net>, public-owl-comments@w3.org, SPARQL Working Group <public-rdf-dawg@w3.org>, public-rdf-text@w3.org
- Message-ID: <20090603122238.GX28987@w3.org>
On Wed, May 06, 2009 at 04:35:22PM -0400, Lee Feigenbaum wrote: > Hello OWL and RIF working groups, > > The SPARQL WG has reviewed the rdf:text Last Call document on our > mailing list[1], in a teleconference [2], and today at our face-to-face > meeting [3]. > > The group resolved to send the following comments. At this time, we do > not have proposed spec text to resolve these comments, but would be glad > to consult on possibilities. > > The comment is at > http://www.w3.org/2009/sparql/wiki/index.php?title=Rdf_text_LC_WG_comment&oldid=758 > and is reproduced here for your convenience. These comments have been addressed to the satisfaction of the SPARQL WG. We are content that document states that *the* form of a term of type rdf:PlainLiteral in any RDF graph is as an rdf plain literal per http://www.w3.org/TR/rdf-concepts/#dfn-plain-literal and thus, the behavoir of these terms within existing RDF applications such as SPARQL is well-defined. ✓ > ~~~ > Summary > > SPARQL queries act on the graph, not on the serialized form. Thus, we > suggest to the editors state the interactions with SPARQL in respect to: > > 1. the restriction to rdf:text not appearing in RDF graphs should be > extended such that rdf:text MUST NOT appear in SPARQL XML results. This > extends the existing coverage of RDF graph exchange to include SPARQL > results from SELECT, in the same way that CONSTRUCT and DESCRIBE queries > are already covered. > 2. the use of "semantic equivalence" shall be clarified and it > should be noted that rdf:text is a D-entailment and is accessed by > SPARQL via a BGP entailment regime extension. > 3. that functions STR/DATATYPE/LANG act on the lexical > representations and will be affected depending on the way an rdf:text > aware entailment regime manifests it's results. > > In addition it should be noted that rdf:text relates to the assumption > in RDF that a literal has a datatype or a language tag but not both. > Existing, deployed code relies on this invariant. > [edit] Overview > > There are some SPARQL-specific issues that arise that are not addressed > in the document. The rdf:text only refers to "graph exchange" when > saying that rdf:text must not appear in RDF graphs serializations but > that does not apply to SPARQL directly. > > Because rdf:text document says nothing about SPARQL operations and it's > not clear to me whether changes to existing SPARQL queries are being > assumed. At one time, they were. > > Since SPARQL is defined over simple entailment, NOT datatype entailment, > the notion of "semantic equivalence" (mentioned but not defined in the > rdf:text document) does not make sense and this spec appears to require > changes to SPARQL behaviour. This would be undesirable since it affects: > > 1. SPARQL Query Result XML Format > > 2. Interactions with simple entailment matching of BGPs, and extension > of SPARQL via BGPs. > > 3. Effects on DATATYPE, LANG and STR > > Note: In RDF, a literal has either a language tag or a datatype but not > both. rdf:text changes this assumption so deployed code or SPARQL > implementations that rely on this invariant may break. > > We believe that these concerns can be remedied, if rdf:text talks about > D-entailment specifically, instead of "semantic equivalence" (and thus > not affecting simple entailment as well) in general. > [edit] SPARQL XML Results Format > > This is not "graph exchange" so the prohibition use of rdf:text in a > serialization does not apply. It could be applied, but might not help > systems that do want to see rdf:text literals, for example, SPARQL/OWL2. > > The problem here, again, is that the semantic implications of rdf:text > are not forward-compatible with existing RDF. This concern would be > remedied by defining the semantic implications of rdf:text in terms of > D-entailment only, as suggested above. In fact, we think that this fix > makes the restrictions of the usage of rdf:text in RDF graphs redundant. > [edit] Datatype Property > > What happens if a datatype property is restricted to a rdf:text? What > does the RDF serialization look like? Does it include rdf:text? > [edit] BGP matching > > The SPARQL standard defines SPARQL with respect to simple entailment and > provides a mechanism for extension to other entailment regimes. See the > section "12.6 Extending SPARQL Basic Graph Matching". > > Since SPARQL is defined over simple entailment, NOT datatype entailment, > the notion of "semantic equivalence" (mentioned but not defined in the > rdf:text document) does not make sense. SPARQL is not acting on the > serialization of an RDF graph. It acts on the value space of literals. > > Simple entailment does not cover the RDF-MT entailments xsd1a and xsd1b, > which are the rules for plain literals without language tag being the > same value as XSD strings. So these are not required of a SPARQL > processor using simple entailment. > > Additional semantic equivalences implied by rdf:text should only affect > D-entailment (where rdf:text is part of the datatype map D following > [1]) but not simple entailment. Thus, the document should not talk about > "semantic equivalence" in general terms but just in terms of > D-entailment. This should fix the main problem raised and would only > affect SPARQL engines that follow a (yet to be defined). > > We suggest that it is explicitly noted that access to rdf:text aware > entailment regimes by a SPARQL query is via the extension mechanism. > [edit] Effects on DATATYPE, LANG and STR > > Noting that this SPARQL-WG should maintain compatibility with SPARQL as > published Jan 2008. > > These functions are accessors to the components of a literal term. > Different ways of manifesting a value from BGP matching will lead to > different resutlts from these functions. > > For these example, the serialized form using rdf:text is used although > in an RDF graph it exists as a value and when the graph is serialised > rdf:text does not appear. The examples relate to a variable bound to > such a value and how the literal accessor function (DATATYPE, LANG and > STR) of SPARQL can be impacted. > > rdf:text does define some functions on rdf:text. > > DATATYPE is defined so that the type of a plain literal without language > tag is xsd string. There is no datatype for a literal with language. > > SPARQL has the concept of a "simple literal" for a plain literal without > language tag. > > These functions are applied as part of the algebra, not as part of BGP > matching - the entailment extension mechanism does not modify these > functions. There may be different entailment regimes, maybe on different > graphs, in the same query. > [edit] DATATYPE > > DATATYPE of a literal with language tag > > SPARQL/2008: > > DATATYPE ("Padre de familia"@es) ==> error > > When a literal is bound to a variable and subsequently used in a call to > DATATYPE, what return value is expected? Is it true that if instead it > is presented as below, a different result is obtained? > > DATATYPE("Padre de familia@es"^^rdf:text) ==> rdf:text > > Similarly: > > SPARQL/2008 defines: > > DATATYPE ("Padre de familia") ==> xs:string > > but what is: > > DATATYPE ("Padre de familia") ==> rdf:text ?? xs:string ?? > > because one value space is a subset of the other. > > The reason for rdf:text is the uniform treatment of literals so the > query to find all the untyped literals ("untyped" meaning as per the > current SPARQL REC - without type - simple literal or literal with > language tag) might be changed. > [edit] LANG > > In RDF, a literal has either a language tag or a datatype but not both. So: > > SPARQL/2008: > > Lang("Padre de familia"@es) ==> "es" > > but > > Lang("Padre de familia@es"^^rdf:text) ==> "" > > rdf:text: > > Lang("Padre de familia@es"^^rdf:text) ==> ?? > > c.f. rtfn:lang-from-text(Padre de familia@es"^^rdf:text) ==> "es" > [edit] STR > > rdf:text is a datatype with lexical space including the language tag > > SPARQL/2008 defines: > > STR("Padre de familia@es"^^rdf:text) ==> "Padre de familia@es" > STR("Padre de familia"@es) ==> "Padre de familia" > > rdf:text: > > STR("Padre de familia@es"^^rdf:text) ==> "Padre de familia" ?? > > because STR returns the lexical form. > > The lexical space of literals with language tags is changed by rdf:text. > [edit] FILTERs > > SPARQL FILTERs evaluate to an effective boolean value (defined in XQuery > "2.4.3 Effective Boolean Value" and referenced by SPARQL "11.2.2 > Effective Boolean Value (EBV)". > > The EBV of a string is false if the string is of length zero else true. > > Do any rdf:text literals have an EBV of false? > > > [edit] Intra-spec Compatibility > [edit] IRIs vs. URIs > > "This specification uses Uniform Resource Identifiers (URIs) for naming > datatypes and their components" indicates that language tags in RDF are > URIs, where SPARQL Query interpreted them as IRIs. Using URIs would > imply that > > <X> <p> > <http://xn--9oqp94l.example/?user=%D8%A3%D9%83%D8%B1%D9%85&channel=R%26D> . > > would be matched by the SPARQL graph pattern > > <X> <p> <http://伝言.example/?user=أكرم&channel=R&D> . > > [edit] References > > 1. http://www.w3.org/TR/rdf-mt/#dtype_interp > > 2. http://www.w3.org/TR/rdf-sparql-query/#sparqlBGPExtend > > 3. http://lists.w3.org/Archives/Public/public-rdf-text/2008OctDec/0036.html > ~~~ > > > > Lee > on behalf of the SPARQL WG > > [1] http://lists.w3.org/Archives/Public/public-rdf-dawg/2009AprJun/0107.html > [2] http://www.w3.org/2009/sparql/meeting/2009-04-28#rdf__3a_text > [3] raw IRC log: http://www.w3.org/2009/05/06-sparql-irc -- -eric office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA mobile: +1.617.599.3509 (eric@w3.org) Feel free to forward this message to any list for any purpose other than email address distribution.
Received on Wednesday, 3 June 2009 12:22:50 UTC