anchor.diff:      ;
   
   constructQuery
  -    : CONSTRUCT constructTemplate datasetClause* whereClause solutionModifier -> ^(CONSTRUCT constructTemplate* datasetClause* whereClause* solutionModifier*)
  -    | CONSTRUCT datasetClause* WHERE groupGraphPattern solutionModifier -> ^(CONSTRUCT datasetClause* ^(WHERE groupGraphPattern*) solutionModifier*)
  +    : CONSTRUCT constructTemplate datasetClause* whereClause solutionModifier -> ^(CONSTRUCT constructTemplate datasetClause* whereClause* solutionModifier*)
  +    | CONSTRUCT datasetClause* WHERE groupGraphPattern solutionModifier -> ^(CONSTRUCT datasetClause* ^(WHERE_CLAUSE groupGraphPattern*) solutionModifier*)
       ;
   
   describeQuery
  
positive.code:     ;
      
  iriRefOrFunction
      : iriRef 
      | iriRef argList -> ^(FUNCTION iriRef ^(ARG_LIST argList))
      ;
  
  rdfLiteral
  
negative.code: 
  triplesSameSubjectPath
      : varOrTerm propertyListNotEmptyPath -> ^(TRIPLES_SAME_SUBJECT ^(SUBJECT varOrTerm) propertyListNotEmptyPath)
      | triplesNode propertyListNotEmpty? -> ^(TRIPLES_SAME_SUBJECT  triplesNode propertyListNotEmpty?)
      ;
    
  propertyListNotEmptyPath
      : propertyListNotEmptyDetails (SEMICOLON propertyListNotEmptyDetails?)* -> propertyListNotEmptyDetails+
      ;
    
  propertyListNotEmptyDetails
      : verbSimpleOrPath objectList -> ^(PREDICATE  verbSimpleOrPath objectList)
      ;
    
  verbSimpleOrPath
  