Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[New metadata element]: mapping_chain_intermediate #231

Open
matentzn opened this issue Sep 28, 2022 · 4 comments
Open

[New metadata element]: mapping_chain_intermediate #231

matentzn opened this issue Sep 28, 2022 · 4 comments
Assignees

Comments

@matentzn
Copy link
Collaborator

matentzn commented Sep 28, 2022

Element id:

mapping_chain_intermediate

Value data type (e.g. URI, URL, text, xsd:boolean):

CURIE (entity)

Example

subject_id predicate_id object_id mapping_justification mapping_chain_intermediate comment
MONDO:123 skos:exactMatch OMIM:111 semapv:MappingChaining Orphanet:123  
MONDO:222 skos:exactMatch OMIM:321 semapv:MappingChaining Orphanet:321|SCTID:123 mapping chain can hold multiple values to mean: hoped through multiple intermediates.

Description

Some ontologies such as GO and Mondo curate mappings based on mapping chaining. For example, from:

MONDO:123 --[skos:exactMatch]-->Orphanet:123 and 

Orphanet:123 --[skos:exactMatch]-->OMIM:111

They deduce:

MONDO:123 --[skos:exactMatch]-->OMIM:111

The corresponding justification for this mapping in SSSOM is semapv:MappingChaining. Capturing such chains is very important. In Mondo and GO, mapping_chain_intermediate (in the above example, that would be Orphanet:123) are curated, using the oboInOwl:source property. This issue proposes to adopt this convention as a convenient and easily readable way to capture chain metdata.

Additional thoughts

I have been convinced through various discussions that this property is convenient, easy to understand and informative. However, for the sake of completeness I want to reveal that my preferred way of modelling this would have been to explicitly model mapping provenance by documenting the full path MONDO:123 --[skos:exactMatch]-->Orphanet:123--[skos:exactMatch]-->OMIM:111 in some way. Documenting the path as a string is a bit verbose (MONDO:123-skos:exactMatch->Orphanet:123-skos:exactMatch->OMIM:111 or whatever) and the more elegant way, referring to a mapping directly by identifier, is not possible because we decided to no have mapping_id in SSSOM so far (a globally unique identifier scheme for mappings would provide a huge burden to global integration and dependency on infrastructure which would make sssom much more heavyweight).

@matentzn matentzn self-assigned this Sep 28, 2022
@cthoyt
Copy link
Member

cthoyt commented Sep 28, 2022

I don't think it's clear what kind of thing would go in this field from what's written currently

@matentzn
Copy link
Collaborator Author

OOps, yes. Updated with an example.

@cthoyt
Copy link
Member

cthoyt commented Sep 28, 2022

What if the predicates are different through the hops?

@matentzn
Copy link
Collaborator Author

Yes, this is exactly my argument againt this proposal. The predicates are collapsed. What this is saying is this:

"We traced a mapping chain through A,B,C and determined that this is sufficient to justify the current mapping".

Some information is lost, but it is maybe justifiable for the tersity gained. intermediates are very valuable evidence regardless of whether the mapping predicate was respected. Having the predicated would, however, make it even more explicit - at the cost of simplicity and readability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants