Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/multi-agent/gaia/simon/extracted
Source used for this grammar: Eric Simon, GAIA.ecore
, 2006/07/13
OrganizationalStructure
, Organization
, OrganizationalRule
, SafetyRule
, LivenessRule
, AgentType
, Service
, Role
, Activity
, Responsibility
, LivenessProperty
, SafetyProperty
, AssociationConnector
, Permission
, Resource
, Environnement
, Action
, Communication
, Protocol
, String
), 0 root (—), 1 top (OrganizationalStructure
), 0 bottom (—).[organization]
, [collaborates]
2, [interacts]
, [member]
, [observes]
2, [provides]
, [agentType]
, [plays]
, [inputs]
2, [outputs]
2, [pre-conditions]
, [post-conditions]
, [activity]
, [communication]
, [responsibility]
, [actsOn]
2, [role]
, [permission]
, [association]
, [name]
2, [description]
2, [permitted_action]
, [environnement]
, [resource]
, [type]
, [protocol]
, [initiator]
, [partner]
.OrganizationalStructure ::=
[organization]::Organization
Organization ::= [collaborates]::Organization [interacts]::Organization [member]::AgentType[observes]::OrganizationalRule
OrganizationalRule ::= SafetyRule
OrganizationalRule ::= LivenessRule
OrganizationalRule ::= SafetyRule LivenessRule
SafetyRule ::= ε
LivenessRule ::= ε
AgentType ::= [provides]::Service[collaborates]::AgentType [agentType]::AgentType [plays]::Role
Service ::= [inputs]::String [outputs]::String [pre-conditions]::String [post-conditions]::String
Role ::= [activity]::Activity[communication]::Communication [responsibility]::Responsibility [actsOn]::AssociationConnector
Activity ::= ε
Responsibility ::= LivenessProperty
Responsibility ::= SafetyProperty
Responsibility ::= LivenessProperty SafetyProperty
LivenessProperty ::= ε
SafetyProperty ::= ε
AssociationConnector ::= [actsOn]::Resource[role]::Role [permission]::Permission
Permission ::= [association]::AssociationConnector
Resource ::=
[name]::String [description]::String [permitted_action]::Action
[environnement]::EnvironnementEnvironnement ::=
[resource]::Resource
Action ::= [type]::String
Communication ::=
[observes]::OrganizationalRule
[protocol]::ProtocolProtocol ::= [name]::String [initiator]::String [partner]::String [inputs]::String [outputs]::String [description]::String
String ::= string