
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]::OrganizationOrganization ::= [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]::ResourceAction ::= [type]::String
Communication ::=
[observes]::OrganizationalRule [protocol]::ProtocolProtocol ::= [name]::String [initiator]::String [partner]::String [inputs]::String [outputs]::String [description]::String
String ::= string