anchor.diff:      @init { paraphrases.push("in define namespace."); }
       @after { paraphrases.pop(); }
       :
  -    ('DEFINE' (('DEFAULT')? 'NAMESPACE')) OBJECT_IDENT 'AS' 'URL' QUOTED_VALUE
  +    ('DEFINE' (('DEFAULT')? 'NAMESPACE')) OBJECT_IDENT 'AS' 'URL' quoted_value
       ;
   
   define_annotation
       @init { paraphrases.push("in define annotation."); }
       @after { paraphrases.pop(); }
       :
  -    ('DEFINE' 'ANNOTATION') OBJECT_IDENT 'AS' ((('URL' | 'PATTERN') QUOTED_VALUE) | ('LIST' VALUE_LIST))
  +    ('DEFINE' 'ANNOTATION') OBJECT_IDENT 'AS' ((('URL' | 'PATTERN') quoted_value) | ('LIST' vl=VALUE_LIST))
  +    {
  +        // https://github.com/OpenBEL/openbel-framework/issues/14
  +        if ($vl != null) $vl.setText($vl.getText().replace("\\\\", "\\"));
  +    }
  +    ;
  +
  +quoted_value
  +    : qv=QUOTED_VALUE
  +    {
  +        // https://github.com/OpenBEL/openbel-framework/issues/14
  +        $qv.setText($qv.getText().replace("\\\\", "\\"));
  +    }
       ;
   
   document_property:
  
positive.code: 
  QUOTED_VALUE:
      '"' ( EscapeSequence | '\\\n' | '\\\r\n' | ~('\\'|'"') )* '"'
      { System.out.println("this: " + getText()); setText(getText().replace("\\\\", "\\")); System.out.println("became this: " + getText()); }
      ;
  
  OPEN_PAREN:
  
negative.code: 
  /* XXX OBJECT_IDENT is used for namespace value because otherwise parsing will fail using a token like (LETTER | DIGIT)+ */
  fragment param:
      NS_PREFIX? (OBJECT_IDENT | quoted_value)
      ;
  
  function returns [String r]:
  