FCC Ontology Integration¶
Adapting an external standard ontology into FCC is the most common knowledge-engineering task. This guide walks through the end-to-end pattern using the 10 constellation projects as worked examples, each anchoring a specific external ontology:
| Constellation | Vertical | External Ontology | Reference |
|---|---|---|---|
| Ophiuchus | Healthcare | FHIR R5 + SNOMED CT | HL7 FHIR |
| Serpens | Healthcare research | FHIR R5 + HL7 CDA | HL7 |
| Libra | Legal | LKIF + LegalRuleML | OASIS |
| Crater | Insurance | ACORD + ISO 12812 | ACORD |
| Scutum | Government | NIEM + DCAT-US | GSA / DOJ |
| Norma | Energy | CIM (IEC 61970 / 61968) | IEC |
| Pyxis | Finance | FIBO + ISO 20022 | EDM Council / ISO |
| Vela | Retail | GS1 + schema.org | GS1 / W3C |
| Columba | Transport | CityGML + DATEX II | OGC / EU |
| Caelum | Climate / Earth | ENVO + DCAT-US + OGC | OBO / GSA |
Each pattern below is reusable across constellations and downstream verticals.
The Integration Pipeline¶
flowchart LR
A[External<br/>ontology] --> B[Study<br/>source]
B --> C[Identify<br/>FCC targets]
C --> D[Author<br/>mapping YAML]
D --> E[Author<br/>plugin shim]
E --> F[Validate]
F --> G[Federate]
G --> H[Ground<br/>RAG]
classDef step fill:#e3f2fd,stroke:#0d47a1;
class A,B,C,D,E,F,G,H step;
Step 1 — Study the Source Ontology¶
Every serious integration starts with a literature review:
- Read the specification document (FHIR, FIBO, etc.)
- Identify the core concepts (typically 50-150 for a vertical)
- Identify the relationships (is-a, part-of, regulated-by, etc.)
- Identify the licence and attribution requirements
- Identify the versioning convention
Budget 3-5 days for a mid-sized ontology. An ontology you know well may take only a day; one new to you may take two weeks.
Step 2 — Identify FCC Targets¶
Not every external concept maps into FCC. The target concepts are those that:
- Appear in a persona's R.I.S.C.E.A.R. spec (e.g.
Patientfor a healthcare persona) - Are part of a workflow deliverable (e.g.
ClaimFormfor Crater) - Ground a RAG grounding vocabulary (e.g. any
Persontype) - Participate in the knowledge graph (e.g. nodes in the compliance evidence graph)
A good rule of thumb: if a concept does not touch an FCC persona, workflow, or knowledge-graph node, it probably does not belong in the vocabulary mapping. Keep the mapping focused.
Step 3 — Author the Mapping YAML¶
Author src/fcc/data/objectmodel/<yourproject>_vocabulary_mappings.yaml. The schema is in Vocabulary Provider Pattern. Full working example from the Pyxis project (anchoring FIBO):
vocabulary:
name: pyxis
version: 1.0.0
namespace: https://constellation.fcc/pyxis/ontology#
source: "FIBO Production 2024 Q4 + ISO 20022 Message Catalogue"
license: CC-BY-4.0
authority_tier: 2
concepts:
- id: pyxis:Customer
label: Customer
definition: "A party who has a financial relationship with the institution."
synonyms: [Client, AccountHolder]
external_ids:
fibo: "fibo-fnd-pty-rl:Customer"
iso20022: "Party39Choice"
broader: pyxis:Party
examples:
- "An individual with a checking account"
- "A corporate treasury desk"
- id: pyxis:Account
label: Account
definition: "A record of financial obligations between parties."
external_ids:
fibo: "fibo-fbc-fi-fi:FinancialInstrument"
iso20022: "CashAccount40"
broader: pyxis:FinancialInstrument
- id: pyxis:Transaction
label: Transaction
definition: "A transfer of value between parties."
external_ids:
fibo: "fibo-fbc-pas-fpas:Transaction"
iso20022: "pacs.008.001.10"
narrower: [pyxis:Payment, pyxis:Trade]
Step 4 — Author the Plugin Shim¶
See Vocabulary Provider Pattern for the full template. The plugin's only job is to load the YAML at activation time and expose the list of mappings.
Step 5 — Validate¶
Fix findings before proceeding. Common early findings:
- Missing
external_idsfor concepts that clearly have equivalents in other standards - Orphan
broader/narrowerlinks (concept referenced but not defined) - Licence field not using an SPDX identifier
- Namespace IRI not reachable (HEAD fails)
Step 6 — Federate¶
Once validation passes, register the namespace in federation_config.yaml (or let the plugin entry-point auto-register it). Run:
This walks your external_ids and confirms at least one peer namespace has a matching concept. Complete isolation is allowed but not useful — it means the RAG pipeline cannot cross-reference.
Step 7 — Ground the RAG Pipeline¶
The RAG pipeline at src/fcc/rag/ accepts an optional grounding vocabulary. When provided, retrieved chunks are filtered for relevance to concepts in the vocabulary and re-ranked for concept density. See RAG Pipeline Guide.
Adaptation Patterns by Ontology¶
FHIR (Ophiuchus, Serpens)¶
FHIR ships JSON Schema and StructureDefinitions. The adaptation pattern:
- Pick the resource types you need (Patient, Observation, Condition, etc.)
- Flatten StructureDefinition to a concept list
- Preserve the
http://hl7.org/fhir/...IRI asexternal_ids.fhir - Keep cardinality hints in the
examplesfield (FCC does not model cardinality directly)
Ophiuchus ships ~120 FHIR-aligned concepts.
FIBO (Pyxis)¶
FIBO is RDF-native, which makes it easy. The adaptation pattern:
- Use
rdflibto load the FIBO module you need - Emit one concept per
owl:Class - Preserve the FIBO IRI as
external_ids.fibo - Translate
rdfs:subClassOfintobroader
Pyxis ships ~80 FIBO-aligned concepts.
ACORD (Crater)¶
ACORD XML schemas are verbose. The adaptation pattern:
- Focus on the AL3 / XML Life/P&C schemas your deployment touches
- Emit one concept per top-level XML type
- Capture XPath snippets in
examplesfor implementers - Preserve the ACORD version in the
sourcefield
Crater ships ~60 ACORD-aligned concepts.
NIEM (Scutum)¶
NIEM is federal-U.S. oriented. The adaptation pattern:
- Identify the NIEM release (currently 5.x)
- Pick the core + domain namespaces you need (Core +
hs/j/ etc.) - Preserve
structures:idasexternal_ids.niem_id - Bridge to DCAT-US for dataset-level metadata
Scutum ships ~70 NIEM-aligned concepts.
CIM (Norma)¶
CIM is power-utility-oriented. The adaptation pattern:
- Choose the CIM profile your deployment implements (IEC 61970 for transmission, 61968 for distribution)
- Emit one concept per top-level UML class
- Preserve the CIM URI as
external_ids.cim - Handle the enumeration-heavy style with care — enumerations become their own concepts
Norma ships ~55 CIM-aligned concepts.
DCAT-US (Caelum, Scutum)¶
DCAT-US is dataset-metadata oriented. The adaptation pattern:
- Map Dataset, Distribution, DataService as top-level concepts
- Preserve
dcat:IRIs asexternal_ids.dcat - Bridge to ISO 19115 metadata for geospatial
- Use the ordinary FCC
ContactandOrganizationconcepts for responsibility statements
Licensing Considerations¶
External ontologies have licences. Most are permissive for reuse (CC-BY, MIT, Apache), but some require attribution or forbid derivation:
| Ontology | Licence | Restriction |
|---|---|---|
| FHIR | HL7 open | Attribution required |
| FIBO | CC-BY 4.0 | Attribution required |
| SNOMED CT | Affiliate licence | Country-specific terms |
| ACORD | Member licence | Membership required |
| NIEM | Public domain (U.S. Govt) | None |
| CIM | Restricted / member | IEC membership may be required |
| DCAT-US | Public domain (U.S. Govt) | None |
| ENVO | CC-0 | None |
Record the licence in the YAML vocabulary.license field and in the evidence graph. For restricted ontologies, ship only the concept IDs — do not copy definitions verbatim.
Versioning Across Ontology Upgrades¶
When the upstream ontology publishes a new release:
- Pin the old version's file as
<project>_vocabulary_mappings_v<N>.yaml - Author the new mapping as the primary file
- Bump
vocabulary.version(major if concept IDs changed, minor otherwise) - File an ADR (OPEN-SCI-008) describing the migration
- Update the
ChangeTrackerentry - Re-run the federation benchmark
Keep the old file in the tree for at least one minor release cycle so downstream consumers can migrate on their schedule.
Related Reading¶
- Vocabulary Provider Pattern — authoring the plugin
- Namespace Registration — registering the project
- RAG Pipeline Guide — using the vocabulary to ground retrieval
- Knowledge graph serializers — RDF/OWL/SKOS export
- For Architects: Federation — system view
- For Data Architects — upstream data modelling