- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Sat, 4 Nov 2006 22:34:46 +0100
- To: "Seaborne, Andy" <andy.seaborne@hp.com>
- Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On Mon, Oct 23, 2006 at 05:39:16PM +0200, Eric Prud'hommeaux wrote:
>
> On Mon, Oct 23, 2006 at 03:24:59PM +0100, Seaborne, Andy wrote:
> > ...
> > [[
> > The consequence of this rule is that extended SPARQL implementations will
> > produce at least the same solutions as an unextended implementation, and
> > may, for some queries, produce more solutions.
> > ]]
> > isn't true by the way - filters can be negated so more or less solutions
> > are going to be possible with any kind of extensibility.
>
> Exploring the results for a date comparison with or without negation,
> with or without support for xsd:date for this tests with only one of
> the FILTERs applied:
>
> Data:
> <http://example.org/doc1> dc:date "2001-12-03T13:41"^^xsd:dateTime .
> <http://example.org/doc2> dc:date "2003-10-03"^^xsd:date .
>
> Query:
> SELECT ?doc
> WHERE { ?doc dc:date ?d
> FILTER (?d > "2000-00-00T12:00"^^xsd:dateTime) # t - TRUE
> FILTER (!(?d < "2000-00-00T12:00"^^xsd:dateTime)) # tn - TRUE-negated
> FILTER (?d < "2000-00-00T12:00"^^xsd:dateTime) # f - FALSE
> FILTER (!(?d > "2000-00-00T12:00"^^xsd:dateTime)) # fn - FALSE-negated
> }
>
> without xsd:date with xsd:date support
> t <http://example.org/doc1> <http://example.org/doc1>
> <http://example.org/doc2>
> tn <http://example.org/doc1> <http://example.org/doc1>
> <http://example.org/doc2>
> f
> fn
>
> That is, f and fn get no results.
> Can you come up with a case that meets our notion of monotinicity that
> violates this "produce at least the same solutions" assertion?
Per suggestion from AndyS on IRC, I tried !("foo"@en != "foo"@EN) with
and without lang support and still find it to be dawg:monotonic.
(AndyS, sorry it took so long to respnd -- suffered some mission creep.)
eric@unagi:~/sources/public/perl/modules/W3C/Rdf/bin$ ./algae --summary --manifest /home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/manifest-lang-case-sensitivity.ttl
Note, I put this into a side manifest because we have not reached
consensus on how to designate particular extensions.
executing lang-case-sensitive-eq "'xyz'@en = 'xyz'@EN"
reading <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity.ttl>
executing query <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity-eq.rq>
expect <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitive-eq.srx>
+-------------------+--------+-------------------+--------+
| x1| v1| x2| v2|
|-------------------|--------|-------------------|--------|
|<http://example/x2>|"xyz"@en|<http://example/x2>|"xyz"@en|
|<http://example/x3>|"xyz"@EN|<http://example/x3>|"xyz"@EN|
+-------------------+--------+-------------------+--------+
That is, "'xyz'@en was not found to be equal to 'xyz'@EN"
executing lang-case-insensitive-eq "'xyz'@en = 'xyz'@EN with mfx:LangCaseInsensitivity"
require http://jena.hpl.hp.com/2005/05/test-manifest-extra#LangCaseInsensitivity
reading <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity.ttl>
executing query <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity-eq.rq>
expect <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-insensitive-eq.srx>
+-------------------+--------+-------------------+--------+
| x1| v1| x2| v2|
|-------------------|--------|-------------------|--------|
|<http://example/x2>|"xyz"@en|<http://example/x2>|"xyz"@en|
|<http://example/x2>|"xyz"@en|<http://example/x3>|"xyz"@EN|
|<http://example/x3>|"xyz"@EN|<http://example/x2>|"xyz"@en|
|<http://example/x3>|"xyz"@EN|<http://example/x3>|"xyz"@EN|
+-------------------+--------+-------------------+--------+
With LangCaseInsensitivity, "'xyz'@en is equal to 'xyz'@EN"
executing lang-case-sensitive-ne "'xyz'@en != 'xyz'@EN"
reading <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity.ttl>
executing query <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity-ne.rq>
expect <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitive-ne.srx>
+--+--+--+--+
|x1|v1|x2|v2|
|--|--|--|--|
+--+--+--+--+
Without LangCaseInsensitivity, "'xyz'@en is not != to 'xyz'@EN" (it
gets a type error instead.)
executing lang-case-insensitive-ne "'xyz'@en != 'xyz'@EN with mfx:LangCaseInsensitivity"
require http://jena.hpl.hp.com/2005/05/test-manifest-extra#LangCaseInsensitivity
reading <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity.ttl>
executing query <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-sensitivity-ne.rq>
expect <file://unagi/home/eric/WWW/2001/sw/DataAccess/tests/data/OpenWorld/lang-case-insensitive-ne.srx>
+--+--+--+--+
|x1|v1|x2|v2|
|--|--|--|--|
+--+--+--+--+
With LangCaseInsensitivity, "'xyz'@en is not != to 'xyz'@EN" beacuse
they are considered equal.
> > That's why "!=" should mean "not known to be unequal" and not "not(known to
> > be equal)"
>
> This is a separate issue, I believe. In XQuery, you are assumed to be
> doing something wrong if you compare anything outside the standard
> mapping, even to find out it is not equal. In SPARQL, we have to
> decide if we want that same functionality, or change RDFterm-equal [TEQ]
> [[
> Returns TRUE if term1 and term2 are the same RDF term as defined in
> Resource Description Framework (RDF): Concepts and Abstract Syntax
> [CONCEPTS]; produces a type error if the arguments are both literal
> but are not the same RDF term; returns FALSE otherwise. term1 and
> term2 are the same if any of the following is true:
> ]]
> to
> [[
> Returns TRUE if term1 and term2 are the same RDF term as defined in
> Resource Description Framework (RDF): Concepts and Abstract Syntax
> [CONCEPTS]; produces a type error if either of the arguments is a
> literal but is not a supported term; returns FALSE otherwise. term1
> and term2 are the same if any of the following is true:
> ]]
> to add = and != tests for all the supported types.
>
> [TEQ] http://www.w3.org/2001/sw/DataAccess/rq23/rq24#func-RDFterm-equal
--
-eric
home-office: +1.617.395.1213 (usually 900-2300 CET)
+33.1.45.35.62.14
cell: +33.6.73.84.87.26
(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
Received on Saturday, 4 November 2006 21:33:56 UTC