text-akoma-normalize/module.yaml
flemming-it 8bbcb9cc94
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m39s
fix(naming): dash capability ID (chain catalog charset [a-z0-9-])
provides.capability _ -> - so it passes `chain validate` and the hub
store name-match. No behaviour change (capability validation is lint-only;
the WASM is unchanged).

Signed-off-by: flemming-it <sf@flemming.it>
2026-06-20 00:12:05 +02:00

90 lines
3.1 KiB
YAML

schema_version: 3
provider: chain
name: text-akoma-normalize
version: 0.1.0
# Capability provided by this module.
#
# Normalises heterogeneous legal-document sources (gesetze-im-internet
# XML, EUR-Lex FORMEX, landesrecht-berlin HTML) to a structured
# representation aligned with Akoma Ntoso 1.0 (OASIS LegalDocML).
#
# v0.1.0 ships the gesetze-im-internet (BMJ) XML adapter only.
# HTML and FORMEX adapters are planned for 0.2/0.3 without an
# interface break — the output schema is forward-compatible.
provides:
- capability: text.akoma-normalize
version: 0.1.0
inputs:
content:
type: bytes
description:
en: |
Source bytes of one legal-document file. Supported MIME types
in v0.1.0:
application/xml (gesetze-im-internet BMJ schema)
text/xml (alias)
Planned for 0.2+:
text/html (landesrecht-berlin)
application/x-formex+xml (EUR-Lex FORMEX-4)
de: |
Rohbytes einer Rechtsdokument-Datei. Unterstützte MIME-Typen
in v0.1.0:
application/xml (gesetze-im-internet BMJ-Schema)
text/xml (alias)
Geplant ab 0.2:
text/html (landesrecht-berlin)
application/x-formex+xml (EUR-Lex FORMEX-4)
mime:
type: text
optional: true
description:
en: |
Optional MIME type hint. If omitted, the module inspects
the leading bytes to choose an adapter. Pass explicitly
when the source content-type is known (e.g. from
http.request's `content_type` output).
de: |
Optionaler MIME-Typ-Hinweis. Ohne Hinweis erkennt das Modul
den Typ aus den Anfangsbytes. Explizit übergeben, wenn der
Quell-Content-Type bekannt ist (z.B. aus http.request's
Output `content_type`).
outputs:
norm:
type: json
description:
en: |
JSON-encoded NormalizedNorm:
{
schema_version: "0.1",
adapter: "gesetze-im-internet-xml",
adapter_version: "0.1.0",
eli: "eli/bund/<jurabk>/<paragraph>",
jurabk: "GewO",
paragraph: "§ 14",
title: "Anzeigepflicht",
paragraphs: [{ number, text }],
source_sha256: "...",
normalized_sha256: "...",
akoma_xml: "<akomaNtoso>...</akomaNtoso>" // v0.2+, omitted in 0.1
}
eli is synthetic in 0.1 — Germany lacks an official Bund-level
ELI registrar. Synthesis rule documented in MODULE.md.
de: |
JSON-codiertes NormalizedNorm (Felder s. EN).
eli ist in 0.1 synthetisch — Deutschland hat noch keinen offiziellen
ELI-Registrar auf Bundesebene. Syntheseregel in MODULE.md.
# Permissions required.
#
# Pure in-WASM normalisation: quick-xml + sha2. No filesystem,
# no network. The empty list makes this explicit; the hub enforces it.
permissions: []
# MIME-type allow-list for the `content` input. Studio reads this
# through ModuleInfoResponse.accepts_mime as the OS file-picker filter.
accepts_mime:
- application/xml
- text/xml