#Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp # using base file:///devel/WWW/2000/10/swap/grammar/ # Notation3 generation by # notation3.py,v 1.200 2007/12/11 21:18:08 syosi Exp # Base was: file:///devel/WWW/2000/10/swap/grammar/ @prefix : . @prefix bnf: . @prefix log: . @prefix n3r: . @prefix rul: . @forSome <#_g0>, <#_g1>, <#_g2>, <#_g3>, <#_g4>, <#_g5>, <#_g6>, <#_g7> . "!" :reference """"!"""" . "(" :reference """"("""" . ")" :reference """")"""" . "," :reference """","""" . "." :reference """"."""" . ";" :reference """";"""" . "=" :reference """"="""" . "=>" :reference """"=>"""" . "@" :reference """"@"""" . "@a" :reference """"@a"""" . "@base" :reference """"@base"""" . "@forAll" :reference """"@forAll"""" . "@forSome" :reference """"@forSome"""" . "@has" :reference """"@has"""" . "@is" :reference """"@is"""" . "@keywords" :reference """"@keywords"""" . "@of" :reference """"@of"""" . "@prefix" :reference """"@prefix"""" . "[" :reference """"["""" . "]" :reference """"]"""" . "^" :reference """"^"""" . "^^" :reference """"^^"""" . "{" :reference """"{"""" . "}" :reference """"}"""" . () a :Sequence, :SequenceTail; :seqlabel "void" . ( "!" n3r:path ) a :Sequence, :SequenceTail; :seqlabel """"!" path""" . ( "(" n3r:itemlist ")" ) a :Sequence, :SequenceTail; :seqlabel """"(" itemlist ")"""" . ( ")" ) a :SequenceTail; :seqlabel """")"""" . ( "," n3r:barename <#_g7> ) a :Sequence, :SequenceTail; :seqlabel """"," barename barename_csl""" . ( "," n3r:object n3r:objecttail ) a :Sequence, :SequenceTail; :seqlabel """"," object objecttail""" . ( "," n3r:symbol <#_g5> ) a :Sequence, :SequenceTail; :seqlabel """"," symbol symbol_csl""" . ( "," n3r:symbol <#_g6> ) a :Sequence, :SequenceTail; :seqlabel """"," symbol symbol_csl""" . ( "." n3r:statementlist ) a :Sequence, :SequenceTail; :seqlabel """"." statementlist""" . ( "." n3r:statements_optional ) a :SequenceTail; :seqlabel """"." statements_optional""" . ( "." ) a :Sequence, :SequenceTail; :seqlabel """"."""" . ( "0" 0 ) log:outputString """ BNF

BNF

Productions are in normal type, linked to their definitions.
Regular expressions are in italics
Literal characters in quoted in bold
void means an empty production.

""" . ( ";" n3r:propertylist ) a :Sequence, :SequenceTail; :seqlabel """";" propertylist""" . ( "=" ) a :Sequence, :SequenceTail; :seqlabel """"="""" . ( "=>" "{" n3r:formula_safe "}" ) a :SequenceTail . ( "=>" "{" n3r:formulacontent "}" ) a :SequenceTail; :seqlabel """"=>" "{" formulacontent "}"""" . ( "@" n3r:langcode ) a :Sequence, :SequenceTail; :seqlabel """"@" langcode""" . ( "@a" ) a :Sequence, :SequenceTail; :seqlabel """"@a"""" . ( "@base" n3r:explicituri "." ) a :Sequence, :SequenceTail; :seqlabel """"@base" explicituri "."""" . ( "@forAll" <#_g5> ) a :Sequence, :SequenceTail; :seqlabel """"@forAll" symbol_csl""" . ( "@forSome" <#_g6> ) a :Sequence, :SequenceTail; :seqlabel """"@forSome" symbol_csl""" . ( "@has" n3r:prop ) a :Sequence, :SequenceTail; :seqlabel """"@has" prop""" . ( "@is" n3r:prop "@of" ) a :Sequence, :SequenceTail; :seqlabel """"@is" prop "@of"""" . ( "@keywords" <#_g7> ) a :Sequence, :SequenceTail; :seqlabel """"@keywords" barename_csl""" . ( "@of" ) a :SequenceTail; :seqlabel """"@of"""" . ( "@prefix" n3r:qname n3r:explicituri "." ) a :Sequence, :SequenceTail; :seqlabel """"@prefix" qname explicituri "."""" . ( "[" n3r:propertylist "]" ) a :Sequence, :SequenceTail; :seqlabel """"[" propertylist "]"""" . ( "]" ) a :SequenceTail; :seqlabel """"]"""" . ( "^" n3r:path ) a :Sequence, :SequenceTail; :seqlabel """"^" path""" . ( "^^" n3r:symbol ) a :Sequence, :SequenceTail; :seqlabel """"^^" symbol""" . ( "alphanumeric" 0 ) log:outputString """
alphanumeric
""" . ( "alphanumeric" 6 ) log:outputString """

[a-zA-Z][a-zA-Z0-9_]*

""" . ( "alphanumeric" 9 ) log:outputString "\t
\n" . ( "barename" 0 ) log:outputString """
barename
""" . ( "barename" 6 ) log:outputString """

[a-zA-Z_][a-zA-Z0-9_]*

""" . ( "barename" 9 ) log:outputString "\t
\n" . ( "barename_csl" 0 ) log:outputString """
barename_csl
""" . ( "barename_csl" 5 ) log:outputString """

"," barename barename_csl

""", """

"."

""" . ( "barename_csl" 9 ) log:outputString "\t
\n" . ( "declaration" 0 ) log:outputString """
declaration
""" . ( "declaration" 5 ) log:outputString """

"@base" explicituri "."

""", """

"@keywords" barename_csl

""", """

"@prefix" qname explicituri "."

""" . ( "declaration" 9 ) log:outputString "\t
\n" . ( "declaration_s" 0 ) log:outputString """
declaration_s
""" . ( "declaration_s" 5 ) log:outputString """

declaration declaration_s

""", """

void

""" . ( "declaration_s" 9 ) log:outputString "\t
\n" . ( "dtlang" 0 ) log:outputString """
dtlang
""" . ( "dtlang" 5 ) log:outputString """

"@" langcode

""", """

"^^" symbol

""", """

void

""" . ( "dtlang" 9 ) log:outputString "\t
\n" . ( "existential" 0 ) log:outputString """
existential
""" . ( "existential" 5 ) log:outputString """

"@forSome" symbol_csl

""" . ( "existential" 9 ) log:outputString "\t
\n" . ( "existential_s" 0 ) log:outputString """
existential_s
""" . ( "existential_s" 5 ) log:outputString """

existential existential_s

""", """

void

""" . ( "existential_s" 9 ) log:outputString "\t
\n" . ( "explicituri" 0 ) log:outputString """
explicituri
""" . ( "explicituri" 6 ) log:outputString """

<[^>].*>

""" . ( "explicituri" 9 ) log:outputString "\t
\n" . ( "formulacontent" 0 ) log:outputString """
formulacontent
""" . ( "formulacontent" 5 ) log:outputString """

declaration_s existential_s statementlist

""" . ( "formulacontent" 9 ) log:outputString "\t
\n" . ( "item" 0 ) log:outputString """
item
""" . ( "item" 5 ) log:outputString """

path

""" . ( "item" 9 ) log:outputString "\t
\n" . ( "itemlist" 0 ) log:outputString """
itemlist
""" . ( "itemlist" 5 ) log:outputString """

item itemlist

""", """

void

""" . ( "itemlist" 9 ) log:outputString "\t
\n" . ( "langcode" 0 ) log:outputString """
langcode
""" . ( "langcode" 6 ) log:outputString """

[a-zA-Z0-9]+(-[a-zA-Z0-9]+)?

""" . ( "langcode" 9 ) log:outputString "\t
\n" . ( "literal" 0 ) log:outputString """
literal
""" . ( "literal" 5 ) log:outputString """

string dtlang

""" . ( "literal" 9 ) log:outputString "\t
\n" . ( "n3document" 0 ) log:outputString """
n3document
""" . ( "n3document" 5 ) log:outputString """

declaration_s universal_s existential_s statements_optional EOF

""" . ( "n3document" 9 ) log:outputString "\t
\n" . ( "node" 0 ) log:outputString """
node
""" . ( "node" 5 ) log:outputString """

literal

""", """

numericliteral

""", """

symbol

""", """

variable

""", """

"(" itemlist ")"

""", """

"[" propertylist "]"

""" . ( "node" 9 ) log:outputString "\t
\n" . ( "node_safe" 0 ) log:outputString """
node_safe
""" . ( "node_safe" 5 ) log:outputString """

literal

""", """

numericliteral

""", """

symbol

""", """

variable

""" . ( "node_safe" 9 ) log:outputString "\t
\n" . ( "numericliteral" 0 ) log:outputString """
numericliteral
""" . ( "numericliteral" 6 ) log:outputString """

[-+]?[0-9]+(\\.[0-9]+)?(e[-+]?[0-9]+)?

""" . ( "numericliteral" 9 ) log:outputString "\t
\n" . ( "object" 0 ) log:outputString """
object
""" . ( "object" 5 ) log:outputString """

item

""" . ( "object" 9 ) log:outputString "\t
\n" . ( "objecttail" 0 ) log:outputString """
objecttail
""" . ( "objecttail" 5 ) log:outputString """

"," object objecttail

""", """

void

""" . ( "objecttail" 9 ) log:outputString "\t
\n" . ( "path" 0 ) log:outputString """
path
""" . ( "path" 5 ) log:outputString """

node pathtail

""" . ( "path" 9 ) log:outputString "\t
\n" . ( "pathtail" 0 ) log:outputString """
pathtail
""" . ( "pathtail" 5 ) log:outputString """

"!" path

""", """

"^" path

""", """

void

""" . ( "pathtail" 9 ) log:outputString "\t
\n" . ( "prop" 0 ) log:outputString """
prop
""" . ( "prop" 5 ) log:outputString """

node

""" . ( "prop" 9 ) log:outputString "\t
\n" . ( "propertylist" 0 ) log:outputString """
propertylist
""" . ( "propertylist" 5 ) log:outputString """

verb object objecttail propertylisttail

""", """

void

""" . ( "propertylist" 9 ) log:outputString "\t
\n" . ( "propertylisttail" 0 ) log:outputString """
propertylisttail
""" . ( "propertylisttail" 5 ) log:outputString """

";" propertylist

""", """

void

""" . ( "propertylisttail" 9 ) log:outputString "\t
\n" . ( "qname" 0 ) log:outputString """
qname
""" . ( "qname" 6 ) log:outputString """

(([a-zA-Z_][a-zA-Z0-9_]*)?:)?([a-zA-Z_][a-zA-Z0-9_]*)?

""" . ( "qname" 9 ) log:outputString "\t
\n" . ( "rule" 0 ) log:outputString """
rule
""" . ( "rule" 5 ) log:outputString """

"{" formulacontent "}" "=>" "{" formulacontent "}"

""" . ( "rule" 9 ) log:outputString "\t
\n" . ( "rule_safe" 0 ) log:outputString """
rule_safe
""" . ( "rule_safe" 9 ) log:outputString "\t
\n" . ( "statement" 0 ) log:outputString """
statement
""" . ( "statement" 5 ) log:outputString """

subject propertylist

""" . ( "statement" 9 ) log:outputString "\t
\n" . ( "statement_or_rule" 0 ) log:outputString """
statement_or_rule
""" . ( "statement_or_rule" 5 ) log:outputString """

rule

""", """

statement

""" . ( "statement_or_rule" 9 ) log:outputString "\t
\n" . ( "statementlist" 0 ) log:outputString """
statementlist
""" . ( "statementlist" 5 ) log:outputString """

statement statementtail

""", """

void

""" . ( "statementlist" 9 ) log:outputString "\t
\n" . ( "statements_optional" 0 ) log:outputString """
statements_optional
""" . ( "statements_optional" 5 ) log:outputString """

statement_or_rule "." statements_optional

""", """

void

""" . ( "statements_optional" 9 ) log:outputString "\t
\n" . ( "statementtail" 0 ) log:outputString """
statementtail
""" . ( "statementtail" 5 ) log:outputString """

"." statementlist

""", """

void

""" . ( "statementtail" 9 ) log:outputString "\t
\n" . ( "string" 0 ) log:outputString """
string
""" . ( "string" 6 ) log:outputString """

(\"""[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*\""")|("[^"\\\\]*(?:\\\\.[^"\\\\]*)*")

""" . ( "string" 9 ) log:outputString "\t
\n" . ( "subject" 0 ) log:outputString """
subject
""" . ( "subject" 5 ) log:outputString """

item

""" . ( "subject" 9 ) log:outputString "\t
\n" . ( "symbol" 0 ) log:outputString """
symbol
""" . ( "symbol" 5 ) log:outputString """

explicituri

""", """

qname

""" . ( "symbol" 9 ) log:outputString "\t
\n" . ( "symbol_csl" 0 ) log:outputString """
symbol_csl
""" . ( "symbol_csl" 5 ) log:outputString """

"," symbol symbol_csl

""", """

"."

""" . ( "symbol_csl" 9 ) log:outputString "\t
\n" . ( "universal" 0 ) log:outputString """
universal
""" . ( "universal" 5 ) log:outputString """

"@forAll" symbol_csl

""" . ( "universal" 9 ) log:outputString "\t
\n" . ( "universal_s" 0 ) log:outputString """
universal_s
""" . ( "universal_s" 5 ) log:outputString """

universal universal_s

""", """

void

""" . ( "universal_s" 9 ) log:outputString "\t
\n" . ( "variable" 0 ) log:outputString """
variable
""" . ( "variable" 6 ) log:outputString """

\\?[a-zA-Z_][a-zA-Z0-9_]*

""" . ( "variable" 9 ) log:outputString "\t
\n" . ( "verb" 0 ) log:outputString """
verb
""" . ( "verb" 5 ) log:outputString """

prop

""", """

"="

""", """

"@a"

""", """

"@has" prop

""", """

"@is" prop "@of"

""" . ( "verb" 9 ) log:outputString "\t
\n" . ( "{" n3r:formula_safe "}" ) a :SequenceTail . ( "{" n3r:formulacontent "}" "=>" "{" n3r:formula_safe "}" ) a :Sequence, :SequenceTail . ( "{" n3r:formulacontent "}" "=>" "{" n3r:formulacontent "}" ) a :Sequence, :SequenceTail; :seqlabel """"{" formulacontent "}" "=>" "{" formulacontent "}"""" . ( "{" n3r:formulacontent "}" ) a :SequenceTail; :seqlabel """"{" formulacontent "}"""" . ( "}" "=>" "{" n3r:formula_safe "}" ) a :SequenceTail . ( "}" "=>" "{" n3r:formulacontent "}" ) a :SequenceTail; :seqlabel """"}" "=>" "{" formulacontent "}"""" . ( "}" ) a :SequenceTail; :seqlabel """"}"""" . ( "~~" 9 ) log:outputString "\n
\n\n" . ( bnf:eof ) a :SequenceTail; :seqlabel "EOF" . ( n3r:barename <#_g7> ) a :SequenceTail; :seqlabel "barename barename_csl" . ( n3r:declaration <#_g0> ) a :Sequence, :SequenceTail; :seqlabel "declaration declaration_s" . ( n3r:declaration <#_g3> ) a :Sequence, :SequenceTail; :seqlabel "declaration declaration_s" . ( n3r:dtlang ) a :SequenceTail; :seqlabel "dtlang" . ( n3r:existential <#_g2> ) a :Sequence, :SequenceTail; :seqlabel "existential existential_s" . ( n3r:existential <#_g4> ) a :Sequence, :SequenceTail; :seqlabel "existential existential_s" . ( n3r:explicituri "." ) a :SequenceTail; :seqlabel """explicituri "."""" . ( n3r:explicituri ) a :Sequence, :SequenceTail; :seqlabel "explicituri" . ( n3r:formula_safe "}" ) a :SequenceTail . ( n3r:formulacontent "}" "=>" "{" n3r:formula_safe "}" ) a :SequenceTail . ( n3r:formulacontent "}" "=>" "{" n3r:formulacontent "}" ) a :SequenceTail; :seqlabel """formulacontent "}" "=>" "{" formulacontent "}"""" . ( n3r:formulacontent "}" ) a :SequenceTail; :seqlabel """formulacontent "}"""" . ( n3r:item n3r:itemlist ) a :Sequence, :SequenceTail; :seqlabel "item itemlist" . ( n3r:item ) a :Sequence, :SequenceTail; :seqlabel "item" . ( n3r:itemlist ")" ) a :SequenceTail; :seqlabel """itemlist ")"""" . ( n3r:itemlist ) a :SequenceTail; :seqlabel "itemlist" . ( n3r:langcode ) a :SequenceTail; :seqlabel "langcode" . ( n3r:literal ) a :Sequence, :SequenceTail; :seqlabel "literal" . ( n3r:node n3r:pathtail ) a :Sequence, :SequenceTail; :seqlabel "node pathtail" . ( n3r:node ) a :Sequence, :SequenceTail; :seqlabel "node" . ( n3r:numericliteral ) a :Sequence, :SequenceTail; :seqlabel "numericliteral" . ( n3r:object n3r:objecttail n3r:propertylisttail ) a :SequenceTail; :seqlabel "object objecttail propertylisttail" . ( n3r:object n3r:objecttail ) a :SequenceTail; :seqlabel "object objecttail" . ( n3r:objecttail n3r:propertylisttail ) a :SequenceTail; :seqlabel "objecttail propertylisttail" . ( n3r:objecttail ) a :SequenceTail; :seqlabel "objecttail" . ( n3r:path ) a :Sequence, :SequenceTail; :seqlabel "path" . ( n3r:pathtail ) a :SequenceTail; :seqlabel "pathtail" . ( n3r:prop "@of" ) a :SequenceTail; :seqlabel """prop "@of"""" . ( n3r:prop ) a :Sequence, :SequenceTail; :seqlabel "prop" . ( n3r:propertylist "]" ) a :SequenceTail; :seqlabel """propertylist "]"""" . ( n3r:propertylist ) a :SequenceTail; :seqlabel "propertylist" . ( n3r:propertylisttail ) a :SequenceTail; :seqlabel "propertylisttail" . ( n3r:qname n3r:explicituri "." ) a :SequenceTail; :seqlabel """qname explicituri "."""" . ( n3r:qname ) a :Sequence, :SequenceTail; :seqlabel "qname" . ( n3r:rule ) a :Sequence, :SequenceTail; :seqlabel "rule" . ( n3r:statement n3r:statementtail ) a :Sequence, :SequenceTail; :seqlabel "statement statementtail" . ( n3r:statement ) a :Sequence, :SequenceTail; :seqlabel "statement" . ( n3r:statement_or_rule "." n3r:statements_optional ) a :Sequence, :SequenceTail; :seqlabel """statement_or_rule "." statements_optional""" . ( n3r:statementlist ) a :SequenceTail; :seqlabel "statementlist" . ( n3r:statements_optional bnf:eof ) a :SequenceTail; :seqlabel "statements_optional EOF" . ( n3r:statements_optional ) a :SequenceTail; :seqlabel "statements_optional" . ( n3r:statementtail ) a :SequenceTail; :seqlabel "statementtail" . ( n3r:string n3r:dtlang ) a :Sequence, :SequenceTail; :seqlabel "string dtlang" . ( n3r:subject n3r:propertylist ) a :Sequence, :SequenceTail; :seqlabel "subject propertylist" . ( n3r:symbol <#_g5> ) a :SequenceTail; :seqlabel "symbol symbol_csl" . ( n3r:symbol <#_g6> ) a :SequenceTail; :seqlabel "symbol symbol_csl" . ( n3r:symbol ) a :Sequence, :SequenceTail; :seqlabel "symbol" . ( n3r:universal <#_g1> ) a :Sequence, :SequenceTail; :seqlabel "universal universal_s" . ( n3r:variable ) a :Sequence, :SequenceTail; :seqlabel "variable" . ( n3r:verb n3r:object n3r:objecttail n3r:propertylisttail ) a :Sequence, :SequenceTail; :seqlabel "verb object objecttail propertylisttail" . ( <#_g0> <#_g1> <#_g2> n3r:statements_optional bnf:eof ) a :Sequence, :SequenceTail; :seqlabel "declaration_s universal_s existential_s statements_optional EOF" . ( <#_g0> ) a :SequenceTail; :seqlabel "declaration_s" . ( <#_g1> <#_g2> n3r:statements_optional bnf:eof ) a :SequenceTail; :seqlabel "universal_s existential_s statements_optional EOF" . ( <#_g1> ) a :SequenceTail; :seqlabel "universal_s" . ( <#_g2> n3r:statements_optional bnf:eof ) a :SequenceTail; :seqlabel "existential_s statements_optional EOF" . ( <#_g2> ) a :SequenceTail; :seqlabel "existential_s" . ( <#_g3> <#_g4> n3r:statementlist ) a :Sequence, :SequenceTail; :seqlabel "declaration_s existential_s statementlist" . ( <#_g3> ) a :SequenceTail; :seqlabel "declaration_s" . ( <#_g4> n3r:statementlist ) a :SequenceTail; :seqlabel "existential_s statementlist" . ( <#_g4> ) a :SequenceTail; :seqlabel "existential_s" . ( <#_g5> ) a :SequenceTail; :seqlabel "symbol_csl" . ( <#_g6> ) a :SequenceTail; :seqlabel "symbol_csl" . ( <#_g7> ) a :SequenceTail; :seqlabel "barename_csl" . bnf:syntaxFor [ bnf:internetMediaType ] . bnf:eof :reference "EOF" . n3r:alphanumeric a :Production; bnf:canStartWith "a"; bnf:label "alphanumeric"; bnf:matches "[a-zA-Z][a-zA-Z0-9_]*"; :reference "alphanumeric" . n3r:barename a :Production; bnf:canStartWith "_", "a"; bnf:label "barename"; bnf:matches "[a-zA-Z_][a-zA-Z0-9_]*"; :reference "barename" . n3r:declaration a :Production; bnf:canBeSequence ( "@base" n3r:explicituri "." ), ( "@keywords" <#_g7> ), ( "@prefix" n3r:qname n3r:explicituri "." ); bnf:label "declaration"; bnf:mustBeOneSequence ( ( "@base" n3r:explicituri "." ) ( "@prefix" n3r:qname n3r:explicituri "." ) ( "@keywords" <#_g7> ) ); :optionTail (), ( ( "@base" n3r:explicituri "." ) ( "@prefix" n3r:qname n3r:explicituri "." ) ( "@keywords" <#_g7> ) ), ( ( "@keywords" <#_g7> ) ), ( ( "@prefix" n3r:qname n3r:explicituri "." ) ( "@keywords" <#_g7> ) ); :reference "declaration" . n3r:dtlang a :Production; bnf:canBeSequence (), ( "@" n3r:langcode ), ( "^^" n3r:symbol ); bnf:label "dtlang"; bnf:mustBeOneSequence ( () ( "@" n3r:langcode ) ( "^^" n3r:symbol ) ); :optionTail (), ( () ( "@" n3r:langcode ) ( "^^" n3r:symbol ) ), ( ( "@" n3r:langcode ) ( "^^" n3r:symbol ) ), ( ( "^^" n3r:symbol ) ); :reference "dtlang" . n3r:e a :Sequence, :SequenceTail . n3r:existential a :Production; bnf:canBeSequence ( "@forSome" <#_g6> ); bnf:label "existential"; bnf:mustBeOneSequence ( ( "@forSome" <#_g6> ) ); :optionTail (), ( ( "@forSome" <#_g6> ) ); :reference "existential" . n3r:explicituri a :Production; bnf:canStartWith "<"; bnf:label "explicituri"; bnf:matches "<[^>].*>"; :reference "explicituri" . n3r:formulacontent a :Production; bnf:canBeSequence ( <#_g3> <#_g4> n3r:statementlist ); bnf:label "formulacontent"; bnf:mustBeOneSequence ( ( <#_g3> <#_g4> n3r:statementlist ) ); :optionTail (), ( ( <#_g3> <#_g4> n3r:statementlist ) ); :reference "formulacontent" . n3r:item a :Production; bnf:canBeSequence ( n3r:path ); bnf:label "item"; bnf:mustBeOneSequence ( ( n3r:path ) ); :optionTail (), ( ( n3r:path ) ); :reference "item" . n3r:itemlist a :Production; bnf:canBeSequence (), ( n3r:item n3r:itemlist ); bnf:label "itemlist"; bnf:mustBeOneSequence ( () ( n3r:item n3r:itemlist ) ); :optionTail (), ( () ( n3r:item n3r:itemlist ) ), ( ( n3r:item n3r:itemlist ) ); :reference "itemlist" . n3r:langcode a :Production; bnf:canStartWith "a"; bnf:label "langcode"; bnf:matches "[a-zA-Z0-9]+(-[a-zA-Z0-9]+)?"; :reference "langcode" . n3r:literal a :Production; bnf:canBeSequence ( n3r:string n3r:dtlang ); bnf:label "literal"; bnf:mustBeOneSequence ( ( n3r:string n3r:dtlang ) ); :optionTail (), ( ( n3r:string n3r:dtlang ) ); :reference "literal" . n3r:n3document a rul:Used, :Production; bnf:canBeSequence ( <#_g0> <#_g1> <#_g2> n3r:statements_optional bnf:eof ); bnf:label "n3document"; bnf:mustBeOneSequence ( ( <#_g0> <#_g1> <#_g2> n3r:statements_optional bnf:eof ) ); :optionTail (), ( ( <#_g0> <#_g1> <#_g2> n3r:statements_optional bnf:eof ) ); :reference "n3document" . n3r:node a :Production; bnf:canBeSequence ( "(" n3r:itemlist ")" ), ( "[" n3r:propertylist "]" ), ( n3r:literal ), ( n3r:numericliteral ), ( n3r:symbol ), ( n3r:variable ); bnf:label "node"; bnf:mustBeOneSequence ( ( n3r:symbol ) ( n3r:variable ) ( n3r:numericliteral ) ( n3r:literal ) ( "[" n3r:propertylist "]" ) ( "(" n3r:itemlist ")" ) ); :optionTail (), ( ( "(" n3r:itemlist ")" ) ), ( ( "[" n3r:propertylist "]" ) ( "(" n3r:itemlist ")" ) ), ( ( n3r:literal ) ( "[" n3r:propertylist "]" ) ( "(" n3r:itemlist ")" ) ), ( ( n3r:numericliteral ) ( n3r:literal ) ( "[" n3r:propertylist "]" ) ( "(" n3r:itemlist ")" ) ), ( ( n3r:symbol ) ( n3r:variable ) ( n3r:numericliteral ) ( n3r:literal ) ( "[" n3r:propertylist "]" ) ( "(" n3r:itemlist ")" ) ), ( ( n3r:variable ) ( n3r:numericliteral ) ( n3r:literal ) ( "[" n3r:propertylist "]" ) ( "(" n3r:itemlist ")" ) ); :reference "node" . n3r:node_safe a :Production; bnf:canBeSequence ( n3r:literal ), ( n3r:numericliteral ), ( n3r:symbol ), ( n3r:variable ); bnf:label "node_safe"; bnf:mustBeOneSequence ( ( n3r:symbol ) ( n3r:variable ) ( n3r:numericliteral ) ( n3r:literal ) ); :optionTail (), ( ( n3r:literal ) ), ( ( n3r:numericliteral ) ( n3r:literal ) ), ( ( n3r:symbol ) ( n3r:variable ) ( n3r:numericliteral ) ( n3r:literal ) ), ( ( n3r:variable ) ( n3r:numericliteral ) ( n3r:literal ) ); :reference "node_safe" . n3r:numericliteral a :Production; bnf:canStartWith "+", "-", "0"; bnf:label "numericliteral"; bnf:matches "[-+]?[0-9]+(\\.[0-9]+)?(e[-+]?[0-9]+)?"; :reference "numericliteral" . n3r:object a :Production; bnf:canBeSequence ( n3r:item ); bnf:label "object"; bnf:mustBeOneSequence ( ( n3r:item ) ); :optionTail (), ( ( n3r:item ) ); :reference "object" . n3r:objecttail a :Production; bnf:canBeSequence (), ( "," n3r:object n3r:objecttail ); bnf:label "objecttail"; bnf:mustBeOneSequence ( () ( "," n3r:object n3r:objecttail ) ); :optionTail (), ( () ( "," n3r:object n3r:objecttail ) ), ( ( "," n3r:object n3r:objecttail ) ); :reference "objecttail" . n3r:path a :Production; bnf:canBeSequence ( n3r:node n3r:pathtail ); bnf:label "path"; bnf:mustBeOneSequence ( ( n3r:node n3r:pathtail ) ); :optionTail (), ( ( n3r:node n3r:pathtail ) ); :reference "path" . n3r:pathtail a :Production; bnf:canBeSequence (), ( "!" n3r:path ), ( "^" n3r:path ); bnf:label "pathtail"; bnf:mustBeOneSequence ( () ( "!" n3r:path ) ( "^" n3r:path ) ); :optionTail (), ( () ( "!" n3r:path ) ( "^" n3r:path ) ), ( ( "!" n3r:path ) ( "^" n3r:path ) ), ( ( "^" n3r:path ) ); :reference "pathtail" . n3r:prop a :Production; bnf:canBeSequence ( n3r:node ); bnf:label "prop"; bnf:mustBeOneSequence ( ( n3r:node ) ); :optionTail (), ( ( n3r:node ) ); :reference "prop" . n3r:propertylist a :Production; bnf:canBeSequence (), ( n3r:verb n3r:object n3r:objecttail n3r:propertylisttail ); bnf:label "propertylist"; bnf:mustBeOneSequence ( () ( n3r:verb n3r:object n3r:objecttail n3r:propertylisttail ) ); :optionTail (), ( () ( n3r:verb n3r:object n3r:objecttail n3r:propertylisttail ) ), ( ( n3r:verb n3r:object n3r:objecttail n3r:propertylisttail ) ); :reference "propertylist" . n3r:propertylisttail a :Production; bnf:canBeSequence (), ( ";" n3r:propertylist ); bnf:label "propertylisttail"; bnf:mustBeOneSequence ( () ( ";" n3r:propertylist ) ); :optionTail (), ( () ( ";" n3r:propertylist ) ), ( ( ";" n3r:propertylist ) ); :reference "propertylisttail" . n3r:qname a :Production; bnf:canStartWith "_", "a"; bnf:label "qname"; bnf:matches "(([a-zA-Z_][a-zA-Z0-9_]*)?:)?([a-zA-Z_][a-zA-Z0-9_]*)?"; :reference "qname" . n3r:rule a :Production; bnf:canBeSequence ( "{" n3r:formulacontent "}" "=>" "{" n3r:formulacontent "}" ); bnf:label "rule"; bnf:mustBeOneSequence ( ( "{" n3r:formulacontent "}" "=>" "{" n3r:formulacontent "}" ) ); :optionTail (), ( ( "{" n3r:formulacontent "}" "=>" "{" n3r:formulacontent "}" ) ); :reference "rule" . n3r:rule_safe a :Production; bnf:canBeSequence ( "{" n3r:formulacontent "}" "=>" "{" n3r:formula_safe "}" ); bnf:label "rule_safe"; bnf:mustBeOneSequence ( ( "{" n3r:formulacontent "}" "=>" "{" n3r:formula_safe "}" ) ); :optionTail (), ( ( "{" n3r:formulacontent "}" "=>" "{" n3r:formula_safe "}" ) ); :reference "rule_safe" . n3r:statement a :Production; bnf:canBeSequence ( n3r:subject n3r:propertylist ); bnf:label "statement"; bnf:mustBeOneSequence ( ( n3r:subject n3r:propertylist ) ); :optionTail (), ( ( n3r:subject n3r:propertylist ) ); :reference "statement" . n3r:statement_or_rule a :Production; bnf:canBeSequence ( n3r:rule ), ( n3r:statement ); bnf:label "statement_or_rule"; bnf:mustBeOneSequence ( ( n3r:statement ) ( n3r:rule ) ); :optionTail (), ( ( n3r:rule ) ), ( ( n3r:statement ) ( n3r:rule ) ); :reference "statement_or_rule" . n3r:statementlist a :Production; bnf:canBeSequence (), ( n3r:statement n3r:statementtail ); bnf:label "statementlist"; bnf:mustBeOneSequence ( () ( n3r:statement n3r:statementtail ) ); :optionTail (), ( () ( n3r:statement n3r:statementtail ) ), ( ( n3r:statement n3r:statementtail ) ); :reference "statementlist" . n3r:statements_optional a :Production; bnf:canBeSequence (), ( n3r:statement_or_rule "." n3r:statements_optional ), n3r:e; bnf:label "statements_optional"; bnf:mustBeOneSequence ( () ( n3r:statement_or_rule "." n3r:statements_optional ) n3r:e ); :optionTail (), ( () ( n3r:statement_or_rule "." n3r:statements_optional ) n3r:e ), ( ( n3r:statement_or_rule "." n3r:statements_optional ) n3r:e ), ( n3r:e ); :reference "statements_optional" . n3r:statementtail a :Production; bnf:canBeSequence (), ( "." n3r:statementlist ); bnf:label "statementtail"; bnf:mustBeOneSequence ( () ( "." n3r:statementlist ) ); :optionTail (), ( () ( "." n3r:statementlist ) ), ( ( "." n3r:statementlist ) ); :reference "statementtail" . n3r:string a :Production; bnf:canStartWith "\""; bnf:label "string"; bnf:matches """(\"""[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*\""")|("[^"\\\\]*(?:\\\\.[^"\\\\]*)*")"""; :reference "string" . n3r:subject a :Production; bnf:canBeSequence ( n3r:item ); bnf:label "subject"; bnf:mustBeOneSequence ( ( n3r:item ) ); :optionTail (), ( ( n3r:item ) ); :reference "subject" . n3r:symbol a :Production; bnf:canBeSequence ( n3r:explicituri ), ( n3r:qname ); bnf:label "symbol"; bnf:mustBeOneSequence ( ( n3r:explicituri ) ( n3r:qname ) ); :optionTail (), ( ( n3r:explicituri ) ( n3r:qname ) ), ( ( n3r:qname ) ); :reference "symbol" . n3r:universal a :Production; bnf:canBeSequence ( "@forAll" <#_g5> ); bnf:label "universal"; bnf:mustBeOneSequence ( ( "@forAll" <#_g5> ) ); :optionTail (), ( ( "@forAll" <#_g5> ) ); :reference "universal" . n3r:variable a :Production; bnf:canStartWith "?"; bnf:label "variable"; bnf:matches "\\?[a-zA-Z_][a-zA-Z0-9_]*"; :reference "variable" . n3r:verb a :Production; bnf:canBeSequence ( "=" ), ( "@a" ), ( "@has" n3r:prop ), ( "@is" n3r:prop "@of" ), ( n3r:prop ); bnf:label "verb"; bnf:mustBeOneSequence ( ( n3r:prop ) ( "@has" n3r:prop ) ( "@is" n3r:prop "@of" ) ( "@a" ) ( "=" ) ); :optionTail (), ( ( "=" ) ), ( ( "@a" ) ( "=" ) ), ( ( "@has" n3r:prop ) ( "@is" n3r:prop "@of" ) ( "@a" ) ( "=" ) ), ( ( "@is" n3r:prop "@of" ) ( "@a" ) ( "=" ) ), ( ( n3r:prop ) ( "@has" n3r:prop ) ( "@is" n3r:prop "@of" ) ( "@a" ) ( "=" ) ); :reference "verb" . <#_g0> a :Production; bnf:canBeSequence (), ( n3r:declaration <#_g0> ); bnf:label "declaration_s"; bnf:mustBeOneSequence ( () ( n3r:declaration <#_g0> ) ); bnf:zeroOrMore n3r:declaration; :optionTail (), ( () ( n3r:declaration <#_g0> ) ), ( ( n3r:declaration <#_g0> ) ); :reference "declaration_s" . <#_g1> a :Production; bnf:canBeSequence (), ( n3r:universal <#_g1> ); bnf:label "universal_s"; bnf:mustBeOneSequence ( () ( n3r:universal <#_g1> ) ); bnf:zeroOrMore n3r:universal; :optionTail (), ( () ( n3r:universal <#_g1> ) ), ( ( n3r:universal <#_g1> ) ); :reference "universal_s" . <#_g2> a :Production; bnf:canBeSequence (), ( n3r:existential <#_g2> ); bnf:label "existential_s"; bnf:mustBeOneSequence ( () ( n3r:existential <#_g2> ) ); bnf:zeroOrMore n3r:existential; :optionTail (), ( () ( n3r:existential <#_g2> ) ), ( ( n3r:existential <#_g2> ) ); :reference "existential_s" . <#_g3> a :Production; bnf:canBeSequence (), ( n3r:declaration <#_g3> ); bnf:label "declaration_s"; bnf:mustBeOneSequence ( () ( n3r:declaration <#_g3> ) ); bnf:zeroOrMore n3r:declaration; :optionTail (), ( () ( n3r:declaration <#_g3> ) ), ( ( n3r:declaration <#_g3> ) ); :reference "declaration_s" . <#_g4> a :Production; bnf:canBeSequence (), ( n3r:existential <#_g4> ); bnf:label "existential_s"; bnf:mustBeOneSequence ( () ( n3r:existential <#_g4> ) ); bnf:zeroOrMore n3r:existential; :optionTail (), ( () ( n3r:existential <#_g4> ) ), ( ( n3r:existential <#_g4> ) ); :reference "existential_s" . <#_g5> a :Production; bnf:canBeSequence ( "," n3r:symbol <#_g5> ), ( "." ); bnf:commaSeparatedPeriodTerminatedListOf n3r:symbol; bnf:label "symbol_csl"; bnf:mustBeOneSequence ( ( "." ) ( "," n3r:symbol <#_g5> ) ); :optionTail (), ( ( "," n3r:symbol <#_g5> ) ), ( ( "." ) ( "," n3r:symbol <#_g5> ) ); :reference "symbol_csl" . <#_g6> a :Production; bnf:canBeSequence ( "," n3r:symbol <#_g6> ), ( "." ); bnf:commaSeparatedPeriodTerminatedListOf n3r:symbol; bnf:label "symbol_csl"; bnf:mustBeOneSequence ( ( "." ) ( "," n3r:symbol <#_g6> ) ); :optionTail (), ( ( "," n3r:symbol <#_g6> ) ), ( ( "." ) ( "," n3r:symbol <#_g6> ) ); :reference "symbol_csl" . <#_g7> a :Production; bnf:canBeSequence ( "," n3r:barename <#_g7> ), ( "." ); bnf:commaSeparatedPeriodTerminatedListOf n3r:barename; bnf:label "barename_csl"; bnf:mustBeOneSequence ( ( "." ) ( "," n3r:barename <#_g7> ) ); :optionTail (), ( ( "," n3r:barename <#_g7> ) ), ( ( "." ) ( "," n3r:barename <#_g7> ) ); :reference "barename_csl" . #ENDS