anchor.diff:  	:	dataPrimary (AND_LABEL dataPrimary)*
   	;
   
  -classIRI
  -	: iri
  -	;
  -
  -abbreviatedIRI
  -    : prefixName simpleIRI
  -    ;
  -
  -    
  -prefixName
  -    : PN_PREFIX? ':'
  -    ;
  -
   //fragment
  +//ABBREVIATED_IRI
  +//    : PREFIX_NAME SIMPLE_IRI
  +//    ;
  +
  +fragment
  +PREFIX_NAME
  +    : PN_PREFIX ':'
  +    ;
  +
  +fragment
   PN_PREFIX
  -    : (PN_CHARS)* // ~TERMINALS
  +    : (PN_CHARS)*
       ;
   
   fragment
  
positive.code: //	|	dataPropertyExpression EXACTLY_LABEL nonNegativeInteger (dataRange)?
  	;
  
  SOME_LABEL
  	:	'some'
  	;
  
  ONLY_LABEL
  	:	'only'
  	;
  
  VALUE_LABEL
  	:	'value'
  	;
  	
  SELF_LABEL
  	:	'Self'
  	;
  
  MIN_LABEL
  	:	'min'
  	;
  
  MAX_LABEL
  	:	'max'
  	;
  
  EXACTLY_LABEL
  	:	'exactly'
  	;
  
  atomic
  	:	classIRI
  	|	OPEN_CURLY_BRACE individualList CLOSE_CURLY_BRACE
  	|	OPEN_BRACE description CLOSE_BRACE
  	;
  NOT_LABEL
  	:	'not'
  	;
  
  individualList
  	:	individual (COMMA individual)*
  	;
  
  individual
  	: individualIRI
  	| nodeID
  	;
  
  individualIRI
  	: iri
  	;
  
  nodeID
      : '_:' t=simpleIRI //{\$this->setText($t.text); }
      ;
  
  COMMA	:	',';
  
  OPEN_BRACE
  
negative.code: 	;
  
  dataType
  	: iri
  	| INTEGER_LABEL
  	| DECIMAL_LABEL
  	| FLOAT_LABEL
  	| STRING_LABEL
  	;
  
  
  literal
  	: typedLiteral
  