W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2011

Review test cases

From: Olivier Corby <Olivier.Corby@sophia.inria.fr>
Date: Mon, 28 Mar 2011 17:02:01 +0200
Message-ID: <4D90A2E9.7070802@sophia.inria.fr>
To: SPARQL Working Group <public-rdf-dawg@w3.org>
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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:45 GMT