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. >