The MPAI-MMM Scripting Language – MMM-Script in the following – serves the double purpose of providing:
- A handy tool to describe the Actions performed by Processes in an M-Instance.
- A compact form that a Process can use to request another Process to perform Actions.
| 1 MMM-Script for Action Description | 2 Backus-Naur form |
1 MMM-Script for Action Description
The performance of any Action in an M-Instance is expressed as:
Process ActsOn Item | DataMdata | Media
| At | Service | User | MLoc | ULoc | Where Item ends up being located with SA |
| By | Service | Used to perform Action |
| From | Address | ULoc | Address, ULoc where the source is located |
| Into | Item | Action leads to |
| Of | User | Item refers to |
| To | Address | Device | Process | User | Item/Process where Items ends up being placed |
| With | DataMdata | Stream | Additional Item required to perform Action |
Note: SA is used as a compact form for Spatial Attitude.
Table 1 lists the possible combinations of Actions. Composite Actions are divided into elementary Actions.
| ProcessA | General Actions | Item | Indirect object | ProcessB |
| human | Registers | Personal Data | By M-Instance | Account |
| User | Changes | Rights | Of User | Rights |
| User | Hides | Item | Rights | |
| User | Identifies | DataMdata | Into Item | Item |
| User | Modifies | Item | With DataMdata Into Item | Item |
| Process | Validates | RequestAction | By Service | |
| Process | MM-Sends | RequestAction | To Process | |
| Process | MM-Sends | ResponseAction | To Process | |
| Process | Executes | Contract | ||
| ProcessA | Call a Service | ProcessB | ||
| User | Authenticates | Authentication | At User | Authentication |
| User | Authors | DataMdata | By Service At Service | Item |
| User | Discovers | DiscoverIn | By Service At User | Discovery |
| User | Informs | InformIn | By Service At User | Information |
| User | Interprets | InterpretIn | By Service At User | Interpretation |
| User | Posts | Item | At Service By Service | Item |
| User | Transacts | Item | To User To Service By Service | |
| User | Converts | Item | By Service Into Item At User | Item |
| Resolves (compos.) | Item | By Service Into Item At User | ||
| Process | MM-Sends | ReqAct | To Service | ResAct |
| Service | – MM-Sends | ReqAct | To Service | ResAct |
| Service | – MM-Sends | ReqAct | To Process | ResAct |
| ProcessA | Manage Entities (MM) | ProcessB | ||
| User | MM-Adds | Item | At M-Location With SpAtt | |
| User | MM-Animates | Model | At M-Location With Stream With SpAtt | |
| User | MM-Disables | Item | At M-Location | |
| MM-Embeds (compos.) | ||||
| User | – MM-Adds | Item | At M-Location With SpAtt | |
| User | – MM-Enable | Item | At M-Location | |
| User | MM-Enables | Item | At M-Location | |
| Process | MM-Sends | Item, DataMdata | To Process | |
| ProcessA | Manage Entities (MU) | |||
| Device | MU-Actuates | Item | At U-Location With SpAtt | |
| MU-Embeds (compos.) | ||||
| User | – MM-Sends | Item | To Device | |
| Device | – MU-Actuates | Item | At U-Location With SpAtt | |
| Process | MU-Sends | Item | To Address | |
| Track (compos.) | ||||
| User | – MM-Embeds | Model | At U-Location, With SpAtt | |
| User | – UM-Animates | Model | With Stream At M-Location | |
| User | – MU-Embeds | Item | At U-Location, With SpAtt | |
| ProcessA | Manage Entities (UM) | |||
| UM-Animates (compos.) | ||||
| Device | – UM-Captures | Stream | From U-Location | |
| Device | – UM-Sends | Stream | To User | |
| User | – Identifies | Stream | Into Item | |
| User | – MM-Animates | Model | With Stream At M-Location At U-Location, With SpAtt | |
| Device | UM-Captures | Media | From U-Location To Device | |
| UM-Embeds (compos.) | ||||
| Device | – UM-Captures | Media | From U-Location | |
| Device | – UM-Sends | DataMdata | To User | |
| User | – Identifies | DataMdata | Into Item | |
| User | – MM-Embeds | Item | At M-Location With SpAtt | |
| Device | UM-Sends | DataMdata | From Address To Process |
1.2 Backus-Naur form
program :=
| /* empty */
| one_or_more_statements
one_or_more_statements :=
| statement
| statement one_or_more_statements
statement :=
| id action_keyword id modifiers
action_keyword :=
|“Register”
| | “Change” |
| | “Hide” |
| | “Authenticate” |
| | “Identify” |
| | “Modify |
| | “Validate” |
| | “Execute” |
| | “Author” |
| | “Discover” |
| | “Inform” |
| | “Interpret” |
| | “Post” |
| | “Transact” |
| | “Convert” |
| | “Resolve” |
| | “MM-Add” |
| | “MM-Animate” |
| | “MM-Disable” |
| | “MM-Embed” |
| | “MM-Enable” |
| | “MM-Send” |
| | “MU-Actuate” |
| | “MU-Embed” |
| | “MU-Send” |
| | “Track” |
| | “UM-Animate” |
| | “UM-Capture” |
| | “UM-Embed” |
| | “UM-Send” |
modifiers :=
| /* empty */
| one_or_more_modifiers
one_or_more_modifiers :=
| modifier
| modifier one_or_more_modifiers
modifier :=
| modifier_keyword id
modifier_keyword :=
| “At”
| “By”
| “From”
| “Into”
| “Of”
| “To”
| “With”
id :=
| STRING
| STRING “@” TIME
| URL “@” TIME
| URL “:” STRING “@” TIME