VERDANT integration (Project 11)¶
VERDANT builds AI-generated SKOS mappings (exactMatch, closeMatch, relatedMatch) from vocabulary terms to ontologies and knowledge bases, with an expert pre-check loop and a federated SPARQL endpoint.
This page sketches how data could flow between the two projects. Nothing here has been agreed with the VERDANT team.
Data flow¶
flowchart LR
A[MiCoKnowGraph<br/>unmapped labels TSV] --> B[VERDANT<br/>embeddings + FAISS]
B --> C[SKOS + confidence<br/>or SSSOM]
C -->|scripts/skos_to_sssom.py| D[mappings/verdant/candidates/]
D -->|PR review| E[mappings/curated/]
D -->|PR review| F[mappings/verdant/rejected/<br/>predicate_modifier: Not]
F -->|feedback / training data| B
E -->|make mappings| G[(KG: skos:exactMatch triples)]
1. MiCoKnowGraph → VERDANT¶
Proposed format for the terms we would send (no script produces this yet):
| column | example |
|---|---|
term_id |
micokg:term/habitat/sewage |
label |
sewage |
context_slot |
env_medium |
source_kg |
infores:gutmdisorder |
suggested_target_ontology |
ENVO |
Sources: - free-text habitat, sample-type, host and disease labels from existing microbiome KGs; - labels found when real data is loaded.
The three directories under mappings/ are curated/ (reviewed, loaded into the KG), verdant/candidates/ (unreviewed VERDANT output) and verdant/rejected/.
2. VERDANT → MiCoKnowGraph¶
Preferred: SSSOM TSV. Also accepted: Turtle with plain SKOS triples, or reified owl:Axiom mappings with sssom:confidence. See tests/fixtures/verdant-sample.ttl.
python scripts/skos_to_sssom.py verdant-output.ttl \
-o mappings/verdant/candidates/habitat.sssom.tsv \
--mapping-set-id https://w3id.org/micokg/mappings/verdant/habitat \
--tool-version 0.3.0
Every candidate row gets:
- mapping_justification: semapv:SemanticSimilarityThresholdMatching
- mapping_tool: VERDANT
- the tool version and a confidence score
- no reviewer_id
3. Review¶
Reviewers go through candidates in a pull request:
| Decision | Action |
|---|---|
| Accept | Move the row to mappings/curated/<topic>.sssom.tsv, put your ORCID in reviewer_id, keep the original confidence |
| Accept with a different predicate | As accept, change predicate_id (e.g. exact → close), and explain in comment |
| Reject | Move the row to mappings/verdant/rejected/, add a predicate_modifier column set to Not, and give the reason in comment |
Rejected rows are published so VERDANT can use them as negative training examples.
4. How mappings are used in the KG¶
make mappingsvalidates SSSOM files and writes plainskos:exactMatch/closeMatchtriples. The CLI's own output is reifiedowl:Axioms, which are hard to query.- Queries expand identifiers with
?disease (skos:exactMatch|^skos:exactMatch)?/rdfs:subClassOf* ?queryDisease. Seequeries/uc3-host-microbiome-cancer/cq01-*.rq. - Only curated mappings are loaded into the KG used by tests. Candidates are not.
Open points to agree with VERDANT¶
- The identifier scheme for free-text labels, i.e. who mints
micokg:term/...IDs. - Target ontologies and versions: ENVO, UBERON, NCBITaxon, MONDO, ChEBI, FoodOn?
- Confidence calibration: is 0.8 comparable across target ontologies?
- Endpoint URL, and whether MiCoKnowGraph example queries should be loaded there (SIB
sh:SPARQLExecutablefiles frommake spex). - Update cadence and versioning of mapping sets.