# Notation3 in Notation3 # Context Free Grammar without tokenization # @prefix rdf: . @prefix rdfs: . @prefix cfg: . @prefix rul: . @prefix : . @prefix n3: . @prefix list: . @prefix string: . @keywords a, is, of. <> cfg:syntaxFor [ cfg:internetMediaType ]. # <> rdfsem:semanticsFor "" ..... # __________________________________________________________________ # # The N3 Full Grammar language a cfg:Language; cfg:document document; cfg:whiteSpace "@@@@@". document a rul:Used; cfg:mustBeOneSequence( ( # [ cfg:zeroOrMore declaration ] # [ cfg:zeroOrMore universal ] # [ cfg:zeroOrMore existential ] statements_optional cfg:eof ) ). statements_optional cfg:mustBeOneSequence (() ( statement "." statements_optional ) ). # Formula does NOT need period on last statement formulacontent cfg:mustBeOneSequence ( ( statementlist ) ). statementlist cfg:mustBeOneSequence ( ( ) ( statement statementtail ) ). statementtail cfg:mustBeOneSequence ( ( ) ( "." statementlist ) ). universal cfg:mustBeOneSequence ( ( "@forAll" [ cfg:commaSeparatedListOf symbol ] )). existential cfg:mustBeOneSequence( ( "@forSome" [ cfg:commaSeparatedListOf symbol ] )). declaration cfg:mustBeOneSequence( ( "@prefix" prefix explicituri ) ( "@keywords" [ cfg:commaSeparatedListOf barename ] ) ). # the original is longer