Cross-ontology mapping at Cytognosis lives as data, not as bespoke code. We use the Simple Standard for Sharing Ontology Mappings (SSSOM) to round-trip between UMLS, MONDO, HP, CL, CHEBI, NCBITaxon, SNOMED CT and the Cytognosis scholarly knowledge graph, and we hand SSSOM tables to downstream consumers (NCATS Translator, CELLxGENE, internal LLMs) without rewriting them.
The full hands-on writeup with worked examples (download SNOMED CT exports, validate, convert to RDF, apply SNOMED → MONDO mappings before CELLxGENE schema validation) lives at:
Infrastructure and Tooling/sssom_tooling_for_cytognosis.md (workspace folder)This document captures the architectural decision and serves as the canonical pointer.
A normalized mapping table that anyone in the ecosystem can validate and reload is preferable to:
SSSOM gives us:
sssom-schema) for mapping records — compatible with the Cytognosis scholarly KG schema by construction.| Component | Role |
| --- | --- |
| sssom-schema | LinkML source of truth. Imported into the Cytognosis schema rather than redefined. |
| sssom (sssom-py) | I/O, validation, MappingSetDataFrame, set algebra (intersect / union / difference), format conversion. |
| oaklib (runoak) | Ontology access. runoak lexmatch, runoak mappings, runoak diff — bridges OLS / BioPortal / UMLS / SNOMED. |
| curies + prefixmaps | CURIE expansion / contraction, driven from bioregistry. |
| koza | LinkML-native ETL. Consumes SSSOM for normalization. Emits Biolink-compliant KGX. |
| linkml | Codegen — Pydantic, JSON Schema, OWL, SHACL, SQL DDL from the unified schema. |
| boomer (optional) | Probabilistic refinement of candidate mappings. |
| biomappings (optional) | Community-curated mappings, useful as a seed. |
Single-cell datasets need both structural validation (does this AnnData have X, var, obsm?) and semantic validation (does obs.disease_ontology_term_id use the MONDO IDs that CELLxGENE expects?). We split that responsibility:
cellxgene-schema validate is the right tool; no custom code competes with it.obs (e.g. SNOMED CT codes from a clinical site) are mapped through SSSOM to the CL / MONDO / NCBITaxon IDs that CELLxGENE requires.The worked SNOMED CT example in sssom_tooling_for_cytognosis.md demonstrates this end-to-end.
EBI's OLS4 publishes SSSOM exports for its hosted ontologies at:
``text`
https://www.ebi.ac.uk/ols4/api/v2/ontologies/{ontology}/exports/sssom
For SNOMED CT specifically, pin the OLS4 release tag in CI rather than fetching latest, because SNOMED's IDs are stable but mapping coverage is not. The TSV exports we keep on hand should live under Infrastructure and Tooling/sssom/ in the workspace folder.
Verification note — verify the OLS4 URL pattern resolves the specific ontology you intend to fetch before automating a pipeline against it. Coverage varies per ontology (some have full SSSOM exports, some do not).
When extending the scholarly KG schema:
directly in the YAML. subclass of the SSSOM Mapping class that links each mapping back to a ResearchObject for provenance — i.e. who produced this mapping, in what release, against which source corpus. as build-time inputs to ingestion.. into CI alongside linkml validate. — the LinkML schema that imports SSSOM. — the corpus the mappings are applied to during enrichment.