Skip to content

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/&lt;vertical&gt;/"]
    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:

  1. 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.
  2. 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.
  3. 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.
  4. IEC 61970 CIM (energy) — the real schema requires per-seat IEC licensing. See the IEC section below for the gate policy.
  5. 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 title text 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 _attribution block 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.xml shipped in v1.6.0 is a synthetic 5-class RDF/XML illustration. It is NOT a real IEC 61970 fragment. See energy/cim_readme_license.txt for 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-canonical with FCC_ACCEPT_EXTERNAL_LICENSES=1
  • Update the manifest SHA256 and clear the substituted flag
  • 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