<-Items    Go to ToC    Protocols->

1. Introduction 2. Process Actions 3. 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 Rights (Status-Model)” means that a named Device requests an Identify Service to provide an Identifier to the Item that includes Data, its Qualifier, and 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 Rights (Status=Model).

2. Process Actions

Process Action is a payload used by a Process Action Request or a Process Action Response that contains the elements of Table 1:

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.
Action The Action that Process1 requests Process2 to perform.
RQ-Complements The characters of one or more prepositions: Nil, At, From, To, or With each followed – when present – by an Item (ID or the Item) or Process (ID of the Process).

Process Action Response

PA Element Description
Time Time of PA response emission and Time of PA Response execution.
RS-Complements The characters of one or more prepositions: Nil, At, From, To, or With each followed – when present – by an Item (ID or the Item) or a ProcessID.
PA Status The characters “Ack”, if the Process Action was successfully performed.
One of the nine set of characters listed  enclosed in “”, if the Process Action was not performed:

  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.

Process Actions are grouped according to the function they performed, e.g., Communicate, Economy, etc. Table 2 provides links to the web-based specifications and JSON Schemas of 30 Process Action. These provide Definition, Functional Requirements, Syntax and Semantics of each Process Action.

Table 2 – List of Process Actions with links to specifications

Note: The links in the X’s in the 4th and 8th columns lead to the JSON Schemas.

Communicate MMM-2SP MM-Send X Import MMM-1PP UM-Capture X
MMM-RVP Resolve X MMM-1CP UM-Actuate X
Economy MMM-LCS License X MMM-1SP UM-Send X
MMM-PTP Post X Information MMM-AUP Authenticate X
MMM-TRP Transact X MMM-DVP Discover X
Execute MMM-EXP Execute X MMM-ITP Interpret X
Export MMM-3CP MU-Actuate X Item Manage MMM-ATP Author X
MMM-3DP MU-Add X MMM-CVP Convert X
MMM-3AP MU-Animate X Locate MMM-2DP MM-Add X
MMM-3MP MU-Move X MMM-2AP MM-Animate X
MMM-3SP MU-Send X MMM-2CP MM-Capture X
Identity Manage MMM-HDP Hide X MMM-2MP MM-Move X
MMM-IDP Identify X MMM-PCP Property Change X
MMM-MDP Modify X Rights Manage MMM-RCP Rights Change X
MMM-RGP Register 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, and vice-versa.

Most Process Actions involve two Processes when the requested Process is for free or three when the requested Process is a pay Service. Table 3 gives the exceptions

Table 3 – Process Actions involving three or more Processes

Resolve Involves the requesting User, the affected Resolve Services, and the Users involved in the multi-metaverse session. Transact Services are required when Resolve is a pay Service
License Involves the User offering the Asset, the User interested in the offer, and the Transact Service
Post  Involves the User Posting the Asset, the Post Service, the User interested in the Asset, and the Trasact Service.
MU-Actuate Involves MU-Actuate and Export Services.
MU-Send Involves the Sender, the Receiver and the Import Service.
Hide Involves Hide and Identify Services.
Identify Involves the Identify and Rights Manage Services.
Modify Involves the Identify and Rights Manage Services.
UM-Actuate Involves the Process capturing the data, the Identify Service, the Rights Manage Service, and the Locate Service.
UM-Send Involves the Sender, the Receiver and the Export Service.

3. 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->