- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Sun, 16 Sep 2007 15:13:29 +0100
- To: 'RDF Data Access Working Group' <public-rdf-dawg@w3.org>
ACTION: Eric+Andy to identify and collect mf:requires URIs and put in documentation I looked at the use of mf:requires. Belowis some draft text and some notes of changes I think need doing. Eric started this with http://lists.w3.org/Archives/Public/public-rdf-dawg/2006OctDec/0113.html Andy ==== Which tests? What property values? The only use of mf:requires is in the open-world test area. BASE <http://www.w3.org/2001/sw/DataAccess/tests/> PREFIX mf: <test-manifest#> PREFIX manifest: <data-r2/open-world/manifest#> SELECT ?test ?requires { ?test a mf:QueryEvaluationTest . ?test mf:requires ?requires } ORDER BY ?test ----------------------------------------------------------------- | test | requires | ================================================================= | manifest:date-1 | <http://www.w3.org/2001/XMLSchema#date> | | manifest:date-2 | <http://www.w3.org/2001/XMLSchema#date> | | manifest:date-2 | mf:xsd-date-eq-xsd-dateTime | | manifest:date-3 | <http://www.w3.org/2001/XMLSchema#date> | | manifest:open-eq-07 | mf:IllFormedLiteral | | manifest:open-eq-07 | mf:LangCaseInsensitivity | | manifest:open-eq-07 | mf:StringSimpleLiteralCmp | | manifest:open-eq-08 | mf:IllFormedLiteral | | manifest:open-eq-08 | mf:KnownTypesDefault2Neq | | manifest:open-eq-08 | mf:LangCaseInsensitivity | | manifest:open-eq-08 | mf:StringSimpleLiteralCmp | | manifest:open-eq-09 | mf:IllFormedLiteral | | manifest:open-eq-10 | mf:IllFormedLiteral | | manifest:open-eq-10 | mf:KnownTypesDefault2Neq | | manifest:open-eq-11 | mf:IllFormedLiteral | | manifest:open-eq-11 | mf:KnownTypesDefault2Neq | | manifest:open-eq-12 | mf:IllFormedLiteral | | manifest:open-eq-12 | mf:KnownTypesDefault2Neq | | manifest:open-eq-12 | mf:LangTagAwareness | ----------------------------------------------------------------- ==== Draft text [[ Additional notes and needed changes marker ** ]] ** Eric - I'd appreciate you checking this. ** There was "LeGeIncludeEq" but this is not currently used. A number of tests in the open-world directory illustrate features of SPARQL by depending on how a SPARQL query processor can extend the set of core types and operations as defined by the operator table [http://www.w3.org/TR/rdf-sparql-query/#OperatorMapping]. These tests are marked by property mf:requires and an object value from one of the URIs described below. == <http://www.w3.org/2001/XMLSchema#date> Requires the processor to understand comparisons of literal of type xsd:date. Without understand the xsd;date datatype, a processor would raise an error on the operations of "=" and "!=". With an understanding of xsd:date, a processor can perform value-based operations and provide the operations desibed in "XQuery 1.0 and XPath 2.0 Functions and Operators" http://www.w3.org/TR/xpath-functions/#func-date-equal http://www.w3.org/TR/xpath-functions/#func-date-less-than http://www.w3.org/TR/xpath-functions/#func-dateTime-greater-than ** Bad modelling: needs a URI like XsdDateOperations . It refers to the operations, not the type. All [processors handle xsd:date even if only as an unknown datatype. == mf:StringSimpleLiteralCmp This indicates that the test uses the fact that plain literals, without language tags test are the same value as an xsd;string with the same lexicial form. This is covered by rules "xsd 1a" and "xsd 1b" from RDF Semantics [http://www.w3.org/TR/rdf-mt/#DtypeRules]. == mf:KnownTypesDefault2Neq This indicates that a processor can extend the SPARQL operator model by using the fact that values of literals can be in disjoint value spaces and hence can not be equal by value. For example, an xsd:integer can not be the same value as an xsd:boolean because these two datatypes define disjoint value spaces. == mf:IllFormedLiteral This indicates that a processor must handle literals with a lexical form that is not correct for the declared datatype. ** I don't see why this is a feature (implying some kind of extension) - he tests don't use anything that isn't required of any SPARQL implementation. == mf:LangCaseInsensitivity This indicates that a processor handles language tags in a case insensitive fashion (as required by RFC 3066). ** This is explicitly required by RDF Concepts - I don't understand why it is picked out as a "requires" given more recent discussions in DAWG. I propose we remove it; we should have arranged that the tests use the case insensitivity only where necessary (i.e. only in "=", whichsi what this test suite is about, and not in the results XML files). ** Would be subsumed by mf:LangTagAwareness anyway. Handling language tags does mean case insensitivity. == mf:LangTagAwareness This indicates that the test assumes the SPARQL query processor has support for plain literals with language tags. The minimum set of operators in the SPARQL operator table [http://www.w3.org/TR/rdf-sparql-query/#OperatorMapping] does not include language tag handling, only plain literals without language tag (simple literals) and certain XSD datatypes. ** I don't understand why only open-eq-12 is marked with this. open-eq-07 and open-eq-10 seems to require it as well. == mf:xsd-date-eq-xsd-dateTime ** propose to remove this. ** date-2 Needs changing. -- This is wrong: it isn't needed and it isn't true either! xsd:date and xsd:dateTime are not comparable because a value from xsd:dateTime is a point on the timeline and a value from xsd:date is a top-open interval on the timeline. The test is FILTER ( ?v != "2006-08-23"^^xsd:date ). It's the fact that dates and dateTimes define different value spaces that means that != is true. i.e. a day is not a point in time. The same would be true for "23"^^xsd;decimal in the data as well. -- -- Hewlett-Packard Limited Registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England
Received on Sunday, 16 September 2007 14:13:57 UTC