| 1 Definition | 2 Functional Requirements | 3 Syntax |
| 4 Semantics | 5 Conformance Testing | 6 Performance Assessment |
1 Definition
A Data Type representing the standing description of an application served by JSON Interface (MMC-JSI): the addresses of the schemas of its commands and of its responses, and what those two schemas do not say (conventions, words, examples). JSON Interface receives it on its Application Context Port or obtains it from the Access of its implementation (the Settings CommandSchema, ResponseSchema and ApplicationContext).
2 Functional Requirements
Application Context includes:
- The address of the schema of the commands of the application and the address of the schema of its responses.
- What the application is and does, and the conventions its commands rely on: units, axes, orientations, which field a verb is for, how a change by an amount is made, other words for an object.
- The paths of the command schema that a request may fill, those that are required or removed, and the properties that the AIM sets and the model is not asked for.
- The names of the objects of the application and the sets they are taken from, and the requests that are not turned into a command: those that need an object or a number and lack it, and those that are not for the application.
- How the state of the application is read from a response, the commands that ask for it, and the words with which the Response Hint tells a response.
- The grammar of the application: requests of a known shape that become a command at once, without the language model (Rules), what is said to a request that says nothing the application knows (Try), what is asked for a thing that lacks what is needed (Asks), the reasons a response gives for a failure and what is said instead (Reasons), and how a response that did all that was asked is said in a few words (Said).
- Examples of requests with the commands they stand for.
Only the Header is required: every other member is a help that an implementation of JSON Interface may use. A path is a dotted path from the name of a command or response, through its properties, to the property or object it designates (for example UserCommandRQ.MovedObjects.Objects.ObjectID).
3 Syntax
https://schemas.mpai.community/MMC/V2.5/data/ApplicationContext.json
4 Semantics
| Label | Description |
| Header | Application Context Header – the value “MMC-APC-V2.5”. Required. |
| CommandSchema | The address of the schema that a command of the application conforms to. |
| ResponseSchema | The address of the schema that a response of the application conforms to. |
| Description | Says which application the Application Context is for and where it is kept in the Access of the implementation. |
| Application | What the application is and does, in words, given to the language model. |
| Conventions | What the schemas do not say and the commands rely on: units, axes, orientations, which field a verb is for, how a change by an amount is made, other words for an object. |
| Include[] | The paths of the command schema that the request is allowed to fill. Everything else is left out of the schema given to the model, to make it small. A path is a dotted path in the schema. |
| Require[] | Paths that are required in the schema given to the model, though the command schema does not require them. |
| Drop[] | Paths removed from the schema given to the model. |
| Skip[] | Names of properties that are not shown in the descriptions of the response, because they carry no meaning for the person. |
| Generated[] | Names of properties that the AIM gives a value to after the model has answered (identifiers, times): the model is not asked for them. |
| Fill | Values the AIM sets in a command: a path, or a property name, and the value; {id} is a new identifier and {now} the time. |
| Names[] | Paths whose value is the name of an object, and the set of names that the value is taken from. |
| – Path | The path whose value is the name of an object. Required. |
| – Set | One of Members (the objects of the open scene), Present (the open scene and its objects), Stored (the objects kept and not yet used) or Kept (everything the application keeps, scenes and objects). Required. |
| NeedsObject | Requests that act on an object and name none are not turned into a command: the person is asked. |
| – Paths[] | The commands that need an object. |
| – Question | What is asked. |
| – Names | The sentence that lists the names, with {0} for the list. |
| – Synonyms | Another word and the name it stands for. |
| – Unless[] | Commands that do not need an object. |
| – Anything[] | Words that stand for the whole scene. |
| NeedsNumber | Requests that say an amount without a number are not turned into a command: the person is asked. |
| – Phrases[] | Phrases that call for an amount. |
| – NumberWords[] | Words that give the amount. |
| – Question | What is asked. |
| Refusals[] | Requests that are not for the application. |
| – Words[] | Words or phrases, in lower case, that are looked for in a request. Required. |
| – Problem | What the AIM says when the request has one of the words. Required. |
| Triggers[] | Paths of the command schema kept, for a request, only when it has one of the words. |
| – Path | The path of the command schema. Required. |
| – Words[] | The words. Required. |
| Hints[] | A sentence added to the request when it has one of the words. |
| – Words[] | The words. Required. |
| – Text | The sentence added. Required. |
| Shortcuts[] | Requests that are answered with a fixed command, without the model. |
| – Phrases[] | The phrases. Required. |
| – Command | The command: an instance of the CommandSchema. Required. |
| StateRequests[] | The commands that ask the application for its state, sent when the AIM does not know it (each an instance of the CommandSchema). |
| Context | How the state of the application is read from a response and told to the model. |
| – Items | The path of the list of things in the response. |
| – Name | The property that names an item. |
| – Kind | The property that says what an item is. |
| – SceneKinds[] | The kinds that are scenes. |
| – Members | The property that counts the members of a scene. |
| – MemberName | The property that names a member. |
| – MemberNames | The property that lists the names of the members of a scene. |
| – Describe[] | Values of an item that are told to the model. |
| – Label | The label of the value. Required. |
| – Path | The path of the value. Required. |
| – Words | The sentences that tell the state: State, Scene ({0} the name, {1} the number of members), Stored, Unknown. |
| Earlier | The property of a command that names an earlier command (to undo it). |
| ResponseIntro | The first words of the Response Hint. |
| Words | The words with which the Response Hint tells a property or a value of a response. |
| Examples[] | Requests with the command they stand for, given to the model. Each has a Request and either a Command or a Problem. |
| – Request | The request. Required. |
| – State | The state of the application that the example assumes. |
| – Earlier | The commands sent before that the example assumes, one per line. |
| – Working | The reasoning that leads to the command, or to the problem. |
| – Command | The command the request stands for. |
| – Problem | What is said instead of a command, when the request does not become one. |
| Descriptions | A description for a path, added to the description of the command schema. |
| Said | How a response that did all that was asked is said in a few words, without the dialogue AIM asking its language model: the action of the response and the words for it, {0} standing for the name of the object. |
| Rules[] | The grammar of the application: requests of a known shape that become a command at once, without the language model. Each rule is a Pattern, the sets of Names its words have to be, numbers worked out (Let) from the numbers said and from where the objects are, and the Command. |
| – Pattern | A regular expression of the whole request; |
| – Names | The sets of names that the words of the pattern have to be: each one of Members, Present, Stored, Kept or Latest (the sound kept and not yet in a scene, last kept). |
| – Implicit | A name the words of the request do not say: the variable and the set it is taken from (Members, Present, Stored, Kept or Latest: the sound kept and not yet in a scene, last kept). |
| – Let | Numbers worked out from the numbers said and from where the objects are: a name and its expression. |
| – Keep[] | The numbers of the request that a later request may use (the size of the room, when the ceiling is asked for alone). |
| – Command | The command; a string {expression} is replaced by its number. Required. |
| Try | What is said, as it is, to a request that says nothing the application knows. |
| Asks[] | Words that name a thing the application has but give what is needed for it nowhere, and what to say, as it is, to ask for it. |
| – Words[] | The words. Required. |
| – Say | What is said, as it is, to ask for what is needed. Required. |
| Reasons[] | A reason a response gives for a failure, in the words it has, and what is said instead, as it is. |
| – When | The reason, in the words the response has. Required. |
| – Say | What is said instead, as it is. Required. |
| Working | Whether the model writes its reasoning before the command (a boolean). |
| Reminder | A sentence repeated to the model after the request. |
5 Conformance Testing
A Data instance Conforms with MPAI-MMC Application Context (MMC-APC) if:
- The Data validates against the Application Context JSON Schema.
- All Data in the Application Context JSON Schema
- Have the specified type
- Validate against their JSON Schemas
- Conform with their Data Qualifiers if present.