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