Machine Page Format (MPF)
Une page pour les personnes. Une pour les machines. Les deux déclarées.
Machine Page Format (MPF) est un format ouvert permettant de publier un compagnon lisible par machine à côté d’une page HTML. Le compagnon contient un frontmatter YAML avec les déclarations de l’éditeur sur la ressource, suivi d’un corps Markdown propre. Il est généré au moment du build à partir du même HTML que lisent les personnes.
MPF répond à une question étroite : qu’est-ce qu’un éditeur doit exposer pour qu’une machine puisse identifier, découvrir et interpréter une page publique sans devoir deviner des faits que l’éditeur aurait pu déclarer directement ?
- Périmètre : un contrat de publication machine — identité, représentation, déclarations de l’éditeur et découverte, le périmètre de traitement n’en étant qu’une composante.
- Contribution : la relation déclarée entre une page humaine et sa représentation machine.
La page humaine reste l’adresse canonique. Le fichier MPF est son parallèle déclaré.
Statut
| Version actuelle | 0.7 — Spécification 0.7 |
| Version précédente | 0.6 — Spécification 0.6 |
| Implémentation de référence | mpf-build — git.esfi.eu/esfi/mpf |
| Émetteurs vérifiés | Registre des implémentations |
| Politique de versionnement | Versionnement |
La spécification décrit ce que l’implémentation de référence produit réellement. Le nom d’un champ ne confère pas à MPF une capacité que l’implémentation ne possède pas.
Comment lire cette section
Les pages de cette section marquent chaque règle avec son statut :
| Marqueur | Signification |
|---|---|
| Specification 0.7 | Défini dans la spécification publiée. Les producteurs et consommateurs conformes peuvent s’y fier. |
| Reference implementation | Comportement de mpf-build que le texte de la spécification ne décrit pas encore. Stable en pratique, pas encore normatif. |
| ESFI practice | Convention de déploiement utilisée sur les sites ESFI, en dehors du builder et de la spécification. Documentée afin que d’autres puissent la reproduire, sans être requise pour la conformité. |
Un mécanisme ne passe de la pratique à la spécification qu’au travers d’une nouvelle version de la spécification.
Anatomie d’un fichier MPF
index.html → index.mpf
about/index.html → about/index.mpf
---
mpf: '0.7'
title: Example page
url: https://example.org/about/
mpf-url: https://example.org/about/index.mpf
organization: Example Publisher
domain: example.org
lang: en
updated: 2026-09-21
author: Example Publisher
provenance: human
source-hash: 3f1c…
toc:
- level: 1
text: About
id: about
spec-origin: example.org
content-origin: example.org
content-id: example:page:about
content-parity:
html: true
human-visible-source: true
hidden-sections: false
index: true
companion-scope:
cite: true
summarize: true
train: false
index: true
relay: false
mpf-id: 9a0b…
---
# About {#about}
Clean Markdown body of the page…
Example Publisher — https://example.org
Le frontmatter est sérialisé dans un ordre stable. mpf-id est un condensat SHA-256 du document complet avant l’insertion de mpf-id lui-même ; source-hash est un condensat SHA-256 du HTML source brut. Détails : Spécification 0.7.
Ce que couvrent les déclarations
| Groupe | Champs | Ce qu’apprend un lecteur |
|---|---|---|
| Identité | url, mpf-url, content-id, lang, language-variants |
De quelle ressource logique il s’agit, où vivent les deux représentations et quels fichiers sont des versions linguistiques équivalentes |
| Éditeur | organization, domain, author, spec-origin, content-origin |
Qui répond des déclarations |
| Provenance | provenance, confidence, c2pa-manifest |
Comment l’éditeur décrit l’origine et le statut du contenu |
| Intégrité | source-hash, mpf-id, signature |
Si les deux représentations ont divergé, si ce fichier a changé et si l’éditeur déclaré l’a signé |
| Parité | content-parity |
Comment le corps machine se rapporte à ce qu’une personne voit |
| Périmètre de traitement | companion-scope |
Ce que l’éditeur entend permettre à une machine de faire avec le contenu |
| Cycle de vie | updated, valid-until, review-after, supersedes, superseded-by |
Si la ressource est actuelle et ce qu’elle remplace |
| Structure | toc, section, parent, related, summary, content-type |
Comment la page est organisée et comment elle se rapporte à d’autres pages |
| Éditeur vers lecteur | companion-instruction, companion-footer, companion-contact, preferred-representation |
Le message de l’éditeur au lecteur machine, sa ligne de signature et son contact |
| Indexation | index |
Si la page apparaît dans les index machine du site |
Champs obligatoires, champs facultatifs et règles de génération : Spécification 0.7. Configuration et surcharges par page : Implémentation.
La découverte en un paragraphe
Une machine devrait trouver la représentation MPF avant de commencer à interpréter le HTML. Le builder écrit llms.txt avec une section MPF (version, pointeur vers la spécification, chemin de l’index) ainsi que llms.mpf, un index MPF de toutes les pages indexées ; chaque page porte son compagnon au même chemin avec .mpf à la place de .html (Specification 0.7). Les sites ESFI publient en plus un enregistrement DNS TXT et une déclaration /.well-known/mpf (ESFI practice). Référence complète : Publication et découverte.
Des déclarations, pas des verdicts
Chaque champ MPF est soit généré depuis la source, soit déclaré par l’éditeur. Aucun n’est une vérification indépendante.
provenance: humanindique comment l’éditeur décrit l’origine. Il ne la prouve pas.confidenceindique l’évaluation de l’éditeur. Ce n’est pas une validation.companion-scopeindique le traitement souhaité. Ce n’est pas un verrou technique et cela ne remplace pas le droit applicable.source-hashmontre si les deux représentations ont divergé. Il n’établit pas que le contenu est vrai.- Une signature montre qu’une clé donnée a signé un fichier donné. Elle ne montre pas que les affirmations qu’il contient sont correctes.
Un système consommateur devrait conserver ces distinctions dans son propre modèle de données et juger chaque signal pour ce qu’il établit réellement.
Relation avec d’autres standards
MPF fonctionne aux côtés d’autres travaux dans le même espace. Il ne les remplace pas.
| Standard | Ce qu’il traite |
|---|---|
| robots.txt | Préférences d’accès des crawlers |
| llms.txt | Point d’entrée léger pour les modèles de langage ; MPF étend le llms.txt du site avec une section MPF |
| TDMRep | Protocole du W3C Community Group pour exprimer la réserve européenne de fouille de textes et de données |
| RSL | Conditions de licence de l’éditeur pour l’utilisation par l’IA |
| AIPREF (IETF) | Vocabulaire de préférences d’usage pour l’IA ; travail en cours à l’IETF |
| C2PA | Provenance cryptographique du contenu et credentials ; un fichier MPF peut pointer vers un manifeste C2PA avec c2pa-manifest |
Ce que MPF ne prétend pas
- Ce n’est pas un système de vérité. Les déclarations sont des déclarations ; la vérification exige des preuves indépendantes.
- Ce n’est pas un instrument juridique.
train: falseconsigne une position déclarée, pas un contrat ni un verrou. Son effet juridique dépend du droit applicable. - Ce n’est pas un mécanisme d’application. Aucun champ n’est imposé par le format.
- Ce n’est pas un remplacement du HTML. La page humaine reste canonique.
- Ce n’est pas un gardien. Publier et lire MPF ne nécessite aucun service ESFI, aucune inscription ni aucune autorisation.
Pour aller plus loin
- Pourquoi MPF existe, et la lettre qui a lancé le travail : companion.esfi.eu
- La position d’ESFI sur le problème sous-jacent : Préparation à l’IA
- Ce que Companion signifie sur les sites ESFI : Glossaire