Hi,

Please check my updates of the 3 tasks blow:

1) jena/arq: in master branch (to be merged first)
In PR 89, I added some more tests in TestAPI and TS_Script. The bug of
construct quad projection on exeConstructTriples() has been fixed,
with the tests of 4 cases (commit 03a321f).

2) jena/fuseki: in JENA-491 branch
In PR 91, see commit 0eb28d8. You can try out
org.apache.jena.fuseki.TestQuery.query_construct_01()/query_construct_quad_01()

3) doc: in jena web page (wiki)
I can see the staging page [1]. But when I try the "Improve this Page"
with [1], it redirects me to [2]. I can not find construct_quad.mdtext
under [2]. I also try to open [3], with "Not Found" error. Could you
help me please?

regards,
Qihong

[1] http://jena.staging.apache.org/documentation/query/construct-quad.html
[2] https://cms.apache.org/jena/wc/edit/anonymous-LWMAVL/trunk/
[3] http://jena.apache.org/documentation/query/construct-quad.html

On Tue, Aug 11, 2015 at 10:35 AM, Ying Jiang <jpz6311...@gmail.com> wrote:
> Hi Qihong,
>
> You may have received the reminder email from Google that the final
> evaluation of the GSoC project is approaching. The "soft" deadline is
> 17 August, with the "hard" one on 21 August. It means there're only 2
> weeks left for your remaining work. The tests of arq need improving,
> as Andy points out. You can also deliver the Fuseki part in the other
> branch for review in the mean time. Meanwhile, the documentation can
> be composed in jena web page (wiki). In order to save time, I suggest
> the 3 parts of the work go on simultaneously:
> 1) jena/arq: in master branch (to be merged first)
> 2) jena/fuseki: in JENA-491 branch
> 3) doc: in jena web page (wiki)
>
> Best regards,
> Ying Jiang
>
>
> On Mon, Aug 10, 2015 at 9:58 PM, Andy Seaborne <a...@apache.org> 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
>>>
>>>
>>> On Thu, Aug 6, 2015 at 8:55 PM, Andy Seaborne <a...@apache.org> wrote:
>>>>
>>>> Hi - looking better - I see the syntax tests I provided.
>>>>
>>>> Does that set of tests cover all cases of the new syntax?
>>>>
>>>> Next, we need execution tests for ARQ.
>>>>
>>>>> There will need to be execute tests in jena-arq as well. These can be
>>>>> Junit tests in java and do not need to be external script files.
>>>>> This is separate from testing in Fuseki.
>>>>
>>>>
>>>>
>>>> Do you have any other constraints on your time over the next 2 weeks?
>>>>
>>>>          Andy
>>>>
>>>>
>>>> On 06/08/15 04:18, Qihong Lin wrote:
>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> I've fixed the bugs related to syntax checks. Please see my latest
>>>>> commits. Here're the output of the syntax files through qparse (you
>>>>> can also run "ExampleConstructQuads.java" to get the results). Are
>>>>> these with the expected behaviors, especially for
>>>>> "syntax-quad-construct-07.arq"?
>>>>>
>>>>> run-construct-quad-test: ======== File: syntax-quad-construct-01.arq
>>>>> PREFIX : <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH :g { :s :p :o } } WHERE {} ==== Output of qparse
>>>>> --file syntax-quad-construct-01.arq PREFIX  :     <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH :g { :s :p :o .} } WHERE {  } ======== File:
>>>>> syntax-quad-construct-02.arq PREFIX : <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { ?s ?p ?o } } WHERE { ?s ?p ?o } ==== Output of
>>>>> qparse --file syntax-quad-construct-02.arq PREFIX  :
>>>>> <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { ?s ?p ?o .} } WHERE { ?s  ?p  ?o } ========
>>>>> File: syntax-quad-construct-03.arq PREFIX : <http://example/>
>>>>>
>>>>> CONSTRUCT { :s :p :o } WHERE {} ==== Output of qparse --file
>>>>> syntax-quad-construct-03.arq PREFIX  :     <http://example/>
>>>>>
>>>>> CONSTRUCT { :s :p :o . } WHERE {  } ======== File:
>>>>> syntax-quad-construct-04.arq PREFIX : <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { :s :p :o } ?s ?p ?o } WHERE { GRAPH ?g { ?s ?p
>>>>> ?o } } ==== Output of qparse --file syntax-quad-construct-04.arq
>>>>> PREFIX  :     <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { :s :p :o .} ?s ?p ?o . } WHERE { GRAPH ?g { ?s
>>>>> ?p  ?o } } ======== File: syntax-quad-construct-05.arq PREFIX :
>>>>> <http://example/>
>>>>>
>>>>> CONSTRUCT { ?s ?p ?o GRAPH ?g { :s :p :o } } WHERE { GRAPH ?g { ?s ?p
>>>>> ?o } } ==== Output of qparse --file syntax-quad-construct-05.arq
>>>>> PREFIX  :     <http://example/>
>>>>>
>>>>> CONSTRUCT { ?s ?p ?o . GRAPH ?g { :s :p :o .} } WHERE { GRAPH ?g { ?s
>>>>> ?p  ?o } } ======== File: syntax-quad-construct-06.arq PREFIX :
>>>>> <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { :s :p :o } ?s ?p ?o . ?s ?p ?o . GRAPH ?g { ?s
>>>>> ?p ?o } ?s ?p ?o . ?s ?p ?o GRAPH ?g { ?s ?p ?o } } WHERE { GRAPH ?g
>>>>> { ?s ?p ?o } } ==== Output of qparse --file
>>>>> syntax-quad-construct-06.arq PREFIX  :     <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { :s :p :o .} ?s ?p ?o . ?s ?p ?o . GRAPH ?g {
>>>>> ?s ?p ?o .} ?s ?p ?o . ?s ?p ?o . GRAPH ?g { ?s ?p ?o .} } WHERE {
>>>>> GRAPH ?g { ?s  ?p  ?o } } ======== File:
>>>>> syntax-quad-construct-07.arq PREFIX : <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH <urn:x-arq:DefaultGraphNode> {:s :p :o .} } WHERE
>>>>> {} ==== Output of qparse --file syntax-quad-construct-07.arq PREFIX
>>>>> :     <http://example/>
>>>>>
>>>>> CONSTRUCT { :s :p :o . } WHERE {  } ======== File:
>>>>> syntax-quad-construct-08.arq PREFIX : <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { :s :p :o } GRAPH ?g1 { :s :p :o } } WHERE { }
>>>>> ==== Output of qparse --file syntax-quad-construct-08.arq PREFIX  :
>>>>> <http://example/>
>>>>>
>>>>> CONSTRUCT { GRAPH ?g { :s :p :o .} GRAPH ?g1 { :s :p :o .} } WHERE {
>>>>> }
>>>>>
>>>>> On Sun, Aug 2, 2015 at 9:14 AM, Ying Jiang <jpz6311...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> Hi Qihong,
>>>>>>
>>>>>> I re-checked the code you commited. Most of the hashCode issues
>>>>>> for arq.qparse that Andy pointed out are due to the incorrect
>>>>>> serialization of the Template. The code can only deal with the
>>>>>> quads with the same graph node, for which it may not always be the
>>>>>> case in practcial terms. Please make sure each example syntax file
>>>>>> can pass the checking process of arq.qparse.
>>>>>>
>>>>>> It's August now. You'd better hurry up and make the project
>>>>>> completed on time in the remaining weeks.
>>>>>>
>>>>>> Best regards, Ying Jiang
>>>>>>
>>>>>> On Thu, Jul 30, 2015 at 6:03 AM, Andy Seaborne <a...@apache.org>
>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Output of * each examnple syntax file (the queries are nonsense
>>>>>>> in practcial terms!) * running arq.qparse on the file * notes on
>>>>>>> what seems to be going on
>>>>>>>
>>>>>>> Andy
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-01.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH :g { :s :p :o } } WHERE {} ==== Output of
>>>>>>> qparse --file syntax-quad-construct-01.arq PREFIX  :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH <http://example/g> {:s :p :o .} } WHERE {  }
>>>>>>> ---- Issue: Minor: formatting of <http://example/g> should be :g
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-02.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g { ?s ?p ?o } } WHERE { ?s ?p ?o } ====
>>>>>>> Output of qparse --file syntax-quad-construct-02.arq PREFIX  :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {?s ?p ?o .} } WHERE { ?s  ?p  ?o } ---- OK
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-03.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { :s :p :o } WHERE {} ==== Output of qparse --file
>>>>>>> syntax-quad-construct-03.arq PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH <urn:x-arq:DefaultGraphNode> {:s :p :o .} }
>>>>>>> WHERE {  } ---- Issue: Major: The output is contains "GRAPH
>>>>>>> <urn:x-arq:DefaultGraphNode>"
>>>>>>>
>>>>>>> Note: <urn:x-arq:DefaultGraphNode> is for internal use only.
>>>>>>>
>>>>>>> For syntax, that is a named graph just like <http://example/g>
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-04.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g { :s :p :o } ?s ?p ?o } WHERE { GRAPH ?g {
>>>>>>> ?s ?p ?o } }
>>>>>>>
>>>>>>> ==== Output of qparse --file syntax-quad-construct-04.arq
>>>>>>>
>>>>>>> **** Check failure: reparsed query hashCode does not equal parsed
>>>>>>> input query Query (hashCode: 1768688961)= PREFIX  :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . ?s ?p ?o .} } WHERE { GRAPH ?g {
>>>>>>> ?s  ?p  ?o } }
>>>>>>>
>>>>>>>
>>>>>>> Query2 (hashCode: 1896249441)= PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . ?s ?p ?o .} } WHERE { GRAPH ?g {
>>>>>>> ?s  ?p  ?o } }
>>>>>>>
>>>>>>> PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . ?s ?p ?o .} } WHERE { GRAPH ?g {
>>>>>>> ?s  ?p  ?o } } ---- Issue: The output puts the following triple
>>>>>>> into the GRAPH. See also syntax-quad-construct-08.arq
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-05.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { ?s ?p ?o GRAPH ?g { :s :p :o } } WHERE { GRAPH ?g {
>>>>>>> ?s ?p ?o } }
>>>>>>>
>>>>>>> ==== Output of qparse --file syntax-quad-construct-05.arq
>>>>>>>
>>>>>>> **** Check failure: reparsed query hashCode does not equal parsed
>>>>>>> input query Query (hashCode: -262437683)= PREFIX  :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH <urn:x-arq:DefaultGraphNode> {?s ?p ?o . :s :p
>>>>>>> :o .} } WHERE { GRAPH ?g { ?s  ?p  ?o } }
>>>>>>>
>>>>>>>
>>>>>>> Query2 (hashCode: -399379987)= PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH <urn:x-arq:DefaultGraphNode> {?s ?p ?o . :s :p
>>>>>>> :o .} } WHERE { GRAPH ?g { ?s  ?p  ?o } }
>>>>>>>
>>>>>>> PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH <urn:x-arq:DefaultGraphNode> {?s ?p ?o . :s :p
>>>>>>> :o .} } WHERE { GRAPH ?g { ?s  ?p  ?o } } ---- Issue: Plain ?s ?p
>>>>>>> ?o has been put into a named graph Adjacent blocks have merged.
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-06.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g { :s :p :o } ?s ?p ?o . ?s ?p ?o . GRAPH ?g
>>>>>>> { ?s ?p ?o } ?s ?p ?o . ?s ?p ?o GRAPH ?g { ?s ?p ?o } } WHERE {
>>>>>>> GRAPH ?g { ?s ?p ?o } }
>>>>>>>
>>>>>>> ==== Output of qparse --file syntax-quad-construct-06.arq
>>>>>>>
>>>>>>> **** Check failure: reparsed query hashCode does not equal parsed
>>>>>>> input query Query (hashCode: -1800516808)= PREFIX  :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . ?s ?p ?o . ?s ?p ?o . ?s ?p ?o
>>>>>>> . ?s ?p ?o . ?s ?p ?o . ?s ?p ?o .} } WHERE { GRAPH ?g { ?s  ?p
>>>>>>> ?o } }
>>>>>>>
>>>>>>>
>>>>>>> Query2 (hashCode: -129418312)= PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . ?s ?p ?o . ?s ?p ?o . ?s ?p ?o
>>>>>>> . ?s ?p ?o . ?s ?p ?o . ?s ?p ?o .} } WHERE { GRAPH ?g { ?s  ?p
>>>>>>> ?o } }
>>>>>>>
>>>>>>> PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . ?s ?p ?o . ?s ?p ?o . ?s ?p ?o
>>>>>>> . ?s ?p ?o . ?s ?p ?o . ?s ?p ?o .} } WHERE { GRAPH ?g { ?s  ?p
>>>>>>> ?o } } ---- Issue: Same as previous.
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-07.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH <urn:x-arq:DefaultGraphNode> {:s :p :o .} }
>>>>>>> WHERE {}
>>>>>>>
>>>>>>> ==== Output of qparse --file syntax-quad-construct-07.arq PREFIX
>>>>>>> :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH <urn:x-arq:DefaultGraphNode> {:s :p :o .} }
>>>>>>> WHERE {  } ---- Issue: Should be different.  A named graph of
>>>>>>> GRAPH <urn:x-arq:DefaultGraphNode> is not the default graph.
>>>>>>>
>>>>>>> ======== File: syntax-quad-construct-08.arq PREFIX :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g { :s :p :o } GRAPH ?g1 { :s :p :o } } WHERE
>>>>>>> { }
>>>>>>>
>>>>>>> ==== Output of qparse --file syntax-quad-construct-08.arq
>>>>>>>
>>>>>>> **** Check failure: reparsed query hashCode does not equal parsed
>>>>>>> input query Query (hashCode: 636900208)= PREFIX  :
>>>>>>> <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . :s :p :o .} } WHERE {  }
>>>>>>>
>>>>>>>
>>>>>>> Query2 (hashCode: 636999583)= PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . :s :p :o .} } WHERE {  }
>>>>>>>
>>>>>>> PREFIX  :     <http://example/>
>>>>>>>
>>>>>>> CONSTRUCT { GRAPH ?g {:s :p :o . :s :p :o .} } WHERE {  } ----
>>>>>>> Issue: Adjacent GRAPH blocks have merged.
>>>>>>>
>>>>
>>

Reply via email to