- From: Olivier Corby <Olivier.Corby@sophia.inria.fr>
- Date: Mon, 28 Mar 2011 17:02:01 +0200
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
- Message-ID: <4D90A2E9.7070802@sophia.inria.fr>
Here is my review of test cases (Action-421)
In the 2011-03-23 test case version
(http://www.w3.org/2009/sparql/docs/tests/data-sparql11), there are 21
manifests and 350 test cases.
I pass with success 336 test cases with Corese KGRAM SPARQL 1.1 interpreter.
There are 8 delete-insert tests that should be changed to Negative
Syntax Test (then it will be 344 positive tests).
There are 6 entailment tests for which I do not find the same results,
and I propose alternative solutions.
In addition, I have found some typos detailed below and I provide some
other comments.
I also (rapidly) review the test case document itself.
Best regards,
Olivier
Test cases with approved status: 34
aggregates : 3
bind : all
construct : all
project-expression : all
subquery : all
Missing test cases:
filter IF()
test that nodes in path of length zero come from specified named graph
graph <g1> {?x <p>* ?y}
Some directories are empty:
function-library
entailment-owlds
entailment-RDF
entailment-RDFS
The delete-insert manifest is not in the manifest-all
Lack of uniformity on rdf:type of test cases:
mf:NegativeSyntaxTest
mf:NegativeSyntaxTest11
mf:NegativeUpdateSyntaxTest11
The default prefix is not uniform in all manifests.
Most of them use:
@prefix :
<http://www.w3.org/2009/sparql/docs/tests/data-sparql11/syntax-update-2/manifest#>
.
except:
syntax-query/manifest.ttl:@prefix : <manifest#> .
syntax-update-1/manifest.ttl:@prefix : <manifest#> .
entailment/manifest.ttl:@prefix :
<http://www.w3.org/2001/sw/DataAccess/tests/data-r2/basic/manifest#> .
There are two different syntax in update manifests to address named graph:
ut:graphData [ ut:graph
ut:graphData [ ut:data
______________________
extra prefix:
@prefix mfx: <http://jena.hpl.hp.com/2005/05/test-manifest-extra#> .
in:
syntax-query
syntax-update-1
syntax-update-2
__________________
grouping
:group02 can be removed:
## :group02 # Now the same as group01
______________
basic-update
:insert-using-01 is not in manifest entries
however this test case is correct
______________
delete-insert
These tests should be Negative Syntax Test because they have blanks in
the delete part.
The rdfs:comment should be changed
:dawg-delete-insert-03
:dawg-delete-insert-03b
:dawg-delete-insert-05
:dawg-delete-insert-06
:dawg-delete-insert-07
:dawg-delete-insert-07b
:dawg-delete-insert-08
:dawg-delete-insert-09
__________________________
negation
:temporal-proximity-by-exclusion-minus-1
is commented in the manifest entry list, it can be removed
______________________
entailment
I suggest to remove the @base statement from manifest.ttl (there is no
base in other manifests)
Below is a list of test cases for which I do not find the same result. I
detail why and propose an alternative.
:rdfs03 rdf:type mf:QueryEvaluationTest ;
mf:name "RDFS inference test RDFS rules incompleteness" ;
dawgt:approval dawgt:NotClassified ;
mf:action
[ qt:query <rdfs03.rq> ;
qt:data <rdfs03.ttl> ;
sd:entailmentRegime ent:RDFS ] ;
mf:result <rdfs03.srx>
query:
SELECT ?x
WHERE {
ex:a ex:b1 ?x .
}
data:
ex:a ex:b1 ex:c1 .
ex:b1 rdfs:subPropertyOf _:b2 .
_:b2 rdfs:domain ex:c2 .
result:
x = http://example.org/ns#c1
x = http://example.org/ns#c2
rdfs:domain specifies the type of the subject, not the value,
Result should be:
x = http://example.org/ns#c1
Furthermore, in RDF, properties cannot be blanks.
_________________________
:rdfs04 rdf:type mf:QueryEvaluationTest ;
mf:name "RDFS inference test subClassOf" ;
dawgt:approval dawgt:NotClassified ;
mf:action
[ qt:query <rdfs04.rq> ;
qt:data <rdfs04.ttl> ;
sd:entailmentRegime ent:RDFS ] ;
mf:result <rdfs04.srx>
.
query:
SELECT ?x
WHERE {
ex:a ex:b ?x .
}
data:
ex:a ex:b ex:c1 .
ex:c1 rdfs:subClassOf ex:c2 .
result:
x = http://example.org/ns#c1
x = http://example.org/ns#c2
Result should be:
x = http://example.org/ns#c1
Subsumption occurs with rdf:type
__________________________
:rdfs06 rdf:type mf:QueryEvaluationTest ;
mf:name "RDFS inference test domain" ;
dawgt:approval dawgt:NotClassified ;
mf:action
[ qt:query <rdfs06.rq> ;
qt:data <rdfs06.ttl> ;
sd:entailmentRegime ent:RDFS ] ;
mf:result <rdfs06.srx>
.
query:
SELECT ?x
WHERE {
?x ex:b ex:c .
}
data:
ex:a1 ex:b ex:c .
ex:b rdfs:domain ex:a2 .
result:
x = http://example.org/ns#a1
x = http://example.org/ns#a2
rdfs:domain specifies the *type* of the subject, not the subject itself,
Result should be:
x = http://example.org/ns#a1
_________________________________________
:rdfs07 rdf:type mf:QueryEvaluationTest ;
mf:name "RDFS inference test range" ;
dawgt:approval dawgt:NotClassified ;
mf:action
[ qt:query <rdfs07.rq> ;
qt:data <rdfs07.ttl> ;
sd:entailmentRegime ent:RDFS ] ;
mf:result <rdfs07.srx>
.
query:
SELECT ?x
WHERE {
ex:a ex:b ?x .
}
data:
ex:a ex:b ex:c1 .
ex:b rdfs:range ex:c2 .
result:
x = http://example.org/ns#c1
x = http://example.org/ns#c2
rdfs:range specifies the *type* of the value, not the value itself,
Result should be:
x = http://example.org/ns#c1
_________________________________________________
:rdfs08 rdf:type mf:QueryEvaluationTest ;
mf:name "RDFS inference test rdf:XMLLiteral subclass of
rdfs:Literal" ;
dawgt:approval dawgt:NotClassified ;
mf:action
[ qt:query <rdfs08.rq> ;
qt:data <rdfs08.ttl> ;
sd:entailmentRegime ent:RDFS ] ;
mf:result <rdfs08.srx>
.
query:
SELECT ?x
WHERE {
ex:d rdfs:range ?x .
}
data:
ex:d rdfs:range rdf:XMLLiteral .
result:
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
x = http://www.w3.org/2000/01/rdf-schema#Literal
As we have also:
rdfs:Literal rdfs:subClassOf rdfs:Resource
result should be:
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
x = http://www.w3.org/2000/01/rdf-schema#Literal
x = http://www.w3.org/2000/01/rdf-schema#Resource
_________________________________________________
:rdfs11 rdf:type mf:QueryEvaluationTest ;
mf:name "RDFS inference test subclasses of rdf:Container" ;
dawgt:approval dawgt:NotClassified ;
mf:action
[ qt:query <rdfs11.rq> ;
qt:data <rdfs11.ttl> ;
sd:entailmentRegime ent:RDFS ] ;
mf:result <rdfs11.srx>
.
query:
SELECT ?x
WHERE {
?x rdfs:subClassOf rdfs:Container .
}
data:
ex:a ex:b ex:c .
result:
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq
rdfs:subClassOf is Reflexive,
result should be:
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
x = http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq
x = http://www.w3.org/2000/01/rdf-schema#Container
entailment:
owl:DataProperty should be replaced by owl:DatatypeProperty
bind01.rq: ?p a owl:DataProperty .
bind02.rq: ?p a owl:DataProperty .
bind03.rq: ?p a owl:DataProperty .
bind03.rq: ?p1 a owl:DataProperty .
bind04.rq: ?p a owl:DataProperty .
bind05.rq: ?p a owl:DataProperty .
bind06.rq: ?p a owl:DataProperty .
bind07.rq: ?p a owl:DataProperty .
bind08.rq: ?p a owl:DataProperty .
entailment: typos with prefix:
rdfs01
ex:b1 rdfs:rdfs:subPropertyOf ex:b2 .
rdfs02
ex:b1 rdfs:rdfs:subPropertyOf ex:b2 .
rdfs08
rdf prefix is missing
rdfs09
rdf prefix is missing
rdfs12
. missing
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdf02
. missing
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdf03
. missing
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
_______________________________________________________________
SPARQL1.1: Test case structure
http://www.w3.org/2009/sparql/docs/tests/README.html
The corresponding URIs are not correct:
- manifest of syntax-only tests (positive and negative tests) for the
SPARQL1.1 Query Language
- manifest of query evaluation tests for the SPARQL1.1 Query Language
- manifest of entailment evaluation tests for the SPARQL1.1 Entailment
Regimes
- manifest of syntax-only tests (positive and negative tests) for the
SPARQL1.1 Update Language
- manifest of update evaluation tests for the SPARQL1.1 Update Language
- .srj ... Files containing a query result in the SPARQL 1.1 Query
Results JSON Format.
- The DAWG result-set RDF vocabulary. SELECT or ASK queries.
Typos :
Typicaly
indicarte
differnt
prediate
proivding
xsd;string
Received on Monday, 28 March 2011 15:02:36 UTC