- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Tue, 19 Jun 2007 09:33:58 +0100
- To: Lee Feigenbaum <feigenbl@us.ibm.com>
- CC: public-rdf-dawg@w3.org
Lee Feigenbaum wrote:
> "Seaborne, Andy" <andy.seaborne@hp.com> wrote on 06/18/2007 05:18:24 PM:
>
>> Lee Feigenbaum wrote (Agenda for 19/June/2007)
>> ...
>>> 3. Test progress
>> ...
>>> I'd also like to look at the language tag case sensitivity tests that
> we
>>> didn't approve last
>>> week:
>>>
>>> data-r2/open-world/manifest-lang-case-sensitivity.ttl
>>>
>>> Given time, we'll find other tests to work through and approve.
>> ARQ fails the first test "lang-case-sensitivity" because lang tags are
>> compared in filters in a case insensitive way.
>
> (We're talking about
> http://www.w3.org/2001/sw/DataAccess/tests/data-r2/open-world/lang-case-sensitivity-eq.rq
> right?)
Yes.
>
> I agree; I think the test is incorrect: there should be 4 solutions.
>
> We've discussed this before, but for the record (so we have a URI), here's
> my reading of the specs:
>
> We're testing plain literals with language tags with =. So we look through
> the table in 11.3. The = entry for simple literals doesn't apply since the
> literals have language tags. So we drop down to the = entry for RDF terms,
> which defers to RDFTerm-equal (
> http://www.w3.org/TR/rdf-sparql-query/#func-RDFterm-equal ). RDFterm-equal
> passes the buck to 6.5.1 Literal Equality from RDF Concepts (
> http://www.w3.org/TR/rdf-concepts/#section-Literal-Equality ), where we
> find, among other things, "The language tags, if any, compare equal."
> Looking directly above 6.5.1 (in the intro to 6.5 RDF Literals), we see
> that "Plain literals have a lexical form and optionally a language tag as
> defined by [RFC-3066], normalized to lowercase." And finally, most to the
> point:
>
> """
> Note: The case normalization of language tags is part of the description
> of the abstract syntax, and consequently the abstract behaviour of RDF
> applications. It does not constrain an RDF implementation to actually
> normalize the case. Crucially, the result of comparing two language tags
> should not be sensitive to the case of the original input.
> """
>
> ...from which I reach my conclusion that the objects of the two triples in
> http://www.w3.org/2001/sw/DataAccess/tests/data-r2/open-world/lang-case-sensitivity.ttl
> are RDFterm-equal.
>
> So the query should give a result for each pair of bindings from the two
> triples - i.e., 4 results.
>
> lang-case-insensitive-eq seems to be the correct version of the test.
>
>> I think the last test "lang-case-insensitive-ne" is not making the point
> the
>> naming suggests.
>>
>> lang-case-insensitive-ne.srx
>> and
>> lang-case-sensitive-ne.srx
>>
>> are the same (no rows). The tests form the cross product of the triples
> and
>> then filter:
>>
>> SELECT *
>> {
>> ?x1 :p ?v1 .
>> ?x2 :p ?v2 .
>> FILTER ( ?v1 != ?v2 )
>> }
>>
>>
>> I'd expect lang-case-insensitive-ne.srx to record the cases of
>> 'xyz'@en != 'xyz'@EN and 'xyz'@EN!= 'xyz'@en
>>
>> -----------------------------------
>> | x1 | v1 | x2 | v2 |
>> ===================================
>> | :x3 | "xyz"@EN | :x2 | "xyz"@en |
>> | :x2 | "xyz"@en | :x3 | "xyz"@EN |
>> -----------------------------------
>
> Hmm? I'd expect that to be the case of lang-case-*sensitive* - when using
> case insensitivity, all of the pairs compare equal, so the result should
> be the empty set.
You're right. Test 3.
The point is that tests 3 and 4 have the same query, data and results because
lang-case-insensitive-ne.srx == lang-case-sensitive-ne.srx
>
> In any case, as far as the spec goes and approved tests go, I think that
> we should be approving both of the *insensitive tests.
i.e. test 2 and 4.
Andy
>
> Lee
>
>> Andy
>>
>>
>> --
>> Hewlett-Packard Limited
>> Registered Office: Cain Road, Bracknell, Berks RG12 1HN
>> Registered No: 690597 England
>
--
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
Received on Tuesday, 19 June 2007 08:34:16 UTC