[1] parse ::= Statement* [2] Statement ::= ( Directive | TriplesSameSubject ) '.' [3] Directive ::= 'PREFIX' QNAME_NS Q_IRI_REF [4] TriplesSameSubject ::= VarOrTerm PropertyListNotEmpty | TriplesNode PropertyList [5] PropertyList ::= PropertyListNotEmpty? [6] PropertyListNotEmpty ::= Verb ObjectList ( ';' ( Verb ObjectList )? )* [7] ObjectList ::= Object ( ',' Object )* [8] Object ::= GraphNode [9] Verb ::= IRIref | 'a' | '=>' [10] TriplesNode ::= Collection | BlankNodePropertyList [11] BlankNodePropertyList ::= '[' PropertyListNotEmpty ']' [12] Collection ::= '(' GraphNode+ ')' [13] GraphNode ::= VarOrTerm | TriplesNode [14] VarOrTerm ::= Var | GraphTerm | Formula [15] Formula ::= '{' TriplesSameSubject ( '.' TriplesSameSubject? )* '}' [16] Var ::= VAR1 | VAR2 [17] GraphTerm ::= IRIref | RDFLiteral | ( '-' | '+' )? NumericLiteral | BlankNode | NIL [18] NumericLiteral ::= INTEGER | DECIMAL | DOUBLE [19] RDFLiteral ::= String ( Langtag | ( '^^' IRIref ) )? [20] Langtag ::= LANGTAG | 'PREFIX' [21] String ::= STRING_LITERAL1 | STRING_LITERAL2 | STRING_LITERAL_LONG1 | STRING_LITERAL_LONG2 [22] IRIref ::= Q_IRI_REF | QName [23] QName ::= QNAME | QNAME_NS [24] BlankNode ::= BLANK_NODE_LABEL | ANON [25] Q_IRI_REF ::= '<' ([^<>'{}|^`]-[#x00-#x20])* '>' [26] QNAME_NS ::= NCNAME_PREFIX? ':' [27] QNAME ::= NCNAME_PREFIX? ':' NCNAME? [28] BLANK_NODE_LABEL ::= '_:' NCNAME [29] VAR1 ::= '?' VARNAME [30] VAR2 ::= '$' VARNAME [31] LANGTAG ::= '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)* [32] INTEGER ::= [0-9]+ [33] DECIMAL ::= [0-9]+ '.' [0-9]* | '.' [0-9]+ [34] DOUBLE ::= [0-9]+ '.' [0-9]* EXPONENT | '.' ([0-9])+ EXPONENT | ([0-9])+ EXPONENT [35] EXPONENT ::= [eE] [+-]? [0-9]+ [36] STRING_LITERAL1 ::= "'" ( ([^#x27#x5C#xA#xD]) | ECHAR | UCHAR )* "'" [37] STRING_LITERAL2 ::= '"' ( ([^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* '"' [38] STRING_LITERAL_LONG1 ::= "'''" ( ( "'" | "''" )? ( [^'\] | ECHAR | UCHAR ) )* "'''" [39] STRING_LITERAL_LONG2 ::= '"""' ( ( '"' | '""' )? ( [^"\] | ECHAR | UCHAR ) )* '"""' [40] ECHAR ::= '\' [tbnrf\"'] [41] UCHAR ::= '\' ( 'u' HEX HEX HEX HEX | 'U' HEX HEX HEX HEX HEX HEX HEX HEX ) [42] HEX ::= [0-9] | [A-F] | [a-f] [43] NIL ::= '(' WS* ')' [44] WS ::= #x20 | #x9 | #xD | #xA [45] ANON ::= '[' WS* ']' [46] NCCHAR1p ::= [A-Z] | [a-z] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | [#x00F8-#x02FF] | [#x0370-#x037D] | [#x037F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] | UCHAR [47] NCCHAR1 ::= NCCHAR1p | '_' [48] VARNAME ::= ( NCCHAR1 | [0-9] ) ( NCCHAR1 | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] )* [49] NCCHAR ::= NCCHAR1 | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] [50] NCNAME_PREFIX ::= NCCHAR1p ((NCCHAR|'.')* NCCHAR)? [51] NCNAME ::= NCCHAR1 ((NCCHAR|'.')* NCCHAR)?