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:

  1. The address of the schema of the commands of the application and the address of the schema of its responses.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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).
  7. 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; is a number. Required.
– 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:

  1. The Data validates against the Application Context JSON Schema.
  2. All Data in the Application Context JSON Schema
    1. Have the specified type
    2. Validate against their JSON Schemas
    3. Conform with their Data Qualifiers if present.

6 Performance Assessment