anchor.diff:  	
   triplesNode
       : OPEN_BRACE graphNode+ CLOSE_BRACE -> ^(COLLECTION graphNode+)
  -    | OPEN_SQUARE_BRACKET propertyListNotEmpty CLOSE_SQUARE_BRACKET -> ^(TRIPLES_NODE ^(SUBJECT BLANK_NODE) propertyListNotEmpty)
  +    | OPEN_SQUARE_BRACKET propertyListNotEmpty CLOSE_SQUARE_BRACKET -> ^(TRIPLES_NODE propertyListNotEmpty)
       ;
   
   graphNode
  
positive.code: 
  triplesSameSubjectPath
      : varOrTerm propertyListNotEmptyPath -> ^(TRIPLES_SAME_SUBJECT ^(SUBJECT varOrTerm) propertyListNotEmptyPath)
      | triplesNode propertyListNotEmpty? -> ^(TRIPLES_SAME_SUBJECT  triplesNode (^(SUBJECT BLANK_NODE) propertyListNotEmpty)?)
      ;
    
  propertyListNotEmptyPath
      : verbSimpleOrPath objectList (SEMICOLON (verbSimpleOrPath objectList)?)* -> (^(PREDICATE verbSimpleOrPath) objectList)+
      ;
    
  verbSimpleOrPath
  
negative.code: 
  triplesSameSubject
      : varOrTerm propertyListNotEmpty? -> ^(TRIPLES_SAME_SUBJECT ^(SUBJECT varOrTerm) propertyListNotEmpty?)
      | triplesNode propertyListNotEmpty? -> ^(TRIPLES_SAME_SUBJECT triplesNode propertyListNotEmpty?) 
      ;
  
  propertyListNotEmpty
      : propertyListNotEmptyDetails (SEMICOLON propertyListNotEmptyDetails?)* -> propertyListNotEmptyDetails+ 
      ;
  
  objectList
  