anchor.diff:      ;
   
   objectList
  -    : graphNode ( COMMA graphNode )* -> ^(OBJECTLIST graphNode+)
  +    : graphNode ( COMMA graphNode )* -> ^(OBJECT graphNode+)
       ;
   
   verb
  
positive.code: CONSTRUCTTRIPLES;
  PROPERTYLIST;
  COLLECTION;
  BLANKNODEPROPERTYLIST;
  OBJECTLIST;
  TRIPLE;
  NOTEXISTS;
  }
  
  
negative.code:     ;
  
  triplesSameSubjectPath
      : varOrTerm propertyListNotEmptyPath -> ^(TRIPLE ^(SUBJECT varOrTerm*) propertyListNotEmptyPath*)
      | triplesNode propertyListPath -> ^(TRIPLE triplesNode* propertyListPath*)
      ;
    
  propertyListNotEmptyPath
      : ( verbPath | verbSimple ) objectList ( SEMICOLON ( ( verbPath | verbSimple ) objectList )? )* -> (^(PREDICATE verbPath? verbSimple?) objectList)+
      ;
  
  propertyListPath
  