invert
- invert(mapping: MappingTypeVar, *, converter: Converter, justification_policy: InversionJustificationPolicy | None = None) MappingTypeVar[source]
Invert a mapping.
- Parameters:
mapping – A semantic mapping record
converter – A converter function hashing the mapping to fill the “derives_from” field
justification_policy – The policy for how the original evidence is mutated during inversion. Defaults to
InversionDerivationPolicy.retain, where the original justification is retained
- Returns:
An inverted mapping. Mapping inversion clears the
recordfield if present.
>>> from curies import NamableReference, Converter >>> from curies.vocabulary import charlie, manual_mapping_curation, exact_match >>> from sssom_pydantic import SemanticMapping, hash_triple_to_reference >>> converter = Converter.from_prefix_map( ... { ... "CHEBI": "http://purl.obolibrary.org/obo/CHEBI_", ... "mesh": "http://id.nlm.nih.gov/mesh/", ... "skos": "http://www.w3.org/2004/02/skos/core#", ... "semapv": "https://w3id.org/semapv/vocab/", ... } ... ) >>> mapping = SemanticMapping( ... subject=NamableReference(prefix="mesh", identifier="C000089", name="ammeline"), ... predicate=exact_match, ... object=NamableReference(prefix="CHEBI", identifier="28646", name="ammeline"), ... justification=manual_mapping_curation, ... authors=[charlie], ... mapping_date="2026-04-21", ... ) >>> hash_triple_to_reference(mapping, converter) Reference(prefix='mapping', identifier='36a1f9244ea7641a90987c82f33c25c0c13712ee8f48207b2a0825f8a4e4e26a') >>> mapping_inv = invert(mapping, converter=converter) >>> mapping_inv.subject NamableReference(prefix='CHEBI', identifier='28646', name='ammeline') >>> mapping_inv.object NamableReference(prefix='mesh', identifier='C000089', name='ammeline') >>> mapping_inv.derived_from [Reference(prefix='mapping', identifier='36a1f9244ea7641a90987c82f33c25c0c13712ee8f48207b2a0825f8a4e4e26a')]