On 11/08/15 09:11, Qihong Lin wrote:
hi Andy,
I'll further enrich the test data and add JUnit tests in TestAPI for
better coverage.
I'm thinking of the problem you mentioned. In fact, there're 2 types
of query strings:
a) Query String without Construct Quad, e.g. "CONSTRUCT { ?s ?p ?o }
WHERE { ?s ?p ?o }";
b) Query String with Construct Quad, e.g. "CONSTRUCT { ?s ?p ?o GRAPH
:g1 { :s1 ?p :o1 } } WHERE { ?s ?p ?o }"
Also, the users can choose to execute 2 kinds of query methods:
1) Iterator<Triple> execTriples()
2) Iterator<Quad> execQuads()
These make 4 cases:
a)+1): No problem, original ARQ construct query
and execContructQuads returns quads with the default graph set.
and the execContructDataset contains a dataset with triples in the
default graph.
b)+2): No problem, new construct quad query
Yes
a)+2): The result quads are in the default graph? Or just throw
exception saying the query string not working with the query method?
Quads, with graph field being for the default graph.
b)+1)(you mentioned): The result triples contain only the "?s ?p ?o"
part, ignoring construct "GRAPH :g1 { :s1 ?p :o1 }"? Or just throw
exception saying the query string not working with the query method?
Could you please tell me your opnions about the last 2 cases?
The effect should be triples in the default graph (?s ?p ?o). it's a
projection. The same happens if you parse, say TriG, into a model :
just the default graph is seen.
There is a general abstraction here (CONSTRUCT template to dataset).
It's a matter of how to handle the two API forms that deal with a
restricted form (triples/model). Seeing the default graph in each case
is the way to deal with it.
Andy
regards,
Qihong
On Mon, Aug 10, 2015 at 9:58 PM, Andy Seaborne <[email protected]> wrote:
I've managed to integrate the latest updates.
The scripted ones look, at first glance OK, but the data isn't very rich.
Also, please can we have some API tests in "TestAPI". These are JUnit tests
in java. These should be have comprehensive coverage.
I also tried out execConstructTriples(), I noticed that the result is from
all graphs. When just triples are asked for, only those in the default
graph should be returned. Template.getTriples calls Quad.asTriple. But it
needs to deal with just the default graph, and c can't rely on
Quad.asTriple.
Andy
On 10/08/15 12:44, Qihong Lin wrote:
Hi,
I've enriched the syntax tests with "short form" and "default graph"
cases.
For execution tests, I add the test support in QueryTest for construct
quad with the scripts files and data files in TRIG (see
jena-arq/testing/ARQ/Construct/*.trig). I think construct quad should
be part of the construct of ARQ. So I add the execution tests in
jena-arq/testing/ARQ/Construct/manifest.ttl.
The fuseki part of construct quad has been implemented (not committed
yet). I'll submit the code as soon as the PR 89 [1] being merged.
Anything to be improved for PR 89 from your reviews?
regards,
Qihong
[1] https://github.com/apache/jena/pull/89