@prefix : . @prefix cfg: . @prefix log: . @prefix n3: . @prefix rdfs: . @prefix rul: . @forSome <#_g0>, <#_g1>, <#_g2>, <#_g3>, <#_g4>, <#_g5> . "!" :reference """"!"""" . "(" :reference """"("""" . ")" :reference """")"""" . "," :reference """","""" . "." :reference """"."""" . ";" :reference """";"""" . "<=" :reference """"<="""" . "=" :reference """"="""" . "=>" :reference """"=>"""" . "@" :reference """"@"""" . "@a" :reference """"@a"""" . "@base" :reference """"@base"""" . "@false" :reference """"@false"""" . "@forAll" :reference """"@forAll"""" . "@forSome" :reference """"@forSome"""" . "@has" :reference """"@has"""" . "@is" :reference """"@is"""" . "@keywords" :reference """"@keywords"""" . "@of" :reference """"@of"""" . "@prefix" :reference """"@prefix"""" . "@true" :reference """"@true"""" . "[" :reference """"["""" . "]" :reference """"]"""" . "^" :reference """"^"""" . "^^" :reference """"^^"""" . "{" :reference """"{"""" . "}" :reference """"}"""" . () a :Sequence, :SequenceTail; :seqlabel "void" . ( "!" n3:expression ) a :Sequence, :SequenceTail; :seqlabel """"!" expression""" . ( "(" n3:pathlist ")" ) a :Sequence, :SequenceTail; :seqlabel """"(" pathlist ")"""" . ( ")" ) a :SequenceTail; :seqlabel """")"""" . ( "," n3:barename <#_g3> ) a :Sequence, :SequenceTail; :seqlabel """"," barename barename_csl_tail""" . ( "," n3:object n3:objecttail ) a :Sequence, :SequenceTail; :seqlabel """"," object objecttail""" . ( "," n3:symbol <#_g4> ) a :Sequence, :SequenceTail; :seqlabel """"," symbol symbol_csl_tail""" . ( "," n3:symbol <#_g5> ) a :Sequence, :SequenceTail; :seqlabel """"," symbol symbol_csl_tail""" . ( "." n3:statementlist ) a :Sequence, :SequenceTail; :seqlabel """"." statementlist""" . ( "." n3:statements_optional ) a :SequenceTail; :seqlabel """"." statements_optional""" . ( "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.

""" . ( ";" n3:propertylist ) a :Sequence, :SequenceTail; :seqlabel """";" propertylist""" . ( "<=" ) a :Sequence, :SequenceTail; :seqlabel """"<="""" . ( "=" ) a :Sequence, :SequenceTail; :seqlabel """"="""" . ( "=>" ) a :Sequence, :SequenceTail; :seqlabel """"=>"""" . ( "@" n3:langcode ) a :Sequence, :SequenceTail; :seqlabel """"@" langcode""" . ( "@a" ) a :Sequence, :SequenceTail; :seqlabel """"@a"""" . ( "@base" n3:explicituri ) a :Sequence, :SequenceTail; :seqlabel """"@base" explicituri""" . ( "@false" ) a :Sequence, :SequenceTail; :seqlabel """"@false"""" . ( "@forAll" <#_g0> ) a :Sequence, :SequenceTail; :seqlabel """"@forAll" symbol_csl""" . ( "@forSome" <#_g1> ) a :Sequence, :SequenceTail; :seqlabel """"@forSome" symbol_csl""" . ( "@has" n3:expression ) a :Sequence, :SequenceTail; :seqlabel """"@has" expression""" . ( "@is" n3:expression "@of" ) a :Sequence, :SequenceTail; :seqlabel """"@is" expression "@of"""" . ( "@keywords" <#_g2> ) a :Sequence, :SequenceTail; :seqlabel """"@keywords" barename_csl""" . ( "@of" ) a :SequenceTail; :seqlabel """"@of"""" . ( "@prefix" n3:prefix n3:explicituri ) a :Sequence, :SequenceTail; :seqlabel """"@prefix" prefix explicituri""" . ( "@true" ) a :Sequence, :SequenceTail; :seqlabel """"@true"""" . ( "[" n3:propertylist "]" ) a :Sequence, :SequenceTail; :seqlabel """"[" propertylist "]"""" . ( "]" ) a :SequenceTail; :seqlabel """"]"""" . ( "^" n3:expression ) a :Sequence, :SequenceTail; :seqlabel """"^" expression""" . ( "^^" n3:symbol ) a :Sequence, :SequenceTail; :seqlabel """"^^" symbol""" . ( "barename" 0 ) log:outputString """
barename
""" . ( "barename" 6 ) log:outputString """

[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*

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

barename barename_csl_tail

""", """

void

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

"," barename barename_csl_tail

""", """

void

""" . ( "barename_csl_tail" 9 ) log:outputString "\t
\n" . ( "boolean" 0 ) log:outputString """
boolean
""" . ( "boolean" 5 ) log:outputString """

"@false"

""", """

"@true"

""" . ( "boolean" 9 ) log:outputString "\t
\n" . ( "decimal" 0 ) log:outputString """
decimal
""" . ( "decimal" 6 ) log:outputString """

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

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

"@base" explicituri

""", """

"@keywords" barename_csl

""", """

"@prefix" prefix explicituri

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

statements_optional EOF

""" . ( "document" 9 ) log:outputString "\t
\n" . ( "double" 0 ) log:outputString """
double
""" . ( "double" 6 ) log:outputString """

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

""" . ( "double" 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" . ( "explicituri" 0 ) log:outputString """
explicituri
""" . ( "explicituri" 6 ) log:outputString """

<[^>]*>

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

pathitem pathtail

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

statementlist

""" . ( "formulacontent" 9 ) log:outputString "\t
\n" . ( "integer" 0 ) log:outputString """
integer
""" . ( "integer" 6 ) log:outputString """

[-+]?[0-9]+

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

[a-z]+(-[a-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" . ( "numericliteral" 0 ) log:outputString """
numericliteral
""" . ( "numericliteral" 5 ) log:outputString """

decimal

""", """

double

""", """

integer

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

expression

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

"," object objecttail

""", """

void

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

boolean

""", """

literal

""", """

numericliteral

""", """

quickvariable

""", """

symbol

""", """

"(" pathlist ")"

""", """

"[" propertylist "]"

""", """

"{" formulacontent "}"

""" . ( "pathitem" 9 ) log:outputString "\t
\n" . ( "pathlist" 0 ) log:outputString """
pathlist
""" . ( "pathlist" 5 ) log:outputString """

expression pathlist

""", """

void

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

"!" expression

""", """

"^" expression

""", """

void

""" . ( "pathtail" 9 ) log:outputString "\t
\n" . ( "prefix" 0 ) log:outputString """
prefix
""" . ( "prefix" 6 ) log:outputString """

([A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*)?:

""" . ( "prefix" 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-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*)?:)?[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*

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

\\?[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*

""" . ( "quickvariable" 9 ) log:outputString "\t
\n" . ( "simpleStatement" 0 ) log:outputString """
simpleStatement
""" . ( "simpleStatement" 5 ) log:outputString """

subject propertylist

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

declaration

""", """

existential

""", """

simpleStatement

""", """

universal

""" . ( "statement" 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 "." 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 """

expression

""" . ( "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_tail

""", """

void

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

"," symbol symbol_csl_tail

""", """

void

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

"@forAll" symbol_csl

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

expression

""", """

"<="

""", """

"="

""", """

"=>"

""", """

"@a"

""", """

"@has" expression

""", """

"@is" expression "@of"

""" . ( "verb" 9 ) log:outputString "\t
\n" . ( "{" n3:formulacontent "}" ) a :Sequence, :SequenceTail; :seqlabel """"{" formulacontent "}"""" . ( "}" ) a :SequenceTail; :seqlabel """"}"""" . ( "~~" 9 ) log:outputString "\n
\n\n" . ( cfg:eof ) a :SequenceTail; :seqlabel "EOF" . ( n3:barename <#_g3> ) a :Sequence, :SequenceTail; :seqlabel "barename barename_csl_tail" . ( n3:boolean ) a :Sequence, :SequenceTail; :seqlabel "boolean" . ( n3:decimal ) a :Sequence, :SequenceTail; :seqlabel "decimal" . ( n3:declaration ) a :Sequence, :SequenceTail; :seqlabel "declaration" . ( n3:double ) a :Sequence, :SequenceTail; :seqlabel "double" . ( n3:dtlang ) a :SequenceTail; :seqlabel "dtlang" . ( n3:existential ) a :Sequence, :SequenceTail; :seqlabel "existential" . ( n3:explicituri ) a :Sequence, :SequenceTail; :seqlabel "explicituri" . ( n3:expression "@of" ) a :SequenceTail; :seqlabel """expression "@of"""" . ( n3:expression n3:pathlist ) a :Sequence, :SequenceTail; :seqlabel "expression pathlist" . ( n3:expression ) a :Sequence, :SequenceTail; :seqlabel "expression" . ( n3:formulacontent "}" ) a :SequenceTail; :seqlabel """formulacontent "}"""" . ( n3:integer ) a :Sequence, :SequenceTail; :seqlabel "integer" . ( n3:langcode ) a :SequenceTail; :seqlabel "langcode" . ( n3:literal ) a :Sequence, :SequenceTail; :seqlabel "literal" . ( n3:numericliteral ) a :Sequence, :SequenceTail; :seqlabel "numericliteral" . ( n3:object n3:objecttail n3:propertylisttail ) a :SequenceTail; :seqlabel "object objecttail propertylisttail" . ( n3:object n3:objecttail ) a :SequenceTail; :seqlabel "object objecttail" . ( n3:objecttail n3:propertylisttail ) a :SequenceTail; :seqlabel "objecttail propertylisttail" . ( n3:objecttail ) a :SequenceTail; :seqlabel "objecttail" . ( n3:pathitem n3:pathtail ) a :Sequence, :SequenceTail; :seqlabel "pathitem pathtail" . ( n3:pathlist ")" ) a :SequenceTail; :seqlabel """pathlist ")"""" . ( n3:pathlist ) a :SequenceTail; :seqlabel "pathlist" . ( n3:pathtail ) a :SequenceTail; :seqlabel "pathtail" . ( n3:prefix n3:explicituri ) a :SequenceTail; :seqlabel "prefix explicituri" . ( n3:propertylist "]" ) a :SequenceTail; :seqlabel """propertylist "]"""" . ( n3:propertylist ) a :SequenceTail; :seqlabel "propertylist" . ( n3:propertylisttail ) a :SequenceTail; :seqlabel "propertylisttail" . ( n3:qname ) a :Sequence, :SequenceTail; :seqlabel "qname" . ( n3:quickvariable ) a :Sequence, :SequenceTail; :seqlabel "quickvariable" . ( n3:simpleStatement ) a :Sequence, :SequenceTail; :seqlabel "simpleStatement" . ( n3:statement "." n3:statements_optional ) a :Sequence, :SequenceTail; :seqlabel """statement "." statements_optional""" . ( n3:statement n3:statementtail ) a :Sequence, :SequenceTail; :seqlabel "statement statementtail" . ( n3:statementlist ) a :Sequence, :SequenceTail; :seqlabel "statementlist" . ( n3:statements_optional cfg:eof ) a :Sequence, :SequenceTail; :seqlabel "statements_optional EOF" . ( n3:statements_optional ) a :SequenceTail; :seqlabel "statements_optional" . ( n3:statementtail ) a :SequenceTail; :seqlabel "statementtail" . ( n3:string n3:dtlang ) a :Sequence, :SequenceTail; :seqlabel "string dtlang" . ( n3:subject n3:propertylist ) a :Sequence, :SequenceTail; :seqlabel "subject propertylist" . ( n3:symbol <#_g4> ) a :Sequence, :SequenceTail; :seqlabel "symbol symbol_csl_tail" . ( n3:symbol <#_g5> ) a :Sequence, :SequenceTail; :seqlabel "symbol symbol_csl_tail" . ( n3:symbol ) a :Sequence, :SequenceTail; :seqlabel "symbol" . ( n3:universal ) a :Sequence, :SequenceTail; :seqlabel "universal" . ( n3:verb n3:object n3:objecttail n3:propertylisttail ) a :Sequence, :SequenceTail; :seqlabel "verb object objecttail propertylisttail" . ( <#_g0> ) a :SequenceTail; :seqlabel "symbol_csl" . ( <#_g1> ) a :SequenceTail; :seqlabel "symbol_csl" . ( <#_g2> ) a :SequenceTail; :seqlabel "barename_csl" . ( <#_g3> ) a :SequenceTail; :seqlabel "barename_csl_tail" . ( <#_g4> ) a :SequenceTail; :seqlabel "symbol_csl_tail" . ( <#_g5> ) a :SequenceTail; :seqlabel "symbol_csl_tail" . rdfs:comment """ These are rules to take the shortcut ontology such as cfg:zeroOrOneOf and expland them into the base cfg:mustBeOneSequence. It also generates human-readable labels for things which have been generated. This file was split from n3.n3 on 2007-01-20. """ . cfg:eof :reference "EOF" . n3:barename a :Production; cfg:canStartWith "_", "a"; cfg:label "barename"; cfg:matches "[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*"; :reference "barename" . n3:boolean a :Production; cfg:canBeSequence ( "@false" ), ( "@true" ); cfg:label "boolean"; cfg:mustBeOneSequence ( ( "@true" ) ( "@false" ) ); :optionTail (), ( ( "@false" ) ), ( ( "@true" ) ( "@false" ) ); :reference "boolean" . n3:decimal a :Production; cfg:canStartWith "+", "-", "0"; cfg:label "decimal"; cfg:matches "[-+]?[0-9]+(\\.[0-9]+)?"; :reference "decimal" . n3:declaration a :Production; cfg:canBeSequence ( "@base" n3:explicituri ), ( "@keywords" <#_g2> ), ( "@prefix" n3:prefix n3:explicituri ); cfg:label "declaration"; cfg:mustBeOneSequence ( ( "@base" n3:explicituri ) ( "@prefix" n3:prefix n3:explicituri ) ( "@keywords" <#_g2> ) ); :optionTail (), ( ( "@base" n3:explicituri ) ( "@prefix" n3:prefix n3:explicituri ) ( "@keywords" <#_g2> ) ), ( ( "@keywords" <#_g2> ) ), ( ( "@prefix" n3:prefix n3:explicituri ) ( "@keywords" <#_g2> ) ); :reference "declaration" . n3:document a rul:Used, :Production; cfg:canBeSequence ( n3:statements_optional cfg:eof ); cfg:label "document"; cfg:mustBeOneSequence ( ( n3:statements_optional cfg:eof ) ); :optionTail (), ( ( n3:statements_optional cfg:eof ) ); :reference "document" . n3:double a :Production; cfg:canStartWith "+", "-", "0"; cfg:label "double"; cfg:matches "[-+]?[0-9]+(\\.[0-9]+)?([eE][-+]?[0-9]+)"; :reference "double" . n3:dtlang a :Production; cfg:canBeSequence (), ( "@" n3:langcode ), ( "^^" n3:symbol ); cfg:label "dtlang"; cfg:mustBeOneSequence ( () ( "@" n3:langcode ) ( "^^" n3:symbol ) ); :optionTail (), ( () ( "@" n3:langcode ) ( "^^" n3:symbol ) ), ( ( "@" n3:langcode ) ( "^^" n3:symbol ) ), ( ( "^^" n3:symbol ) ); :reference "dtlang" . n3:existential a :Production; cfg:canBeSequence ( "@forSome" <#_g1> ); cfg:label "existential"; cfg:mustBeOneSequence ( ( "@forSome" <#_g1> ) ); :optionTail (), ( ( "@forSome" <#_g1> ) ); :reference "existential" . n3:explicituri a :Production; cfg:canStartWith "<"; cfg:label "explicituri"; cfg:matches "<[^>]*>"; :reference "explicituri" . n3:expression a :Production; cfg:canBeSequence ( n3:pathitem n3:pathtail ); cfg:label "expression"; cfg:mustBeOneSequence ( ( n3:pathitem n3:pathtail ) ); :optionTail (), ( ( n3:pathitem n3:pathtail ) ); :reference "expression" . n3:formulacontent a :Production; cfg:canBeSequence ( n3:statementlist ); cfg:label "formulacontent"; cfg:mustBeOneSequence ( ( n3:statementlist ) ); :optionTail (), ( ( n3:statementlist ) ); :reference "formulacontent" . n3:integer a :Production; cfg:canStartWith "+", "-", "0"; cfg:label "integer"; cfg:matches "[-+]?[0-9]+"; :reference "integer" . n3:langcode a :Production; cfg:canStartWith "a"; cfg:label "langcode"; cfg:matches "[a-z]+(-[a-z0-9]+)*"; :reference "langcode" . n3:language a cfg:Language; cfg:document n3:document; cfg:whiteSpace "@@@@@" . n3:literal a :Production; cfg:canBeSequence ( n3:string n3:dtlang ); cfg:label "literal"; cfg:mustBeOneSequence ( ( n3:string n3:dtlang ) ); :optionTail (), ( ( n3:string n3:dtlang ) ); :reference "literal" . n3:numericliteral a :Production; cfg:canBeSequence ( n3:decimal ), ( n3:double ), ( n3:integer ); cfg:label "numericliteral"; cfg:mustBeOneSequence ( ( n3:integer ) ( n3:double ) ( n3:decimal ) ); :optionTail (), ( ( n3:decimal ) ), ( ( n3:double ) ( n3:decimal ) ), ( ( n3:integer ) ( n3:double ) ( n3:decimal ) ); :reference "numericliteral" . n3:object a :Production; cfg:canBeSequence ( n3:expression ); cfg:label "object"; cfg:mustBeOneSequence ( ( n3:expression ) ); :optionTail (), ( ( n3:expression ) ); :reference "object" . n3:objecttail a :Production; cfg:canBeSequence (), ( "," n3:object n3:objecttail ); cfg:label "objecttail"; cfg:mustBeOneSequence ( () ( "," n3:object n3:objecttail ) ); :optionTail (), ( () ( "," n3:object n3:objecttail ) ), ( ( "," n3:object n3:objecttail ) ); :reference "objecttail" . n3:pathitem a :Production; cfg:canBeSequence ( "(" n3:pathlist ")" ), ( "[" n3:propertylist "]" ), ( "{" n3:formulacontent "}" ), ( n3:boolean ), ( n3:literal ), ( n3:numericliteral ), ( n3:quickvariable ), ( n3:symbol ); cfg:label "pathitem"; cfg:mustBeOneSequence ( ( n3:symbol ) ( "{" n3:formulacontent "}" ) ( n3:quickvariable ) ( n3:numericliteral ) ( n3:literal ) ( "[" n3:propertylist "]" ) ( "(" n3:pathlist ")" ) ( n3:boolean ) ); :optionTail (), ( ( "(" n3:pathlist ")" ) ( n3:boolean ) ), ( ( "[" n3:propertylist "]" ) ( "(" n3:pathlist ")" ) ( n3:boolean ) ), ( ( "{" n3:formulacontent "}" ) ( n3:quickvariable ) ( n3:numericliteral ) ( n3:literal ) ( "[" n3:propertylist "]" ) ( "(" n3:pathlist ")" ) ( n3:boolean ) ), ( ( n3:boolean ) ), ( ( n3:literal ) ( "[" n3:propertylist "]" ) ( "(" n3:pathlist ")" ) ( n3:boolean ) ), ( ( n3:numericliteral ) ( n3:literal ) ( "[" n3:propertylist "]" ) ( "(" n3:pathlist ")" ) ( n3:boolean ) ), ( ( n3:quickvariable ) ( n3:numericliteral ) ( n3:literal ) ( "[" n3:propertylist "]" ) ( "(" n3:pathlist ")" ) ( n3:boolean ) ), ( ( n3:symbol ) ( "{" n3:formulacontent "}" ) ( n3:quickvariable ) ( n3:numericliteral ) ( n3:literal ) ( "[" n3:propertylist "]" ) ( "(" n3:pathlist ")" ) ( n3:boolean ) ); :reference "pathitem" . n3:pathlist a :Production; cfg:canBeSequence (), ( n3:expression n3:pathlist ); cfg:label "pathlist"; cfg:mustBeOneSequence ( () ( n3:expression n3:pathlist ) ); :optionTail (), ( () ( n3:expression n3:pathlist ) ), ( ( n3:expression n3:pathlist ) ); :reference "pathlist" . n3:pathtail a :Production; cfg:canBeSequence (), ( "!" n3:expression ), ( "^" n3:expression ); cfg:label "pathtail"; cfg:mustBeOneSequence ( () ( "!" n3:expression ) ( "^" n3:expression ) ); :optionTail (), ( () ( "!" n3:expression ) ( "^" n3:expression ) ), ( ( "!" n3:expression ) ( "^" n3:expression ) ), ( ( "^" n3:expression ) ); :reference "pathtail" . n3:prefix a :Production; cfg:canStartWith ":", "_", "a"; cfg:label "prefix"; cfg:matches "([A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*)?:"; :reference "prefix" . n3:propertylist a :Production; cfg:canBeSequence (), ( n3:verb n3:object n3:objecttail n3:propertylisttail ); cfg:label "propertylist"; cfg:mustBeOneSequence ( () ( n3:verb n3:object n3:objecttail n3:propertylisttail ) ); :optionTail (), ( () ( n3:verb n3:object n3:objecttail n3:propertylisttail ) ), ( ( n3:verb n3:object n3:objecttail n3:propertylisttail ) ); :reference "propertylist" . n3:propertylisttail a :Production; cfg:canBeSequence (), ( ";" n3:propertylist ); cfg:label "propertylisttail"; cfg:mustBeOneSequence ( () ( ";" n3:propertylist ) ); :optionTail (), ( () ( ";" n3:propertylist ) ), ( ( ";" n3:propertylist ) ); :reference "propertylisttail" . n3:qname a :Production; cfg:canStartWith ":", "_", "a"; cfg:label "qname"; cfg:matches "(([A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*)?:)?[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*"; :reference "qname" . n3:quickvariable a :Production; cfg:canStartWith "?"; cfg:label "quickvariable"; cfg:matches "\\?[A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿][\\-0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿]*"; :reference "quickvariable" . n3:simpleStatement a :Production; cfg:canBeSequence ( n3:subject n3:propertylist ); cfg:label "simpleStatement"; cfg:mustBeOneSequence ( ( n3:subject n3:propertylist ) ); :optionTail (), ( ( n3:subject n3:propertylist ) ); :reference "simpleStatement" . n3:statement a :Production; cfg:canBeSequence ( n3:declaration ), ( n3:existential ), ( n3:simpleStatement ), ( n3:universal ); cfg:label "statement"; cfg:mustBeOneSequence ( ( n3:declaration ) ( n3:universal ) ( n3:existential ) ( n3:simpleStatement ) ); :optionTail (), ( ( n3:declaration ) ( n3:universal ) ( n3:existential ) ( n3:simpleStatement ) ), ( ( n3:existential ) ( n3:simpleStatement ) ), ( ( n3:simpleStatement ) ), ( ( n3:universal ) ( n3:existential ) ( n3:simpleStatement ) ); :reference "statement" . n3:statementlist a :Production; cfg:canBeSequence (), ( n3:statement n3:statementtail ); cfg:label "statementlist"; cfg:mustBeOneSequence ( () ( n3:statement n3:statementtail ) ); :optionTail (), ( () ( n3:statement n3:statementtail ) ), ( ( n3:statement n3:statementtail ) ); :reference "statementlist" . n3:statements_optional a :Production; cfg:canBeSequence (), ( n3:statement "." n3:statements_optional ); cfg:label "statements_optional"; cfg:mustBeOneSequence ( () ( n3:statement "." n3:statements_optional ) ); :optionTail (), ( () ( n3:statement "." n3:statements_optional ) ), ( ( n3:statement "." n3:statements_optional ) ); :reference "statements_optional" . n3:statementtail a :Production; cfg:canBeSequence (), ( "." n3:statementlist ); cfg:label "statementtail"; cfg:mustBeOneSequence ( () ( "." n3:statementlist ) ); :optionTail (), ( () ( "." n3:statementlist ) ), ( ( "." n3:statementlist ) ); :reference "statementtail" . n3:string a :Production; cfg:canStartWith "\""; cfg:label "string"; cfg:matches """(\"""[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*\""")|("[^"\\\\]*(?:\\\\.[^"\\\\]*)*")"""; :reference "string" . n3:subject a :Production; cfg:canBeSequence ( n3:expression ); cfg:label "subject"; cfg:mustBeOneSequence ( ( n3:expression ) ); :optionTail (), ( ( n3:expression ) ); :reference "subject" . n3:symbol a :Production; cfg:canBeSequence ( n3:explicituri ), ( n3:qname ); cfg:label "symbol"; cfg:mustBeOneSequence ( ( n3:explicituri ) ( n3:qname ) ); :optionTail (), ( ( n3:explicituri ) ( n3:qname ) ), ( ( n3:qname ) ); :reference "symbol" . n3:universal a :Production; cfg:canBeSequence ( "@forAll" <#_g0> ); cfg:label "universal"; cfg:mustBeOneSequence ( ( "@forAll" <#_g0> ) ); :optionTail (), ( ( "@forAll" <#_g0> ) ); :reference "universal" . n3:verb a :Production; cfg:canBeSequence ( "<=" ), ( "=" ), ( "=>" ), ( "@a" ), ( "@has" n3:expression ), ( "@is" n3:expression "@of" ), ( n3:expression ); cfg:label "verb"; cfg:mustBeOneSequence ( ( n3:expression ) ( "@has" n3:expression ) ( "@is" n3:expression "@of" ) ( "@a" ) ( "=" ) ( "=>" ) ( "<=" ) ); :optionTail (), ( ( "<=" ) ), ( ( "=" ) ( "=>" ) ( "<=" ) ), ( ( "=>" ) ( "<=" ) ), ( ( "@a" ) ( "=" ) ( "=>" ) ( "<=" ) ), ( ( "@has" n3:expression ) ( "@is" n3:expression "@of" ) ( "@a" ) ( "=" ) ( "=>" ) ( "<=" ) ), ( ( "@is" n3:expression "@of" ) ( "@a" ) ( "=" ) ( "=>" ) ( "<=" ) ), ( ( n3:expression ) ( "@has" n3:expression ) ( "@is" n3:expression "@of" ) ( "@a" ) ( "=" ) ( "=>" ) ( "<=" ) ); :reference "verb" . <#_g0> a :Production; cfg:canBeSequence (), ( n3:symbol <#_g5> ); cfg:commaSeparatedListOf n3:symbol; cfg:label "symbol_csl"; cfg:mustBeOneSequence ( () ( n3:symbol <#_g5> ) ); :optionTail (), ( () ( n3:symbol <#_g5> ) ), ( ( n3:symbol <#_g5> ) ); :reference "symbol_csl" . <#_g1> a :Production; cfg:canBeSequence (), ( n3:symbol <#_g4> ); cfg:commaSeparatedListOf n3:symbol; cfg:label "symbol_csl"; cfg:mustBeOneSequence ( () ( n3:symbol <#_g4> ) ); :optionTail (), ( () ( n3:symbol <#_g4> ) ), ( ( n3:symbol <#_g4> ) ); :reference "symbol_csl" . <#_g2> a :Production; cfg:canBeSequence (), ( n3:barename <#_g3> ); cfg:commaSeparatedListOf n3:barename; cfg:label "barename_csl"; cfg:mustBeOneSequence ( () ( n3:barename <#_g3> ) ); :optionTail (), ( () ( n3:barename <#_g3> ) ), ( ( n3:barename <#_g3> ) ); :reference "barename_csl" . <#_g3> a :Production; cfg:CSLTail2 n3:barename; cfg:canBeSequence (), ( "," n3:barename <#_g3> ); cfg:label "barename_csl_tail"; cfg:mustBeOneSequence ( () ( "," n3:barename <#_g3> ) ); :optionTail (), ( () ( "," n3:barename <#_g3> ) ), ( ( "," n3:barename <#_g3> ) ); :reference "barename_csl_tail" . <#_g4> a :Production; cfg:CSLTail2 n3:symbol; cfg:canBeSequence (), ( "," n3:symbol <#_g4> ); cfg:label "symbol_csl_tail"; cfg:mustBeOneSequence ( () ( "," n3:symbol <#_g4> ) ); :optionTail (), ( () ( "," n3:symbol <#_g4> ) ), ( ( "," n3:symbol <#_g4> ) ); :reference "symbol_csl_tail" . <#_g5> a :Production; cfg:CSLTail2 n3:symbol; cfg:canBeSequence (), ( "," n3:symbol <#_g5> ); cfg:label "symbol_csl_tail"; cfg:mustBeOneSequence ( () ( "," n3:symbol <#_g5> ) ); :optionTail (), ( () ( "," n3:symbol <#_g5> ) ), ( ( "," n3:symbol <#_g5> ) ); :reference "symbol_csl_tail" .