sssom icon indicating copy to clipboard operation
sssom copied to clipboard

Add FAQ: Why do we allow Object Prroperties and OWL axioms as mapping predicates?

Open matentzn opened this issue 1 year ago • 0 comments

Need to work on an answer, here some first thoughts from an email I sent earlier:

One important thing that you need to keep in mind is that SSSOM does not at all care about semantics of the mapped sources. Its main use case is to map between semantically non-compatible spaces, i.e. OWL ontologies on the one side and database entities or taxonomy codes on the other. This is why we promote the use of skos mapping relations which only promote just enough semantics to be able to do things like inverse mappings and mapping chaining (https://mapping-commons.github.io/sssom/chaining_rules/). So with everything that follows from here, it is important to remember that we are not concerned with a particular interpretation/semantics in our domain(s) of interest.

Your confusion regarding the object property / subclass situation above is 100% understandable. Many people are confused. The fact that we explicitly allow OWL Object properties to be used for mapping (or rdfs:subClassOf, and owl:equivalentClasses) is very confusing indeed, because it creates the impression that you can somehow interpret the subject source (say Mondo) and the object source (say ICD10) as a joint domain (under OWL Semantics) after you apply the mapping. This is nearly never true. Resolving this confusion is not part of the problem SSSOM will solve. 

So, why even allowing (Object Properties) OPs, and OWL axioms? A true mapping is a correspondence, where the subject and the object are analogous objects, like wikidata:AppleTree ---[exactMatch]-->dbpedia:AppleTree. 

There is no need to assume that merging the two appletree concepts will result in a joint theory that is consistent.

In many use cases, however, the subject and objects are not exactly corresponding to one another. In NCATs translator, for example, there may be a lot of conflation happening (protein/gene, disease/phenotype, chemical entity/exposure to chemical entity, etc), and you will want to capture such acts of conflation in a mapping.

HPO:Alzheimer ---[skos:exactMatch]--> MONDO:Alzheimer is a great example.

Gene:123 ---[skos:exactMatch]--> Protein:ABC is another.

Ontologically, the things on the left are very different from the ones on the right. So you will want to be careful how to represent the mapping. skos:exactMatch may trick the user to think that these terms can, indeed, be used interchangeably - but this is not true; its only true if "conflation" is your specific use case. So here, using a relational property (object property) is often more appropriate:

HPO:Alzheimer ---[RO:isDefiningPhenotypicFeatureOf]--> MONDO:Alzheimer

Gene:123 ---[RO:hasGeneProduct]--> Protein:ABC

Here now we get into the realms where expectations for OWL/FOL people will be that this translates to FOL statement of the kind:

A ⊆ ∃R.C

This is not mandated by SSSOM, however. Depending on your use case, this statement could simply translate into an RDF triple (Gene:123 ---[RO:hasGeneProduct]--> Protein:ABC). I think the SSSOM toolkits supports both exports into RDF and OWL. 

rdfs:subClassOf vs Object Property is just a red herring coming from the confusion of assuming OWL - its just another relationship between in the end (it does not matter that they look different in First Order Logic). Practically speaking its best to assume RDF-type semantics in a mapping scenario, but even that is not mandated.

matentzn avatar Mar 11 '23 09:03 matentzn