
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/business/sbvr/v1.0/kleiner/extracted
Source used for this grammar: Mathias Kleiner, A metamodel created for writing the Semantic Business Vocabularies and Business Rules from OMG, SimpleSBVR.ecore, 2009
Root, Element, Representation, Designation, Text, Meaning, Concept, NounConcept, ObjectType, IndividualConcept, DataType, NonEmptyString, NonNegativeInteger, FactType, BinaryFactType, IsPropertyOfFactType, AssociativeFactType, CategorizationFactType, ObjectificationFactType, Role, FactTypeRole, LogicalFormulation, AtomicFormulation, BinaryAtomicFormulation, NecessityFormulation, Quantification, UniversalQuantification, AtLeastNQuantification, ExactlyNQuantification, AtMostNQuantification, BindableTarget, Variable, RoleBinding, String, Integer), 0 root (—), 1 top (Root), 0 bottom (—).[elements], [objectName], [meaning], [text], [value] 3, [representations], [specializes], [generalizes], [instanceOf], [role1] 5, [role2] 5, [nounConcept] 2, [isBasedOn], [roleBinding1], [roleBinding2], [introducedVariable] 2, [scopesOver] 2, [minCardinality], [cardinality], [maxCardinality], [rangesOver], [occursIn], [isOf], [bindsTo].Root ::=
[elements]::ElementElement ::= Representation
Element ::= Text
Element ::= Meaning
Element ::= Role
Element ::= BindableTarget
Element ::= RoleBinding
Element ::= [objectName]::String
Representation ::= Designation
Representation ::= [meaning]::Meaning
Designation ::= [text]::Text
Text ::= [value]::String
Meaning ::= Concept
Meaning ::= LogicalFormulation
Meaning ::=
[representations]::RepresentationConcept ::= NounConcept
Concept ::= FactType
Concept ::= NounConcept FactType
NounConcept ::= ObjectType
NounConcept ::= IndividualConcept
NounConcept ::= DataType
NounConcept ::= ObjectType IndividualConcept DataType
ObjectType ::=
[specializes]::ObjectType [generalizes]::ObjectTypeIndividualConcept ::= [instanceOf]::ObjectType
DataType ::= NonEmptyString
DataType ::= NonNegativeInteger
DataType ::= NonEmptyString NonNegativeInteger
NonEmptyString ::= [value]::String
NonNegativeInteger ::= [value]::Integer
FactType ::= BinaryFactType
BinaryFactType ::= IsPropertyOfFactType
BinaryFactType ::= AssociativeFactType
BinaryFactType ::= CategorizationFactType
BinaryFactType ::= ObjectificationFactType
BinaryFactType ::= [role1]::FactTypeRole [role2]::FactTypeRole
IsPropertyOfFactType ::= [role1]::FactTypeRole [role2]::FactTypeRole
AssociativeFactType ::= [role1]::FactTypeRole [role2]::FactTypeRole
CategorizationFactType ::= [role1]::FactTypeRole [role2]::FactTypeRole
ObjectificationFactType ::= [role1]::FactTypeRole [role2]::FactTypeRole
Role ::= FactTypeRole
Role ::= [nounConcept]::NounConcept
FactTypeRole ::= [nounConcept]::NounConcept
LogicalFormulation ::= AtomicFormulation
LogicalFormulation ::= NecessityFormulation
LogicalFormulation ::= Quantification
LogicalFormulation ::= AtomicFormulation NecessityFormulation Quantification
AtomicFormulation ::= BinaryAtomicFormulation
AtomicFormulation ::= [isBasedOn]::FactType
BinaryAtomicFormulation ::= [roleBinding1]::RoleBinding [roleBinding2]::RoleBinding
NecessityFormulation ::= ε
Quantification ::= UniversalQuantification
Quantification ::= AtLeastNQuantification
Quantification ::= ExactlyNQuantification
Quantification ::= AtMostNQuantification
Quantification ::= [introducedVariable]::Variable [scopesOver]::LogicalFormulation
UniversalQuantification ::= [introducedVariable]::Variable [scopesOver]::LogicalFormulation
AtLeastNQuantification ::= [minCardinality]::NonNegativeInteger
ExactlyNQuantification ::= [cardinality]::NonNegativeInteger
AtMostNQuantification ::= [maxCardinality]::NonNegativeInteger
BindableTarget ::= Variable
Variable ::= [rangesOver]::ObjectType
RoleBinding ::= [occursIn]::AtomicFormulation [isOf]::FactType [bindsTo]::BindableTarget
String ::= string
Integer ::= integer