Productions:

[1]    bundle    ::=    "bundle" (namespaceDeclarations)? (expression)* (( namedBundle (namedBundle)* ))? "endBundle"
[2]    namedBundle    ::=    "bundle" identifier (namespaceDeclarations)? (expression)* "endBundle"
[3]    namespaceDeclarations    ::=    ( defaultNamespaceDeclaration | namespaceDeclaration ) (namespaceDeclaration)*
[4]    namespaceDeclaration    ::=    "prefix" QUALNAME namespace
[5]    namespace    ::=    IRI_REF
[6]    defaultNamespaceDeclaration    ::=    "default" IRI_REF
[7]    expression    ::=    ( entityExpression | activityExpression | generationExpression | usageExpression | startExpression | endExpression | invalidationExpression | communicationExpression | startByActivityExpression | agentExpression | associationExpression | attributionExpression | responsibilityExpression | derivationExpression | tracedToExpression | hadOriginalSourceExpression | quotationExpression | revisionExpression | alternateExpression | specializationExpression )
[8]    entityExpression    ::=    "entity" "(" identifier optionalAttributeValuePairs ")"
[9]    activityExpression    ::=    "activity" "(" identifier activityOptionals ")"
[10]    activityOptionals    ::=   
| "," "[" attributeValuePairs "]"
| "," activityTimes (( "," "[" attributeValuePairs "]" ))?
[11]    activityTimes    ::=    timeOrMarker "," timeOrMarker
[12]    generationExpression    ::=    "wasGeneratedBy" "(" identifier identifierAndTimeAndAttributeOptionals ")"
| "wasGeneratedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
[13]    identifierAndTimeAndAttributeOptionals    ::=   
| "," "[" attributeValuePairs "]"
| "," identifierOrMarker "," timeOrMarker (( "," "[" attributeValuePairs "]" ))?
[14]    identifierAndAttributeOptionals    ::=   
| "," "[" attributeValuePairs "]"
| "," identifierOrMarker (( "," "[" attributeValuePairs "]" ))?
[15]    threeIdentifiersAndAttributeOptionals    ::=   
| "," "[" attributeValuePairs "]"
| "," identifierOrMarker "," identifierOrMarker "," identifierOrMarker (( "," "[" attributeValuePairs "]" ))?
[16]    timeAndAttributeOptionals    ::=   
| "," "[" attributeValuePairs "]"
| "," timeOrMarker (( "," "[" attributeValuePairs "]" ))?
[17]    timeOrMarker    ::=    ( timeZZ | "-" )
[18]    identifierOrMarker    ::=    ( identifier | "-" )
[19]    usageExpression    ::=    "used" "(" identifier "," identifier timeAndAttributeOptionals ")"
| "used" "(" identifierOrMarker ";" identifier "," identifier timeAndAttributeOptionals ")"
[20]    startExpression    ::=    "wasStartedBy" "(" identifier identifierAndTimeAndAttributeOptionals ")"
| "wasStartedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
[21]    endExpression    ::=    "wasEndedBy" "(" identifier identifierAndTimeAndAttributeOptionals ")"
| "wasEndedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
[22]    invalidationExpression    ::=    "wasInvalidatedBy" "(" identifier identifierAndTimeAndAttributeOptionals ")"
| "wasInvalidatedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
[23]    communicationExpression    ::=    "wasInformedBy" "(" identifier "," identifier optionalAttributeValuePairs ")"
| "wasInformedBy" "(" identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
[24]    startByActivityExpression    ::=    "wasStartedByActivity" "(" identifier "," identifier optionalAttributeValuePairs ")"
| "wasStartedByActivity" "(" identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
[25]    agentExpression    ::=    "agent" "(" identifier optionalAttributeValuePairs ")"
[26]    attributionExpression    ::=    "wasAttributedTo" "(" identifier "," identifier optionalAttributeValuePairs ")"
| "wasAttributedTo" "(" identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
[27]    associationExpression    ::=    "wasAssociatedWith" "(" identifier "," identifierOrMarker identifierAndAttributeOptionals ")"
| "wasAssociatedWith" "(" identifierOrMarker ";" identifier "," identifierOrMarker identifierAndAttributeOptionals ")"
[28]    responsibilityExpression    ::=    "actedOnBehalfOf" "(" identifier "," identifier identifierAndAttributeOptionals ")"
| "actedOnBehalfOf" "(" identifierOrMarker ";" identifier "," identifier identifierAndAttributeOptionals ")"
[29]    derivationExpression    ::=    "wasDerivedFrom" "(" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
| "wasDerivedFrom" "(" identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
[30]    revisionExpression    ::=    "wasRevisionOf" "(" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
| "wasRevisionOf" "(" identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
[31]    quotationExpression    ::=    "wasQuotedFrom" "(" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
| "wasQuotedFrom" "(" identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
[32]    hadOriginalSourceExpression    ::=    "hadOriginalSource" "(" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
| "hadOriginalSource" "(" identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
[33]    tracedToExpression    ::=    "tracedTo" "(" identifier "," identifier optionalAttributeValuePairs ")"
| "tracedTo" "(" identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
[34]    alternateExpression    ::=    "alternateOf" "(" identifier "," identifier ")"
[35]    specializationExpression    ::=    "specializationOf" "(" identifier "," identifier ")"
[36]    optionalAttributeValuePairs    ::=    (( "," "[" attributeValuePairs "]" ))?
[37]    identifier    ::=    QUALNAME
[38]    attribute    ::=    QUALNAME
[39]    attributeValuePairs    ::=    ( | attributeValuePair (( "," attributeValuePair ))* )
[40]    attributeValuePair    ::=    attribute "=" literal
[41]    timeZZ    ::=    ISODATETIME
[42]    literal    ::=    StringLiteral
| QUALNAME_LITERAL
| INTLITERAL
| StringLiteral "%%" datatype
[43]    datatype    ::=    IRI_REF
| QUALNAME
[44]    StringLiteral    ::=    STRING_LITERAL
[45]    <QUALNAME_OLD>    ::=    (( PN_PREFIX ":" ))? PN_LOCAL
| PN_PREFIX ":"
[46]    <INTLITERAL>    ::=    ("-")? (DIGIT)+
[47]    <QUALNAME>    ::=    PN_PREFIX ":" (PN_LOCAL)?
| PN_LOCAL
[48]    <PREFX>    ::=    PN_PREFIX
[49]    <DIGIT>    ::=    [0-9]
[50]    <ISODATETIME>    ::=    DIGIT DIGIT DIGIT DIGIT "-" DIGIT DIGIT "-" DIGIT DIGIT "T" DIGIT DIGIT ":" DIGIT DIGIT ":" DIGIT DIGIT (( "." DIGIT (( DIGIT (DIGIT)? ))? ))? (( "Z" | TIMEZONEOFFSET ))?
[51]    <TIMEZONEOFFSET>    ::=    ( "+" | "-" ) DIGIT DIGIT ":" DIGIT DIGIT
[52]    <IRI_REF>    ::=    "<" (( [^<>\"{}|^`\\] - [#0000- ] | UCHAR ))* ">"
[53]    <STRING_LITERAL>    ::=    '"' (( ( [^\"\\\n\r] ) | ECHAR | UCHAR ))* '"'
[54]    <QUALNAME_LITERAL>    ::=    "'" QUALNAME "'"
[55]    <UCHAR>    ::=    ( "\\u" HEX HEX HEX HEX )
| ( "\\U" HEX HEX HEX HEX HEX HEX HEX HEX )
[56]    <ECHAR>    ::=    "\\" [tbnrf\\\"']
[57]    <NIL>    ::=    "(" (( WS ))* ")"
[58]    <WS>    ::=    " "
| "\t"
| "\r"
| "\n"
[59]    <ANON>    ::=    "[" (( WS ))* "]"
[60]    <PN_CHARS_BASE>    ::=    [A-Z]
| [a-z]
| [#00C0-#00D6]
| [#00D8-#00F6]
| [#00F8-#02FF]
| [#0370-#037D]
| [#037F-#1FFF]
| [#200C-#200D]
| [#2070-#218F]
| [#2C00-#2FEF]
| [#3001-#D7FF]
| [#F900-#FDCF]
| [#FDF0-#FFFD]
| [#10000-#EFFFF]
[61]    <PN_CHARS_U>    ::=    PN_CHARS_BASE
| "_"
[62]    <PN_CHARS>    ::=    PN_CHARS_U
| "-"
| [0-9]
|
| [#0300-#036F]
| [#203F-#2040]
[63]    <PN_PREFIX>    ::=    PN_CHARS_BASE (( (( PN_CHARS | "." ))* PN_CHARS ))?
[64]    <PN_LOCAL>    ::=    ( PN_CHARS_U | [0-9] | PN_CHARS_OTHERS ) (( (( PN_CHARS | "." | PN_CHARS_OTHERS ))* ( PN_CHARS | PN_CHARS_OTHERS ) ))?
[65]    <PN_CHARS_OTHERS>    ::=    PERCENT
| "/"
| "@"
| "~"
| "&"
| "+"
| "?"
| "#"
| "$"
[66]    <PERCENT>    ::=    "%" HEX HEX
[67]    <HEX>    ::=    [0-9]
| [A-F]
| [a-f]
[68]    <PN_LOCAL_ESC>    ::=    "\\" ( "_" | "~" | "." | "-" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | ":" | "/" | "?" | "#" | "@" | "%" )
[69]    PASSED TOKENS    ::=    ([ \t\r\n])+
| "#" ([^\r\n])*