| 1. Definition | 2. Functional Requirements | 3. Syntax | 4. Semantics |
1 Definition
AIM Metadata describes an AIM (possibly Composite) implementation in terms of identity, profile, descriptive text, interface and composition (Ports, SubAIMs, Topology), implementations and deployment information, resource policies, and documentation references.
2 Functional Requirements
- Identity — Provide an Identifier with ImplementerID, ImplementationID, and AIMName.
- API Profile — Declare the selected API profile (
BasicorSecure). - Description — Allow free‑text describing the AIM.
- Type Dictionary — Provide a dictionary of Channel data type shorthands (InternalTypes), each with Name and DataType.
- Ports — List ExternalPorts objects, each with Name, Direction, DataType, Technology, Protocol, optional PortNumber, and IsRemote (RecordType is retained only as an optional compatibility alias).
- SubAIM Composition — Enumerate SubAIMs as Name plus a nested Identifier (same structure as top‑level Identifier).
- Topology — Specify Channels as pairs of Output and Input port references; each reference is a portID with AIMName and PortName.
- Implementations — Provide one or more implementation descriptors including BinaryName, Architecture, OperatingSystem, Version, Source (AIMStorage|MPAIStore), and optional Destination (URI of an MPAI Server for remote execution).
- Resource Policies — Declare computing resource policies with Name and optional Minimum, Maximum, and Request.
- Documentation — Provide references (Type=Specification|Manual|Tutorial|Video; URI) to materials relevant to the AIM.
- AIMLicence — Optional. The Implementer’s licence to the MPAI Store (the offer of an AIM Licence): what the MPAI Store may grant, for how long, the sale price the Implementer proposes, whether the MPAI Store may sublicense the AIM, and where the terms are. It has no Licensee and no Signature. Omitted: the AIM needs no AIM Licence.
3 Syntax
https://schemas.mpai.community/AIF/V3.0/data/AIMMetadata.json
4 Semantics
| Label | Description |
| Header | AIM Metadata Header – Standard “AIF-AMD-V3.0” |
| Identifier | Container uniquely identifying the AIM implementation. |
| – ImplementerID | Identifier assigned by IIDRA to the Implementer. |
| – ImplementationID | Identifier assigned by Implementer to the specific Implementation. The Identifier shall be unique in the Implementer name space. |
| – AIMName | The AIM name as defined by the Standard. |
| APIProfile | AIF API Profile selected by the Implementer: Basic or Secure. |
| Description | Free‑text description of the AIM. |
| InternalTypes | Dictionary (array) of Channel data type shorthands. |
| – Name | Unique shorthand used for a Channel data type. |
| – DataType | Channel data type referenced by the shorthand. |
| ExternalPorts | Array of Ports (physical or logical interfaces) through which the AIM communicates. |
| – Name | Implementer‑defined port name. |
| – Direction | Direction of the communication flow: Input (data entering the AIM) or Output (data leaving the AIM). |
| – DataType | Canonical data type of the Port (the value used for routing). |
| – RecordType | Optional compatibility alias for DataType; retained but not used in practice. |
| – Technology | Implementation technology: Hardware or Software. |
| – Protocol | Protocol entry (ontology value). |
| – PortNumber | 1-based ordinal distinguishing multiple ports of the same Direction and DataType on this AIM; omitted when that pair occurs once (implicitly 1). |
| – IsRemote | Boolean declaring whether the port is remote. |
| SubAIMs[] | Array of AIMs used to define the current AIM. |
| – Name | Unique shorthand for the SubAIM within the composition. |
| – Identifier | Nested Identifier object (same structure as top‑level Identifier). |
| Topology[] | Array of Channels, each connecting one Output Port (data leaving an AIM) to one Input Port (data entering an AIM). |
| – Output | Port identifier (portID) of the Output port from which data leaves the source AIM. |
| – Input | Port identifier (portID) of the Input port at which data enters the destination AIM. |
| – AIMName | AIMName of the SubAIM owning the referenced port (empty for a boundary Port of the Composite AIM). |
| – PortName | Name of the referenced port on that AIM. |
| – PortNumber | On an Input endpoint, optionally selects which port of that DataType is meant when the destination AIM has more than one; omitted ⇒ 1. |
| Implementations | Array of concrete implementations of the AIM being defined. |
| – ImplementationURI | URI of the Implementation. |
| – BinaryName | Entry name in the archive containing the Implementation downloaded from the Store. |
| – Architecture | Target architecture (ontology entry). |
| – OperatingSystem | Target operating system (ontology entry). |
| – Version | Implementation version (ontology entry). |
| – Source | Where the Implementation is sourced from: AIMStorage, MPAIStore, or URL. |
| – Destination | If empty, execute locally; otherwise, a URI of an MPAI Server to execute remotely. |
| ResourcePolicies | Set of policies describing computing resources required by the AIM. |
| – Name | Policy name (ontology entry). |
| – Minimum | Lower bound of resources (ontology entry). |
| – Maximum | Upper bound of resources (ontology entry). |
| – Request | Requested resources (ontology entry). |
| Documentation | References to documents relevant to design, implementation, and usage. |
| – Type | Type of the document: Specification, Manual, Tutorial, or Video. |
| – URI | Valid URI for the referenced document. |
| AccessSources | Optional. Array of the data the AIM reads from Access, each identified by the URI it is obtained from and pinned by its SHA-256. Omitted: the AIM reads no Access. |
| – Name | The name by which the AIM asks for the data; unique among the entries of the AIM. |
| – Uri | Where the data is obtained from: an http, https or file URI of a file, or of a set of files (a URI that ends in a slash, with a manifest.json listing the Keys and the SHA-256 of each file). |
| – Sha256 | The SHA-256 of the file, or of the manifest of the set. It is the identity of the data: what does not match is refused, and data already in Access with it is not downloaded again. |
| – Mirrors | Optional. Other URIs holding the same bytes, tried in order when Uri cannot be reached. |
| – ValidWith | Optional. The Sha256 of other entries of the AIM that this data is only meaningful with, such as a database of features and the model that computed them. |
| – KeyPrefixes | Optional. The Keys, or Key prefixes, of a set that the AIM reads. Omitted: all. |
| – IsOptional | Optional. True where the Module can load and the AIM can run without the data. Omitted: required. |
| – Terms | Required. The terms of use of the data: Licence (name of the licence), Uri (where the terms are stated) and PersonalData (true where the data describes persons). The Controller does not enforce them. |
| – Description | A label for people: what the data is and what the AIM uses it for. |
| AIMLicence | Optional. The Implementer’s licence to the MPAI Store (the offer of an AIM Licence, see AIM Licence), without Licensee and Signature. Omitted: the AIM needs no AIM Licence. |
| DataXMData | Additional information on this AIM Metadata instance. |
| DescrMetadata | Descriptive Metadata |