anchor.diff:  	
   triplesNode
       : OPEN_BRACE graphNode+ CLOSE_BRACE -> ^(COLLECTION graphNode+)
  -    | v=OPEN_SQUARE_BRACKET propertyListNotEmpty[(CommonTree) $v.tree] CLOSE_SQUARE_BRACKET -> propertyListNotEmpty
  +    | OPEN_SQUARE_BRACKET propertyListNotEmpty[new CommonTree(new CommonToken(VAR,"[ ]"))] CLOSE_SQUARE_BRACKET -> ^(VAR["[ ]"] propertyListNotEmpty)
       ;
   
   graphNode
  
positive.code:     ;
  
  pathNegatedPropertySet
      : ( pathOneInPropertySet | OPEN_BRACE ( pathOneInPropertySet ( PIPE pathOneInPropertySet )* )? CLOSE_BRACE )
      ;  	
  
  pathOneInPropertySet
  
negative.code: 
  triplesSameSubjectPath
      : varOrTerm propertyListNotEmptyPath[(CommonTree) $varOrTerm.tree] -> ^(TRIPLE propertyListNotEmptyPath)
      | (t=triplesNode -> $t) (p=propertyListNotEmpty[(CommonTree) $triplesNode.tree]? -> ^(TRIPLE $triplesSameSubjectPath $p?))
      ;
    
  propertyListNotEmptyPath[CommonTree subject]
  