| 1. Definition | 2. Functional Requirements | 3. Syntax | 4. Semantics |
1 Definition
The licence of an AIM, in two states of one Data Type: the Implementer’s offer, in the AIM Metadata, which is the Implementer’s licence to the MPAI Store; and the AIM Licence that the MPAI Store issues, signed, to the Entity that runs Controllers (the holder of a Trust Anchor) that obtains the AIM, which is the MPAI Store’s sublicence and which its Controllers keep in their AIM repository.
2 Functional Requirements
2.1 General Requirements
The AIM Licence shall:
- include a Header matching the pattern
AIF-LIC-V<major>.<minor>; - include a Grant, whose Rights include Run;
- disallow any undefined field at the root level (
additionalProperties: false).
2.2 The offer
- The offer is the AIMLicence field of the AIM Metadata. It states what may be done, the limits, for how long, whether newer versions are covered, the price, and where its terms are (TermsURI, required).
- The offer is the Implementer’s licence to the MPAI Store: it states what the MPAI Store may grant, and the sale price that the Implementer proposes (Payment). It shall have Sublicensing, which states whether the MPAI Store may sublicense the AIM; the MPAI Store issues no AIM Licence for an AIM whose offer does not allow it.
- The offer shall not have Licensee, Licensor, ParentLicence, Status or Signature: the AIM Metadata is published once, for everybody, and is never overwritten.
2.3 The issued AIM Licence
- It shall complete the offer for one licensee: it names the AIM and the files covered, each with the fingerprint the MPAI Store approved (AIM); the Licensor, the MPAI Store; the Licensee, the holder of a Trust Anchor; when the Term begins (NotBefore); where validity and revocation are asked, and how long a status may go unconfirmed (Status); and, where the AIM has a price, the proof of payment (Payment).
- It is a sublicence: it shall be within the offer (what it grants, its Term, its Updates), and shall name the offer it is under (ParentLicence): the Implementer and the hash of the offer. Its price is the sale price proposed in the offer with the mark-up of the MPAI Store applied. Its licensee is the Entity that runs Controllers; it does not license the users of that Entity.
- It shall be signed by the MPAI Store. What only an issued AIM Licence has comes with the Signature and nothing else does.
- A Controller shall check, before it builds the AIM, that the signature is the MPAI Store’s, that the Controller is under the Trust Anchor the AIM Licence names, that the AIM Licence is under the offer in the AIM Metadata it holds (ParentLicence), that the files it holds are those the AIM Licence covers, that the Term has not ended, that the Grant covers the use and, when the MPAI Store can be reached, that it is not revoked.
- The Grant says whose control: Run covers the control of the licensee, wherever the AIM executes; RunUnderOtherControl is needed for the control of a party that is not under the licensee’s Trust Anchor.
3 Syntax
https://schemas.mpai.community/AIF/V3.0/data/AIMLicence.json
4 Semantics
| Label | Description | Offer | Issued |
| Header | AIM Licence Header – Standard “AIF-LIC-V3.0” | required | required |
| MInstance, UEnvironment | As in the other Data Types. | optional | optional |
| AIMLicenceID | Unique identifier of the AIM Licence, given by the MPAI Store. | required | |
| AIMLicenceTime | When the MPAI Store issued it. | required | |
| TermsURI | Where the terms of the AIM Licence are published in the MPAI Store. | required | optional |
| Sublicensing | Allowed (boolean): whether the MPAI Store may sublicense the AIM, within the Grant, the Term, the Updates and the Payment of the offer. | required | |
| AIM | What the AIM Licence is for: the AIM Instance identifier (AIMName); the versions covered (Versions: From, To), as the MPAI Store numbers them; the files covered (Implementations: BinaryName, HashAlgorithm, Hash), each Implementation and model with the fingerprint the MPAI Store approved. | required | |
| Licensor | LicensorID: the MPAI Store, which grants and signs the sublicence. Its right to grant comes from the offer, the Implementer’s licence to the MPAI Store (ParentLicence). | required | |
| ParentLicence | The offer the AIM Licence is under: ImplementerID, HashAlgorithm and OfferHash, the hash of the AIMLicence field of the AIM Metadata the MPAI Store published (PTF-JSON-CANON-V1 form, SHA-256). | required | |
| Licensee | TrustAnchorID: the AnchorID of the PTF Trust Anchor (PTF-TRA) of the licensee – an organisation, or one owner. Every Controller whose Instance Credential chains to it is covered, however often Controllers are created and destroyed. ControllerID (optional): only that Controller is covered. | required | |
| Grant | What may be done. Rights: Run – the AIM executes under the control of the licensee, that is of a Controller under its Trust Anchor, wherever the AIM executes; Keep – keep copies in an AIM repository; RunUnderOtherControl – the AIM executes under the control of another party; ProvideService – use it to give a service to third parties. MaxControllers, MaxConcurrentModules and ExcludedPurposes (optional) limit the use. | required | required |
| Term | How long it lasts. In an offer, Duration (ISO 8601); in an issued AIM Licence, NotBefore (required) and NotAfter (omitted: it does not end). | optional | NotBefore required |
| Updates | Included (boolean) and Until: whether newer versions of the AIM are covered. A Controller follows a newer version without a new AIM Licence only if they are. | optional | optional |
| Payment | An MPAI-MMM Service Pricing Model. In an offer, the pricing model offered with the sale price the Implementer proposes; in an issued AIM Licence, the price with the mark-up of the MPAI Store applied, and SPMStatus Final with the model Chosen and the Settlement, whose Transaction is the proof of acquisition. Omitted for an AIM that costs nothing. It is not a payment mechanism. | optional | Final, Chosen and Settlement required if present |
| Obligations | UsageReporting and ReportTo: the Controller reports its use of the AIM to the MPAI Store. Attestation: the Controller attests what it runs (MPAI-PTF) when the MPAI Store asks. | optional | optional |
| Status | StatusURI: where validity and revocation are asked of the MPAI Store. MaxAge (ISO 8601 duration, optional): how long after the MPAI Store last confirmed that the AIM Licence is not revoked – the time of issue, the first time – the AIM may be used without asking again. | required | |
| DataXMData, DescrMetadata | As in the other Data Types. | optional | optional |
| Signature, KeyID | The MPAI Store’s signature over the canonical form (PTF-JSON-CANON-V1) of the AIM Licence without its Signature, and the key that verifies it. | required |