Canonical Seed-Data License Notices (Pillar A)¶
Status: v1.6.0 — downloaded + smoke-substituted corpora committed under
publications/_output/seed_canonical/.
This document satisfies the per-corpus attribution requirements for every canonical seed file that FCC redistributes under Pillar A. Every downstream consumer of these seed files MUST preserve the attribution blocks when redistributing.
Executive summary¶
| Vertical | Corpus | License | Substituted? | Source URL |
|---|---|---|---|---|
| medical | ICD-11 MMS (WHO) | CC-BY-ND-3.0-IGO | Yes — smoke subset (10 entries) | https://icd.who.int/browse11/l-m/en |
| financial | OpenFIGI (Bloomberg) | OpenFIGI-Permissive | Yes — smoke subset (8 mappings) | https://www.openfigi.com/ |
| insurance | NAICS 2022 (US Census) | US-Gov-Public-Domain | Yes — smoke subset (20 sectors) | https://www.census.gov/naics/ |
| energy | IEC 61970 CIM | IEC-Redistribution | Yes — synthetic 5-class fragment | https://webstore.iec.ch/publication/61168 |
| government | eIDAS trust vocab | EU-Commission-Reuse | Yes — smoke subset (10 classes) | https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv:OJ.L_.2014.257.01.0073.01.ENG |
| government | DCAT-US 3.0 | US-Gov-Public-Domain | Yes — smoke subset (8 classes) | https://resources.data.gov/resources/dcat-us/ |
All files are listed with SHA256 hashes in
publications/_output/seed_canonical_manifest.json.
Pillar-A Seed-Data Lifecycle¶
End-to-end lifecycle of a canonical seed corpus through FCC's Pillar A.
A seed source (WHO ICD-11, OpenFIGI, NAICS, IEC CIM, eIDAS, DCAT-US) is
identified; the owner-gated fetch stage runs with
FCC_ACCEPT_EXTERNAL_LICENSES=1 and per-source credentials; the
downloader emits a SHA-256 manifest entry + attribution log; consumers
(FCC test harness, tutorials, vertical plugins) read the manifest +
preserve attribution blocks on every onward redistribution. Smoke
substitutions follow the same pipeline with substituted: true flagged
in the manifest.
flowchart LR
subgraph Sources["Seed sources (per-vertical)"]
direction TB
Src1["WHO ICD-11 MMS<br/>CC-BY-ND-3.0-IGO"]
Src2["OpenFIGI (Bloomberg)<br/>OpenFIGI-Permissive"]
Src3["NAICS (US Census)<br/>Public Domain"]
Src4["IEC 61970 CIM<br/>IEC-Redistribution"]
Src5["eIDAS (EUR-Lex)<br/>EU-Commission-Reuse"]
Src6["DCAT-US (GSA)<br/>Public Domain"]
end
subgraph Gate["Owner-gated fetch"]
direction TB
EnvGate{"FCC_ACCEPT_EXTERNAL<br/>_LICENSES=1 ?"}
Creds[Per-source credentials<br/>WHO OAuth · Bloomberg API key]
Fetcher["publications/scripts/<br/>fetch_canonical_seeds.py"]
end
subgraph Emit["Manifest + attribution emission"]
direction TB
SHA["SHA-256 manifest entry<br/>publications/_output/<br/>seed_canonical_manifest.json"]
AttribLog["_license + _attribution<br/>embedded in each payload"]
SmokeFlag{"smoke subset?"}
end
subgraph Store["Canonical store"]
direction TB
Files["publications/_output/<br/>seed_canonical/<vertical>/"]
end
subgraph Consumers["Consumers (preserve attribution)"]
direction TB
Harness[FCC test harness]
Tuts[Tutorials + notebooks]
Plugins["Vertical plugins<br/>(Ophiuchus · Libra · ...)"]
end
Src1 --> EnvGate
Src2 --> EnvGate
Src3 --> EnvGate
Src4 --> EnvGate
Src5 --> EnvGate
Src6 --> EnvGate
EnvGate -->|false| SmokeFlag
EnvGate -->|true| Creds
Creds --> Fetcher
Fetcher --> SHA
Fetcher --> AttribLog
SmokeFlag -->|yes, substituted| SHA
SHA --> Files
AttribLog --> Files
Files -->|read + preserve| Harness
Files -->|read + preserve| Tuts
Files -->|read + preserve| Plugins
classDef future fill:#e8f1fd,stroke:#5b7ff4,stroke-dasharray:4
class Creds future
Invariants:
- Every seed file embeds its own _license + _attribution fields so attribution survives copy-paste.
- The manifest is the machine-readable source of truth — consumers discover SHA-256 + substitution status through the manifest, never by guessing.
- Real (non-smoke) fetches are gated on FCC_ACCEPT_EXTERNAL_LICENSES=1 — the downloader refuses to run without owner acknowledgment.
- CC-BY-ND corpora (ICD-11) are never modified; consumers reference codes as opaque identifiers rather than altering titles.
- The IEC 61970 normative schema is NEVER redistributed under any FCC release — only the informative-annex subset, and only once an IEC license is acquired.
- Smoke substitutions are clearly flagged (substituted: true) so downstream can distinguish tutorial-grade from production-grade seeds.
Source: publications/scripts/seed_canonical.py · intent / metadata registry,
publications/scripts/fetch_canonical_seeds.py · downloader,
publications/_output/seed_canonical_manifest.json · manifest.
Why smoke subsets?¶
The v1.6.0 bootstrap path ships smoke subsets rather than the full canonical corpora for five independent reasons:
- ICD-11 MMS (medical) — WHO's browse endpoint requires OAuth credentials
per https://icd.who.int/icdapi. The smoke subset preserves the API shape
and CC-BY-ND attribution so the FCC test harness and tutorials work
end-to-end without credentials. To replace with the real MMS: acquire
WHO API credentials, run the authenticated traversal, overwrite
medical/icd11_mms_2024.json, update the manifest SHA256. - OpenFIGI (financial) — Bloomberg's bulk endpoint requires an API key and enforces rate limits. The smoke subset provides 8 representative mappings under the same OpenFIGI-Permissive license.
- NAICS 2022 (insurance) — the US Census publishes the codes publicly as XLSX and CSV, but the canonical direct-URL had moved at fetch time. The smoke subset contains the 20 public-domain NAICS 2-digit sector codes + 8 sector definitions sufficient for tutorials.
- IEC 61970 CIM (energy) — the real schema requires per-seat IEC licensing. See the IEC section below for the gate policy.
- eIDAS + DCAT-US (government) — both sources are free-to-redistribute, but their canonical delivery formats (EUR-Lex HTML, GSA JSON-LD profile) are not directly useful as TTL/JSON-LD without a conversion pass. The smoke subsets provide the core vocabulary classes and attribution blocks that downstream consumers can extend.
Each smoke subset file embeds its own _license + _attribution fields
inside the payload so attribution survives copy-paste. The aggregate
manifest records substituted: true and the substitution reason per file.
Per-corpus license details¶
Medical — ICD-11 MMS (WHO)¶
- License ID: CC-BY-ND-3.0-IGO (Creative Commons Attribution-NoDerivatives 3.0 IGO)
- License URL: https://icd.who.int/browse11/l-m/en/terms
- Attribution required: YES — verbatim WHO attribution block on every consumer redistribution.
- Attribution text:
World Health Organization (2024). ICD-11 for Mortality and Morbidity Statistics. https://icd.who.int/browse11 - Derivatives: NOT PERMITTED without WHO permission. Consumers of FCC that build vertical models from ICD-11 must either (a) request WHO derivative-work permission or (b) keep ICD-11 content unmodified and reference codes rather than reproducing content.
- FCC consumer guidance: use the ICD-11 codes as opaque identifiers;
do not alter the
titletext in the smoke subset when redistributing.
Financial — OpenFIGI (Bloomberg)¶
- License ID: OpenFIGI-Permissive (a Bloomberg-drafted permissive license)
- License URL: https://www.openfigi.com/about/api
- Attribution required: YES — Bloomberg + OpenFIGI citation.
- Attribution text:
Bloomberg Finance L.P. / OpenFIGI (2024). https://www.openfigi.com. FIGI identifiers are open and royalty-free under OMG formal/2015-11-04. - Derivatives: permitted with attribution.
- FCC consumer guidance: safe to reshape/transform; preserve the
_attributionblock when redistributing bulk FIGI tables.
Insurance — NAICS 2022 (US Census Bureau)¶
- License ID: US-Gov-Public-Domain (17 U.S.C. §105)
- License URL: https://www.census.gov/about/policies/open-gov.html
- Attribution required: NO (public domain). Courtesy attribution recommended as a professional convention.
- Attribution text:
U.S. Census Bureau (2022). North American Industry Classification System. https://www.census.gov/naics/ - Derivatives: unrestricted.
- FCC consumer guidance: no constraints.
Energy — IEC 61970 CIM (informative subset / synthetic smoke)¶
- License ID: IEC-Redistribution (for the informative annex; normative schema requires per-seat licensing)
- License URL: https://webstore.iec.ch/copyright
- Attribution required: YES — IEC citation for any real fragment.
- IMPORTANT — SMOKE SUBSTITUTION: the file
energy/cim_informative_subset.xmlshipped in v1.6.0 is a synthetic 5-class RDF/XML illustration. It is NOT a real IEC 61970 fragment. Seeenergy/cim_readme_license.txtfor full context. - To replace with a real informative subset:
- Acquire the IEC 61970 informative-annex license via https://webstore.iec.ch/publication/61168
- Extract the redistributable CIM16 RDF/XML
- Overwrite
energy/cim_informative_subset.xml - Re-run
make seed-canonicalwithFCC_ACCEPT_EXTERNAL_LICENSES=1 - Update the manifest SHA256 and clear the
substitutedflag - Per-seat license: the normative schema CANNOT be redistributed under any FCC release. Downstream consumers who need the normative schema must license it per seat from IEC directly.
Government — eIDAS (EU Regulation 910/2014)¶
- License ID: EU-Commission-Reuse (Commission Decision 2011/833/EU)
- License URL: https://eur-lex.europa.eu/content/legal-notice/legal-notice.html
- Attribution required: YES — EU Official Journal citation.
- Attribution text:
European Union. Regulation (EU) No 910/2014 of the European Parliament and of the Council of 23 July 2014 on electronic identification and trust services (eIDAS). OJ L 257, 28.8.2014, p. 73. - Derivatives: free reuse permitted with attribution.
- FCC consumer guidance: can transform TTL to other RDF serializations; preserve the attribution prefix/comment block.
Government — DCAT-US 3.0 (GSA / Data.gov)¶
- License ID: US-Gov-Public-Domain (17 U.S.C. §105)
- License URL: https://resources.data.gov/open-government/
- Attribution required: NO (public domain). Courtesy attribution recommended.
- Attribution text:
U.S. General Services Administration / Data.gov. DCAT-US 3.0 Profile. https://resources.data.gov/resources/dcat-us/ - Derivatives: unrestricted.
- FCC consumer guidance: no constraints.
Refresh workflow¶
When upgrading from smoke subsets to real corpora (post-v1.6.0 owner action):
export FCC_ACCEPT_EXTERNAL_LICENSES=1
# 1. Source-by-source, replace smoke file with real download
# (requires per-source credentials where applicable)
# 2. Regenerate manifest
python publications/scripts/fetch_canonical_seeds.py
# 3. Verify SHA256s
python -c "import json; \
m = json.load(open('publications/_output/seed_canonical_manifest.json')); \
print(f'{m[\"file_count\"]} files, {m[\"substituted_count\"]} still smoke-substituted')"
# 4. Commit manifest + refreshed files
git add publications/_output/seed_canonical/ publications/_output/seed_canonical_manifest.json
git commit -m "seed-canonical: refresh <vertical> from smoke to real corpus"
Compliance posture¶
- FCC repository is public (MIT license) — redistributing copyrighted content (ICD-11, IEC) under smoke substitution keeps us within each source's terms.
- Attribution blocks preserved — every smoke file embeds its own attribution + source URL.
- No derivative works (CC-BY-ND corpora) — the ICD-11 smoke subset preserves code + title verbatim from the public browse UI; we do not modify or extend beyond the published entries.
- Per-seat licenses respected — IEC normative schema is NEVER shipped.
- Owner action items remaining after v1.6.0:
- Acquire WHO OAuth credentials for full ICD-11 MMS refresh
- Evaluate IEC informative-annex license purchase
- Run authenticated OpenFIGI bulk fetch with Bloomberg credentials
Cross-references¶
ATTRIBUTION.md— repo-root attribution indexpublications/_output/seed_canonical_manifest.json— machine-readable manifest with SHA256spublications/scripts/seed_canonical.py— intent / metadata registrypublications/scripts/fetch_canonical_seeds.py— actual downloaderdocs/tutorials/migration/adopting-universal-services.md— consumer adoption guide