Hi, The doc is actually construct-quad.mdtext. In another easy way, You can just compose it offline, and send it to us for review. I can help you commit the mdtext file into svn finally.
Best regards, Ying Jiang On Sat, Aug 15, 2015 at 5:21 PM, Qihong Lin <[email protected]> wrote: > 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 <[email protected]> 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 <[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 >>>> >>>> >>>> On Thu, Aug 6, 2015 at 8:55 PM, Andy Seaborne <[email protected]> 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 <[email protected]> >>>>>> 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 <[email protected]> >>>>>>> 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. >>>>>>>> >>>>> >>>
