<-Items Go to ToC Protocols->

1. Introduction 2. Process Actions 3. Sequences 4. Backus Naur Form

1. Introduction

If a Process does not have the necessary Capabilities and/or Rights to perform an Action, the Process (now called Process1) can request Process2, that has the necessary Capabilities and Rights. to perform the Action. For instance:

  1. Device “Identifies Data With Qualifier With Model Rights” means that a named Device requests an Identify Service to provide an Identifier to the Item that includes Data, its Qualifier, and Model Rights (requested Rights) to the Item.
  2. User1 “MM-Sends Message With Model Rights” to User2 means that a named User1 requests a Communicate Service to make available a Message to a named User2, with a request to grant it Rights represented by Model Rights.

2. Process Actions

Process Action is the payload used as Process Action Request or Process Action Response that includes:

  1. The Request of Process1 to Process2 or the Response of Process2 to the request of Process1.
  2. A series of Complements Nil, At, From, To, or With each followed by an Item or a Process.
  3. Condition expressed by If Event, if the Process Action is a Request.
  4. Process Action (PA) Status if the Process Action if a Response.

Table 1 – Component of a Request/Response Process Action

Process Action Request

PA Element Description
Time Time of PA request emission and Time of PA request execution.
RQ-Complements The characters of one or more prepositions: Nil, At, From, To, or With each followed by Item (ID or the Item) or ProcessID.
Condition  The characters If followed by Event.

Process Action Response

PA Element Description
Time Time of PA request emission and Time of PA request execution.
RS-Complements The characters of one or more prepositions: Nil, At, From, To, or With each followed by Item (ID or the Item) or ProcessID.
PA Status If the Process Action was successfully performed, the characters “Ack”.
If the Process Action was not performed, one of the characters enclosed in “”:

  1. “Clash”, the PA Request causes a clash with an existing object.
  2. “FaultyReq”, the PA Request is not syntactically correct.
  3. “IncID”, no Item or Process with such an ID.
  4. “IncDQ”, the Data and/or its Qualifier are/is incorrect
  5. “InsRights”, the requesting Process may not obtain the requested Rights.
  6. “InsValue”, a Wallet referenced in the Transaction has insufficient funds.
  7. “LocOOR”, no such Location exists.
  8. “PostRef”, Post refused by Service.
  9. “QualNS”: Qualifier not supported.

Each linked Action in Table 2 provides Definition, Functional Requirements, Syntax and Semantics of the corresponding Process Actions.

Table 2 – List of Actions linked to Process Action specifications

MMM-AUP Authenticate X MMM-ATP Author X MMM-CVP Convert X
MMM-DVP Discover X MMM-EXP Execute X MMM-HDP Hide X
MMM-IDP Identify X MMM-IFP Inform X MMM-ITP Interpret X
MMM-2AP MM-Animate X MMM-2DP MM-Add X MMM-2MP MM-Move X
MMM-2SP MM-Send X MMM-MDP Modify X MMM-3CP MU-Actuate X
MMM-3AP MU-Animate X MMM-3DP MU-Add X MMM-3MP MU-Move X
MMM-3SP MU-Send X MMM-PTP Post X MMM-PCP Property Change X
MMM-RGP Register X MMM-RVP Resolve X MMM-RCP Rights Change X
MMM-TRP Transact X MMM-1CP UM-Capture X MMM-1SP UM-Send X
MMM-VLP Validate X

General notes:

  1. Items, e.g., Rights, Transactions, etc. may be transmitted as IDs or as actual Items.
  2. A Process Action Request (PA Request) may include:
    1. Model Rights to request that a Rights Service produce actual Rights based on Model Rights for a non-errored PA Status.
    2. Model Transaction to request that the Transaction service produce an actual Transaction based on Model Transaction for a non-errored PA Status.
  3. The JSON Schemas of the Process Actions specify which component of an RQ-Complement and a RS-Complement are required.
  4. The Process Action specification may make distinctions between Process types to facilitate understanding of the role typically played by a Process. However, any other type of Process may also be used instead of, e.g., User.

3. Sequences of Process Actions

It is useful to specify standards sequences of IPP messages that are widely used, such as Track that includes the following workflow where a User requests:

Locate Service to MM-Add a Persona at an M-Location with a Spatial Attitude.
Export-Import Service to MM-Capture Data and Qualifier at a U-Location.
Identify Service to Identify Data and Qualifier as Stream.
Locate Service to MM-Animate the MM-Added Persona.
Export-Import Service to MU-Actuate the MM-Animated Persona at a U-Location.

This is the sequence of Messages:

Action RQ-Complements RS-Complements
MM-Add Nil Persona At MLoc With SA With Model Rights With Rights
UM-Capture Nil Data With Qualifier At ULoc Nil Data With Qualifier With SA
Identify Nil Data With Qualifier Nil ItemID
MM-Animate Nil Persona With Stream With Model Rights With Rights
UM-Actuate Nil MLoc At ULoc With SA With Model Rights With Rights With R-Item Type.

The Process Actions in Track assume that:

  1. The same Device is used to UM-Capture and MU-Actuate.
  2. The same Location Service is used to MM-Add and MM-Animate.

4. 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 :=

|”Authenticate”

|”Author”

|”Convert”

|”Discover”

|”Execute”

|”Hide”

|”Identify”

|”Inform”

|”Interpret”

|”MM-Animate”

|”MM-Add”

|”MM-Move”

|”MM-Send”

|”Modify”

|”MU-Actuate”

|”MU-Animate”

|”MU-Add”

|”MU-Move”

|”MU-Send”

|”Post”

|”Property Change”

|”Register”

|”Resolve”

|”Rights Change”

|”Transact”

|”UM-Capture”

|”UM-Send”

|”Validate”

modifiers :=

| /* empty */

| one_or_more_modifiers

one_or_more_modifiers :=

| modifier

| modifier one_or_more_modifiers

modifier :=
| modifier_keyword id
| “At” “(” modifier_subkeyword_At “,” id “)”
| “With” “(” modifier_subkeyword_With “,” id “)”

modifier_keyword :=

| “At”

| “From”

| “Nil”

| “Of”

| “To”

| “With”

modifier_subkeyword_At :=
| “M-Location”
| “Item”

modifier_subkeyword_With :=
| “Rights”
| “Transaction”
| “Item”

id :=

| STRING

| STRING “@” TIME “,” TIME

<-Items Go to ToC Protocols->