--- mpf: '0.7' title: MPF 0.6-specificatie — ESFI Docs url: https://docs.esfi.eu/nl/standards/mpf/0.6/ mpf-url: https://docs.esfi.eu/nl/standards/mpf/0.6/index.mpf organization: European Strategy & Future Infrastructure domain: docs.esfi.eu lang: nl updated: '2026-11-03' author: ESFI provenance: human source-hash: 63815106283f4c2d5ea1c38351b3286e54a2371a4fd5ff911f62d654006e94d7 toc: - level: 1 text: Machine Page Format (MPF) 0.6 id: machine-page-format-mpf-0-6 - level: 2 text: 1\. Bestandsvorm id: 1-bestandsvorm - level: 3 text: 1.1 MPF-identifier id: 1-1-mpf-identifier - level: 3 text: 1.2 Bronhash id: 1-2-bronhash - level: 2 text: 2\. Paginageneratie id: 2-paginageneratie - level: 2 text: 3\. Frontmatter id: 3-frontmatter - level: 3 text: 3.1 Velden die voor een pagina worden uitgestuurd id: 3-1-velden-die-voor-een-pagina-worden-uitgestuurd - level: 3 text: 3.2 Samenvatting id: 3-2-samenvatting - level: 3 text: 3.3 Content parity id: 3-3-content-parity - level: 2 text: 4\. URL’s en identiteit id: 4-url-s-en-identiteit - level: 3 text: 4.1 Canonieke URL id: 4-1-canonieke-url - level: 3 text: 4.2 Content ID id: 4-2-content-id - level: 3 text: 4.3 Taaldetectie id: 4-3-taaldetectie - level: 3 text: 4.4 Taalvarianten id: 4-4-taalvarianten - level: 2 text: 5\. Markdown-body en inhoudsopgave id: 5-markdown-body-en-inhoudsopgave - level: 2 text: 6\. Companion instruction id: 6-companion-instruction - level: 2 text: 7\. Site-indexen id: 7-site-indexen - level: 3 text: 7.1 Geïndexeerde pagina’s id: 7-1-geïndexeerde-pagina-s - level: 3 text: 7.2 llms.mpf id: 7-2-llms-mpf - level: 3 text: 7.3 llms.txt id: 7-3-llms-txt - level: 3 text: 7.4 llms-full.txt id: 7-4-llms-full-txt - level: 2 text: 8\. Ondertekening id: 8-ondertekening - level: 2 text: 9\. Command-line interface id: 9-command-line-interface - level: 2 text: 10\. ESFI 0.6-referentieconfiguratie id: 10-esfi-0-6-referentieconfiguratie - level: 2 text: 11\. Niet-claims id: 11-niet-claims - level: 2 text: Op deze pagina id: op-deze-pagina spec-origin: esfi.eu content-origin: docs.esfi.eu content-id: esfi:page:standards-mpf-0-6 content-parity: html: true human-visible-source: true hidden-sections: false summary: Vorige geïmplementeerde specificatie voor Machine Page Format 0.6 index: true confidence: confirmed content-type: reference companion-footer: ESFI — civilization infrastructure · https://esfi.eu companion-contact: mailto:hermes@esfi.eu preferred-representation: mpf companion-scope: cite: true summarize: true train: true index: true relay: false language-variants: en: https://docs.esfi.eu/standards/mpf/0.6/index.mpf fr: https://docs.esfi.eu/fr/standards/mpf/0.6/index.mpf nl: https://docs.esfi.eu/nl/standards/mpf/0.6/index.mpf de: https://docs.esfi.eu/de/standards/mpf/0.6/index.mpf hr: https://docs.esfi.eu/hr/standards/mpf/0.6/index.mpf mpf-id: c919493114d2d96897742a292b71016a66e7a6d97d2adcfe38751111a2793706 --- Taal ✕ /nl/standards/mpf/0.6/index.mpf[bestand openen ↗](/nl/standards/mpf/0.6/index.mpf)[specificatie ↗](/nl/standards/mpf/0.7)✕ laden… # Machine Page Format (MPF) 0.6 {#machine-page-format-mpf-0-6} > **Vorige versie.** MPF 0.6 blijft gepubliceerd zodat documenten die deze versie declareren volgens hun oorspronkelijke contract kunnen worden geïnterpreteerd. De huidige geïmplementeerde versie is [MPF 0.7](/nl/standards/mpf/0.7). Status: geïmplementeerde specificatie Versie: 0.6 Referentie-implementatie: `mpf-build` Machine Page Format (MPF) is een gegenereerde, machineleesbare companion-representatie van een webpagina. MPF 0.6 wordt hier bepaald door het gedrag van de `mpf-build`\-implementatie voor deze versie. Dit document beschrijft wat die implementatie produceert; het definieert geen toekomstig gedrag dat nog niet is geïmplementeerd. ## 1\. Bestandsvorm {#1-bestandsvorm} Een MPF-document is UTF-8-tekst met YAML-frontmatter gevolgd door een Markdown-body. ``` --- mpf: '0.6' title: Example ... mpf-id: --- # Markdown body ``` De frontmatter wordt geserialiseerd in stabiele invoegvolgorde. De body wordt vóór serialisatie getrimd en het uiteindelijke document eindigt met een newline. ### 1.1 MPF-identifier {#1-1-mpf-identifier} `mpf-id` is een SHA-256-hash van het volledige gegenereerde MPF-document **voordat** het veld `mpf-id` zelf wordt toegevoegd. De hashbron is exact: ``` --- --- ``` Daarmee is `mpf-id` een contentidentifier voor de gegenereerde MPF-representatie, niet voor de bron-HTML. ### 1.2 Bronhash {#1-2-bronhash} `source-hash` is een SHA-256-hash van de ruwe bron-HTML die `mpf-build` leest. ## 2\. Paginageneratie {#2-paginageneratie} `mpf-build` doorloopt de bronmap recursief, negeert verborgen items en `node_modules`, en verwerkt bestanden die eindigen op `.html` of `.htm`. Voor elke pagina: 1. leest het de ruwe HTML en de wijzigingstijd van het bestand; 2. laadt het de siteconfiguratie en eventuele page override; 3. parseert het de paginametadata; 4. haalt het MPF-only materiaal uit de pagina en past het de MPF-HTML-transformaties van de implementatie toe; 5. selecteert het het geconfigureerde contentgebied; 6. verwijdert het ruis die niet tot de content behoort; 7. converteert het de geselecteerde HTML naar Markdown; 8. voegt het stabiele heading-ankers toe en bouwt het de inhoudsopgave; 9. plaatst het MPF-only Markdown vooraan, indien aanwezig; 10. bepaalt het canonical-, MPF-, identiteits-, taal- en provenancemetadata; 11. plaatst het een companion instruction-blok vooraan wanneer geconfigureerd; 12. serialiseert het het MPF-document en schrijft het naar de outputtree; 13. schrijft het een signature naast het MPF-document wanneer signing is geconfigureerd. De outputmap is standaard de bronmap en kan met `--out` worden gewijzigd. ## 3\. Frontmatter {#3-frontmatter} ### 3.1 Velden die voor een pagina worden uitgestuurd {#3-1-velden-die-voor-een-pagina-worden-uitgestuurd} De huidige paginagenerator stuurt de volgende velden uit: | Veld | Gedrag | | --- | --- | | `mpf` | MPF-versie uit de siteconfiguratie. | | `title` | HTML-paginatitel. Verplicht. | | `url` | Canonieke URL voor mensen. Verplicht. | | `mpf-url` | Absolute URL van dit MPF-bestand. | | `organization` | Organisatie uit de siteconfiguratie. | | `domain` | Domein uit de siteconfiguratie. | | `lang` | Taal uit page override, anders afgeleid uit pad, anders standaardtaal. | | `updated` | Wijzigingsdatum van de bron-HTML, geformatteerd als `YYYY-MM-DD`. | | `author` | Auteur uit de siteconfiguratie. | | `provenance` | Page override of geconfigureerde standaard. Verplicht. | | `source-hash` | SHA-256 van de ruwe bron-HTML. | | `toc` | Array met gegenereerde heading-items. | | `spec-origin` | Geconfigureerde spec-origin, anders het geconfigureerde domein. | | `content-origin` | Geconfigureerde content-origin, anders het geconfigureerde domein. | | `content-id` | Page override of gegenereerde stabiele contentidentiteit. Verplicht. | | `content-parity` | Relatie tussen MPF-content en voor mensen zichtbare HTML. | | `mpf-id` | SHA-256-identifier van de gegenereerde MPF-representatie. | De implementatie kan daarnaast de volgende optionele velden uitsturen wanneer ze naar een niet-lege waarde resolven: - `c2pa-manifest` - `section` - `parent` - `related` - `summary` - `index` - `confidence` - `valid-until` - `review-after` - `content-type` - `companion-instruction` - `companion-contact` - `preferred-representation` - `companion-scope` - `supersedes` - `superseded-by` - `language-variants` - `signature` De builder stopt met een fout als de pagina geen titel, canonical URL, provenance of content ID heeft. ### 3.2 Samenvatting {#3-2-samenvatting} `summary` wordt in deze volgorde bepaald: 1. page override `summary`; 2. HTML-metadatabeschrijving; 3. weggelaten. ### 3.3 Content parity {#3-3-content-parity} Als de HTML MPF-only materiaal bevat dat de implementatie detecteert, wordt de page frontmatter geforceerd naar: ``` content-parity: html: false human-visible-source: false hidden-sections: true ``` Anders gebruikt `content-parity` de geconfigureerde standaard. Als geen standaard is geconfigureerd, gebruikt de implementatie: ``` content-parity: html: true human-visible-source: true hidden-sections: false ``` ## 4\. URL’s en identiteit {#4-url-s-en-identiteit} ### 4.1 Canonieke URL {#4-1-canonieke-url} Als paginametadata een canonical URL levert, wordt die tegen de geconfigureerde base URL opgelost en gebruikt. Voor een `index.html`\-pagina wordt het canonical pad genormaliseerd zodat het op `/` eindigt. Zonder canonical paginametadata: - resolveert root `index.html` naar de genormaliseerde base URL plus `/`; - resolven andere HTML-paden onder de geconfigureerde base URL nadat een afsluitende `index.html` is verwijderd. ### 4.2 Content ID {#4-2-content-id} Gegenereerde pagina-identiteit heeft deze vorm: ``` :page: ``` De geconfigureerde locale-prefix wordt verwijderd vóór de slug wordt gegenereerd, zodat vertalingen van dezelfde route hetzelfde gegenereerde content ID krijgen. De slug van de rootpagina is `home`. Voor niet-rootpagina’s wordt de route naar lowercase omgezet, worden padsegmenten met koppeltekens verbonden en worden niet-ondersteunde tekens naar koppeltekens genormaliseerd. Voorbeeld uit de ESFI-implementatie: ``` esfi:page:home ``` ### 4.3 Taaldetectie {#4-3-taaldetectie} Geconfigureerde talen komen uit `config.languages`. Als die lijst leeg of afwezig is, wordt alleen de geconfigureerde standaardtaal gebruikt. De builder controleert het eerste padsegment. Is dat een geconfigureerde taalcode, dan wordt die taal toegewezen; anders wordt de standaardtaal toegewezen. ### 4.4 Taalvarianten {#4-4-taalvarianten} Voor elke geconfigureerde taal genereert de builder een `language-variants`\-item dat naar de verwachte MPF-URL voor hetzelfde locale-onafhankelijke contentpad wijst. Voor de standaardtaal wordt geen locale-padprefix ingevoegd. Niet-standaardvarianten krijgen `//`. De implementatie genereert deze URL’s uit configuratie en padidentiteit; in deze stap controleert ze niet of elk vertaald bestand bestaat. Voorbeeld: ``` language-variants: en: https://esfi.eu/index.mpf fr: https://esfi.eu/fr/index.mpf nl: https://esfi.eu/nl/index.mpf de: https://esfi.eu/de/index.mpf ``` ## 5\. Markdown-body en inhoudsopgave {#5-markdown-body-en-inhoudsopgave} De geselecteerde HTML-content wordt vóór MPF-serialisatie naar Markdown geconverteerd. Headings H1 tot en met H4 worden in `toc` opgenomen en krijgen expliciete Markdown-ankers: ``` ## Example heading {#example-heading} ``` Elke TOC-entry heeft: ``` - level: 2 text: Example heading id: example-heading ``` Ankergeneratie: - zet de heading om naar lowercase; - behoudt Unicode-letters en -cijfers; - vervangt andere reeksen door `-`; - reduceert herhaalde koppeltekens; - verwijdert koppeltekens aan begin en einde; - valt terug op `section` als geen slug overblijft; - lost duplicaten op door `-2`, `-3` enzovoort toe te voegen. Headings binnen fenced code blocks worden genegeerd. Bestaande inline Markdown-opmaak en links worden verwijderd uit de headingtekst die voor TOC-identiteit wordt gebruikt. ## 6\. Companion instruction {#6-companion-instruction} Als `companion-instruction` aanwezig is, plaatst de builder die als blockquote vooraan in de Markdown-body. Eénregelige vorm: ``` > Companion instruction: ``` Meerregelige vorm: ``` > Companion instruction: > > ``` ## 7\. Site-indexen {#7-site-indexen} Een build produceert ook drie discoveryoutputs op siteniveau: - `llms.mpf` - `llms.txt` - `llms-full.txt` ### 7.1 Geïndexeerde pagina’s {#7-1-geïndexeerde-pagina-s} Een pagina wordt alleen in gegenereerde indexen opgenomen wanneer de resolved frontmatter bevat: ``` index: true ``` Geïndexeerde entries worden lexicografisch op MPF-URL gesorteerd. ### 7.2 llms.mpf {#7-2-llms-mpf} `llms.mpf` is zelf een MPF 0.6-document. De gegenereerde frontmatter gebruikt: - titel `Site Index — `; - taal = geconfigureerde standaardtaal; - provenance = `human`; - content type = `reference`; - `index: true`; - `content-id: :page:llms`; - verborgen/niet-HTML content parity. De body bevat de heading van de organisatie, een optionele geconfigureerde beschrijving en een Markdown-lijst van alle geïndexeerde MPF-pagina’s. Elk item bevat de paginasamenvatting wanneer beschikbaar. De huidige implementatie neemt geïndexeerde pagina’s uit alle geconfigureerde talen op in `llms.mpf`. ### 7.3 llms.txt {#7-3-llms-txt} De builder onderhoudt een MPF-discoverysectie in `llms.txt`: ``` MPF: MPF-index: /llms.mpf ## Pages ... ``` Bestaat geen `llms.txt`, dan maakt de builder er een met een organisatieheading. Bestaat al een MPF-sectie, dan vervangt hij die sectie terwijl content ervoor en erna behouden blijft. ### 7.4 llms-full.txt {#7-4-llms-full-txt} `llms-full.txt` concateneert alleen de bodies van geïndexeerde pagina’s in de geconfigureerde standaardtaal. Per pagina schrijft het de titel, canonical URL en gegenereerde MPF-body. ## 8\. Ondertekening {#8-ondertekening} De builder laadt een signing key uit de geconfigureerde signing-key-instelling. Wanneer een signing key beschikbaar is: - krijgt page frontmatter een `signature`\-URL; - krijgt `llms.mpf` eveneens een `signature`\-URL; - schrijft de implementatie een signature-artifact naast de gegenereerde MPF-content. Als geen signing key is geconfigureerd, wordt het `signature`\-veld weggelaten. ## 9\. Command-line interface {#9-command-line-interface} De geïmplementeerde CLI is: ``` mpf-build [options] ``` Opties: | Optie | Effect | | --- | --- | | `--config ` | Gebruik een specifiek `mpf.config.json`. | | `--out ` | Schrijf gegenereerde bestanden naar een andere map. | | `--dry-run` | Rapporteer gegenereerde paden zonder bestanden te schrijven. | | `--verbose` | Log elk verwerkt bestand met titel, URL en TOC-aantal. | | `--watch` | Bouw opnieuw bij wijzigingen in HTML, page override of configuratie. | In watchmodus worden rebuildverzoeken geserialiseerd: als tijdens een actieve build een wijziging optreedt, wordt één extra rebuild in de wachtrij gezet en daarna uitgevoerd. ## 10\. ESFI 0.6-referentieconfiguratie {#10-esfi-0-6-referentieconfiguratie} De ESFI 0.6-deployment gebruikte: ``` { "mpf": "0.6", "organization": "European Strategy & Future Infrastructure", "domain": "esfi.eu", "base-url": "https://esfi.eu/", "author": "ESFI", "default-lang": "en", "languages": ["en", "fr", "nl", "de"], "content-id-prefix": "esfi" } ``` Die deployment definieerde daarnaast standaardwaarden voor provenance, confidence, content type, indexing, companion scope, companion contact, preferred representation en content parity. ## 11\. Niet-claims {#11-niet-claims} MPF 0.6 krijgt **niet** automatisch een capaciteit alleen omdat een veldnaam die zou kunnen beschrijven. Deze specificatie claimt uitsluitend gedrag dat in de bijbehorende referentie-implementatie aanwezig is. Met name gegenereerde metadata zoals `language-variants`, `confidence`, `companion-scope`, `valid-until` of `review-after` zijn beschrijvende metadata. De builder stuurt of leidt ze af zoals hierboven beschreven; de 0.6-implementatie impliceert geen aanvullende policy engine, netwerkvalidatie, vertaalverificatie, expiry enforcement of confidence-berekening. ## Op deze pagina {#op-deze-pagina} ESFI — civilization infrastructure · https://esfi.eu