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]::Element
Element ::= 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]::Representation
Concept ::= NounConcept
Concept ::= FactType
Concept ::= NounConcept FactType
NounConcept ::= ObjectType
NounConcept ::= IndividualConcept
NounConcept ::= DataType
NounConcept ::= ObjectType IndividualConcept DataType
ObjectType ::=
[specializes]::ObjectType [generalizes]::ObjectType
IndividualConcept ::= [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