anchor.diff:      ;
       
   triplesTemplate
  -    : triplesSameSubject ( DOT triplesSameSubject )* DOT? -> ^(TRIPLESTEMPLATE triplesSameSubject+)
  +    : triplesSameSubject ( DOT triplesSameSubject )* DOT? -> triplesSameSubject ^(TRIPLESTEMPLATE triplesSameSubject*)?
       ;
       	
   groupGraphPattern
  
positive.code:     ;
      
  quads
      : triplesTemplate? ( quadsNotTriples DOT? triplesTemplate? )* -> triplesTemplate? ( quadsNotTriples triplesTemplate? )*
      ;
      
  quadsNotTriples
  
negative.code: 
  triplesSameSubject
      : varOrTerm propertyListNotEmpty[(CommonTree) $varOrTerm.tree] -> propertyListNotEmpty
      | triplesNode propertyListNotEmpty[(CommonTree) $triplesNode.tree]?
      ;
  
  propertyListNotEmpty[CommonTree subject]
  