geneontology / obographs

Basic and Advanced OBO Graphs: specification and reference implementation
64 stars 12 forks source link

Make "mappings" as a first class property to obographs? #102

Open matentzn opened 11 months ago

matentzn commented 11 months ago

Like this?

{
    "id": "http://purl.obolibrary.org/obo/MONDO_0014957",
    "meta": {
        "mappings": [
            {
                "pred": "exact",
                "val": "UMLS:C4310678",
                "xrefs": [
                    "Orphanet:123"
                ],
                "meta": {
                    "basicPropertyValues": [
                        {
                            "pred": "sssom:mapping_justification",
                            "val": "semapv:ManualMappingCuration"
                        },
                        {
                            "pred": "sssom:confidence",
                            "val": 0.9
                        }
                    ]
                }
            },
            {
                "pred": "related",
                "val": "OMIM:617182",
                "meta": {
                    "basicPropertyValues": [
                        {
                            "pred": "sssom:mapping_justification",
                            "val": "semapv:ManualMappingCuration"
                        },
                        {
                            "pred": "sssom:confidence",
                            "val": 0.9
                        }
                    ]
                }
            }
        ],
        "basicPropertyValues": [
            {
                "pred": "http://www.w3.org/2004/02/skos/core#exactMatch",
                "val": "http://linkedlifedata.com/resource/umls/id/C4310678"
            },
            {
                "pred": "http://www.w3.org/2004/02/skos/core#relatedMatch",
                "val": "https://omim.org/entry/617182"
            }
        ]
    },
    "type": "CLASS",
    "lbl": "language delay and attention deficit-hyperactivity disorder/cognitive impairment with or without cardiac arrhythmia"
}
cthoyt commented 11 months ago

Is this necessary, given #44? Couldn't you pack all Of these annotations inside a theoretical meta object for a given xref, and just assume the default predicate is hasdbxref?

matentzn commented 11 months ago

I find this terrible... Like really bad. Chris also suggested the same as you (overloading xref), but it really offends my sense of aesthetics. It is also very hard to communicate, unless we want to somehow start educating the world that "mappings" are types of "xrefs" 😱 . 🙅

matentzn commented 11 months ago

I think the alternatives are either adding syntactic sugar:

"mappings": [
            {
                "pred": "exact",
                "val": "UMLS:C4310678",
                "xrefs": [
                    "Orphanet:123"
                ],
                "meta": {
                    "basicPropertyValues": [
                        {
                            "pred": "sssom:mapping_justification",
                            "val": "semapv:ManualMappingCuration"
                        },
                        {
                            "pred": "sssom:confidence",
                            "val": 0.9
                        }
                    ]
                }
            },
            {
                "pred": "related",
                "val": "OMIM:617182",
                "meta": {
                    "basicPropertyValues": [
                        {
                            "pred": "sssom:mapping_justification",
                            "val": "semapv:ManualMappingCuration"
                        },
                        {
                            "pred": "sssom:confidence",
                            "val": 0.9
                        }
                    ]
                }
            }
        ],

or leaving it at:

"basicPropertyValues": [
            {
                "pred": "http://www.w3.org/2004/02/skos/core#exactMatch",
                "val": "http://linkedlifedata.com/resource/umls/id/C4310678"
                "meta": {
                    "basicPropertyValues": [
                        {
                            "pred": "sssom:mapping_justification",
                            "val": "semapv:ManualMappingCuration"
                        },
                        {
                            "pred": "sssom:confidence",
                            "val": 0.9
                        }
                    ]
                }
            },
            {
                "pred": "http://www.w3.org/2004/02/skos/core#relatedMatch",
                "val": "https://omim.org/entry/617182",
                  "meta": {
                    "basicPropertyValues": [
                        {
                            "pred": "sssom:mapping_justification",
                            "val": "semapv:ManualMappingCuration"
                        },
                        {
                            "pred": "sssom:confidence",
                            "val": 0.9
                        }
                    ]
                }
            }
        ]
cmungall commented 11 months ago

No good solutions here.

For the majority of users, the function of (term-level) xrefs and mappings are interchangeable, this is what xrefs have always been used for (with a handful of known overloading cases, e.g CHEBI class-level xrefs to PMIDs). IMO it's perfectly reasonable to say xrefs are mappings that just haven't committed to a predicate.

OTOH this is a good chance to make a break with the past and move the community to start using semantically committed mappings. But there will be a long period of confusion where some ontologies will have one or the other, and others will include both (and having two ways to get essentially the same information is confusing).

I am tending towards this, and your proposal for a new field in meta called "mappings" is the best

On Thu, Oct 26, 2023 at 9:25 AM Nico Matentzoglu @.***> wrote:

I find this terrible... Like really bad. Chris also suggested the same as you (overloading xref), but it really offends my sense of aesthetics. It is also very hard to communicate, unless we want to somehow start educating the world that "mappings" are types of "xrefs" 😱 . 🙅

— Reply to this email directly, view it on GitHub https://github.com/geneontology/obographs/issues/102#issuecomment-1781449837, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMMOOMOT6OKE7BGYAIVZTYBKFG3AVCNFSM6AAAAAA6Q2SS76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBRGQ2DSOBTG4 . You are receiving this because you are subscribed to this thread.Message ID: @.***>

cthoyt commented 11 months ago

I don’t have a strong opinion either way and will support whatever the Java implementer is willing to trudge through :)

matentzn commented 11 months ago

Thank you both for your comments! :) You know I am in favour, I wonder now how to move this forward.

julesjacobsen commented 10 months ago

Can I get this absolutely clear, please. Given a current BasicPropertyValue (i.e. generic type), when the predicate equals "http://www.w3.org/2004/02/skos/core#relatedMatch" or "http://www.w3.org/2004/02/skos/core#exactMatch", these should instead be represented as a new specialised type MappingPropertyValue, contained in Meta

meta:
  definition: string
  synonyms: SynonymPropertyValue[]
  xrefs: XrefPropertyValue[]
  mappings: MappingPropertyValue[] # NEW!
  basicPropertyValues: BasicPropertyValue[]

where the MappingPropertyValue is essentially a type of XrefPropertyValue and has the following fields:

mapping:
  lbl: string
  pred: string
  val: string
  xrefs: string[] # should this be `sources` ? 
  meta: Meta

Examples below, however this will be ontology dependent as HPO does not use skos:exactMatch so the xrefs remain the same, MONDO does use skos:exactMatch and therefore contains mappings and xrefs.

For the case of skos:relatedMatch, what is that supposed to mean when defined as a 'mapping'? Shouldn't a 'mapping' be a 1:1 relationship i.e. an exact match?

As you mentioned 'xref' is a pretty non-committal term, sometimes it is used as a direct or indirect mapping but other times it is used to describe the source of an assertion (generally when used in the nested fashion). Wouldn't it be useful to define this nested xref as a source instead?

julesjacobsen commented 10 months ago

Example MONDO:

    <!-- http://purl.obolibrary.org/obo/MONDO_0014957 -->

    <owl:Class rdf:about="http://purl.obolibrary.org/obo/MONDO_0014957">
        <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/MONDO_0003847"/>
        <rdfs:subClassOf rdf:nodeID="genid212486"/>
        <obo:IAO_0000233 rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://github.com/monarch-initiative/mondo/issues/4521</obo:IAO_0000233>
        <oboInOwl:hasDbXref>OMIM:617182</oboInOwl:hasDbXref>
        <oboInOwl:hasDbXref>UMLS:C4310678</oboInOwl:hasDbXref>
        <oboInOwl:hasExactSynonym>LADCI</oboInOwl:hasExactSynonym>
        <oboInOwl:hasExactSynonym>language delay and ADHD/cognitive impairment with or without cardiac arrhythmia</oboInOwl:hasExactSynonym>
        <oboInOwl:hasExactSynonym>language delay and attention Deficit-hyperactivity disorder/cognitive impairment with or without Cardiac arrhythmia</oboInOwl:hasExactSynonym>
        <oboInOwl:hasExactSynonym>language delay and attention deficit-hyperactivity disorder/cognitive impairment with or without cardiac arrhythmia; LADCI</oboInOwl:hasExactSynonym>
        <oboInOwl:id>MONDO:0014957</oboInOwl:id>
        <rdfs:label>language delay and attention deficit-hyperactivity disorder/cognitive impairment with or without cardiac arrhythmia</rdfs:label>
        <skos:exactMatch rdf:resource="http://linkedlifedata.com/resource/umls/id/C4310678"/>
        <skos:exactMatch rdf:resource="https://omim.org/entry/617182"/>
    </owl:Class>
    <owl:Restriction rdf:nodeID="genid212486">
        <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/RO_0004003"/>
        <owl:someValuesFrom rdf:resource="http://identifiers.org/hgnc/4401"/>
    </owl:Restriction>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/MONDO_0014957"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget rdf:resource="http://purl.obolibrary.org/obo/MONDO_0003847"/>
        <oboInOwl:source>https://orcid.org/0000-0001-5208-3432</oboInOwl:source>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/MONDO_0014957"/>
        <owl:annotatedProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#subClassOf"/>
        <owl:annotatedTarget rdf:nodeID="genid212486"/>
        <oboInOwl:source>MONDO:mim2gene_medgen</oboInOwl:source>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/MONDO_0014957"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasDbXref"/>
        <owl:annotatedTarget>OMIM:617182</owl:annotatedTarget>
        <oboInOwl:source>MONDO:equivalentTo</oboInOwl:source>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/MONDO_0014957"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasDbXref"/>
        <owl:annotatedTarget>UMLS:C4310678</owl:annotatedTarget>
        <oboInOwl:source>MONDO:equivalentTo</oboInOwl:source>
        <oboInOwl:source>MONDO:ncbi_mim2gene_medline</oboInOwl:source>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/MONDO_0014957"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasExactSynonym"/>
        <owl:annotatedTarget>LADCI</owl:annotatedTarget>
        <oboInOwl:hasDbXref>OMIM:617182</oboInOwl:hasDbXref>
        <oboInOwl:hasSynonymType rdf:resource="http://purl.obolibrary.org/obo/mondo#ABBREVIATION"/>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/MONDO_0014957"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasExactSynonym"/>
        <owl:annotatedTarget>language delay and ADHD/cognitive impairment with or without cardiac arrhythmia</owl:annotatedTarget>
        <oboInOwl:hasDbXref>OMIM:617182</oboInOwl:hasDbXref>
        <oboInOwl:hasDbXref>OMIM:genemap2</oboInOwl:hasDbXref>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/MONDO_0014957"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasExactSynonym"/>
        <owl:annotatedTarget>language delay and attention Deficit-hyperactivity disorder/cognitive impairment with or without Cardiac arrhythmia</owl:annotatedTarget>
        <oboInOwl:hasDbXref>OMIM:617182</oboInOwl:hasDbXref>
    </owl:Axiom>

Currently becomes:

{
      "id" : "http://purl.obolibrary.org/obo/MONDO_0014957",
      "lbl" : "language delay and attention deficit-hyperactivity disorder/cognitive impairment with or without cardiac arrhythmia",
      "type" : "CLASS",
      "meta" : {
        "synonyms" : [ {
          "synonymType" : "http://purl.obolibrary.org/obo/mondo#ABBREVIATION",
          "pred" : "hasExactSynonym",
          "val" : "LADCI",
          "xrefs" : [ "OMIM:617182" ]
        }, {
          "pred" : "hasExactSynonym",
          "val" : "language delay and ADHD/cognitive impairment with or without cardiac arrhythmia",
          "xrefs" : [ "OMIM:617182", "OMIM:genemap2" ]
        }, {
          "pred" : "hasExactSynonym",
          "val" : "language delay and attention Deficit-hyperactivity disorder/cognitive impairment with or without Cardiac arrhythmia",
          "xrefs" : [ "OMIM:617182" ]
        }, {
          "pred" : "hasExactSynonym",
          "val" : "language delay and attention deficit-hyperactivity disorder/cognitive impairment with or without cardiac arrhythmia; LADCI"
        } ],
        "xrefs" : [ {
          "val" : "OMIM:617182"
        }, {
          "val" : "UMLS:C4310678"
        } ],
        "basicPropertyValues" : [ {
          "pred" : "http://purl.obolibrary.org/obo/IAO_0000233",
          "val" : "https://github.com/monarch-initiative/mondo/issues/4521"
        }, {
          "pred" : "http://www.w3.org/2004/02/skos/core#exactMatch",
          "val" : "http://linkedlifedata.com/resource/umls/id/C4310678"
        }, {
          "pred" : "http://www.w3.org/2004/02/skos/core#exactMatch",
          "val" : "https://omim.org/entry/617182"
        } ]
      }
    }

With mappings becomes:

{
      "id" : "http://purl.obolibrary.org/obo/MONDO_0014957",
      "lbl" : "language delay and attention deficit-hyperactivity disorder/cognitive impairment with or without cardiac arrhythmia",
      "type" : "CLASS",
      "meta" : {
        "synonyms" : [ {
          "synonymType" : "http://purl.obolibrary.org/obo/mondo#ABBREVIATION",
          "pred" : "hasExactSynonym",
          "val" : "LADCI",
          "xrefs" : [ "OMIM:617182" ]
        }, {
          "pred" : "hasExactSynonym",
          "val" : "language delay and ADHD/cognitive impairment with or without cardiac arrhythmia",
          "xrefs" : [ "OMIM:617182", "OMIM:genemap2" ]
        }, {
          "pred" : "hasExactSynonym",
          "val" : "language delay and attention Deficit-hyperactivity disorder/cognitive impairment with or without Cardiac arrhythmia",
          "xrefs" : [ "OMIM:617182" ]
        }, {
          "pred" : "hasExactSynonym",
          "val" : "language delay and attention deficit-hyperactivity disorder/cognitive impairment with or without cardiac arrhythmia; LADCI"
        } ],
        "xrefs" : [ {
          "val" : "OMIM:617182"
        }, {
          "val" : "UMLS:C4310678"
        } ],
        "mappings" : [ {
          "pred" : "http://www.w3.org/2004/02/skos/core#exactMatch",
          "val" : "UMLS:C4310678" # URI becomes CURIE
        }, {
          "pred" : "http://www.w3.org/2004/02/skos/core#exactMatch",
          "val" : "OMIM:617182" # URI becomes CURIE
        } ],
        "basicPropertyValues" : [ {
          "pred" : "http://purl.obolibrary.org/obo/IAO_0000233",
          "val" : "https://github.com/monarch-initiative/mondo/issues/4521"
        } ]
      }
    }
julesjacobsen commented 10 months ago

Example HPO

    <!-- http://purl.obolibrary.org/obo/HP_0000006 -->

    <owl:Class rdf:about="http://purl.obolibrary.org/obo/HP_0000006">
        <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/HP_0034345"/>
        <obo:IAO_0000115>A mode of inheritance that is observed for traits related to a gene encoded on one of the autosomes (i.e., the human chromosomes 1-22) in which a trait manifests in heterozygotes. In the context of medical genetics, an autosomal dominant disorder is caused when a single copy of the mutant allele is present. Males and females are affected equally, and can both transmit the disorder with a risk of 50% for each child of inheriting the mutant allele.</obo:IAO_0000115>
        <oboInOwl:hasAlternativeId>HP:0001415</oboInOwl:hasAlternativeId>
        <oboInOwl:hasAlternativeId>HP:0001447</oboInOwl:hasAlternativeId>
        <oboInOwl:hasAlternativeId>HP:0001448</oboInOwl:hasAlternativeId>
        <oboInOwl:hasAlternativeId>HP:0001451</oboInOwl:hasAlternativeId>
        <oboInOwl:hasAlternativeId>HP:0001452</oboInOwl:hasAlternativeId>
        <oboInOwl:hasAlternativeId>HP:0001455</oboInOwl:hasAlternativeId>
        <oboInOwl:hasAlternativeId>HP:0001456</oboInOwl:hasAlternativeId>
        <oboInOwl:hasAlternativeId>HP:0001463</oboInOwl:hasAlternativeId>
        <oboInOwl:hasDbXref>SNOMEDCT_US:263681008</oboInOwl:hasDbXref>
        <oboInOwl:hasDbXref>UMLS:C0443147</oboInOwl:hasDbXref>
        <oboInOwl:hasExactSynonym>Autosomal dominant</oboInOwl:hasExactSynonym>
        <oboInOwl:hasExactSynonym>monoallelic_autosomal</oboInOwl:hasExactSynonym>
        <oboInOwl:hasRelatedSynonym>Autosomal dominant form</oboInOwl:hasRelatedSynonym>
        <oboInOwl:hasRelatedSynonym>Autosomal dominant type</oboInOwl:hasRelatedSynonym>
        <oboInOwl:id>HP:0000006</oboInOwl:id>
        <rdfs:label>Autosomal dominant inheritance</rdfs:label>
<!-- N.B. MISSING <skos:exactMatch /> TAGS, SO MAPPINGS WILL NOT BE CREATED -->
    </owl:Class>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/HP_0000006"/>
        <owl:annotatedProperty rdf:resource="http://purl.obolibrary.org/obo/IAO_0000115"/>
        <owl:annotatedTarget>A mode of inheritance that is observed for traits related to a gene encoded on one of the autosomes (i.e., the human chromosomes 1-22) in which a trait manifests in heterozygotes. In the context of medical genetics, an autosomal dominant disorder is caused when a single copy of the mutant allele is present. Males and females are affected equally, and can both transmit the disorder with a risk of 50% for each child of inheriting the mutant allele.</owl:annotatedTarget>
        <oboInOwl:hasDbXref rdf:resource="https://orcid.org/0000-0002-0736-9199"/>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/HP_0000006"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasExactSynonym"/>
        <owl:annotatedTarget>monoallelic_autosomal</owl:annotatedTarget>
        <oboInOwl:hasSynonymType rdf:resource="http://purl.obolibrary.org/obo/HP_0034334"/>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/HP_0000006"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasRelatedSynonym"/>
        <owl:annotatedTarget>Autosomal dominant form</owl:annotatedTarget>
        <oboInOwl:hasDbXref rdf:resource="https://orcid.org/0000-0002-5316-1399"/>
    </owl:Axiom>
    <owl:Axiom>
        <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/HP_0000006"/>
        <owl:annotatedProperty rdf:resource="http://www.geneontology.org/formats/oboInOwl#hasRelatedSynonym"/>
        <owl:annotatedTarget>Autosomal dominant type</owl:annotatedTarget>
        <oboInOwl:hasDbXref rdf:resource="https://orcid.org/0000-0002-5316-1399"/>
    </owl:Axiom>

currently and with mappings remains the same:

{
      "id" : "http://purl.obolibrary.org/obo/HP_0000006",
      "lbl" : "Autosomal dominant inheritance",
      "type" : "CLASS",
      "meta" : {
        "definition" : {
          "val" : "A mode of inheritance that is observed for traits related to a gene encoded on one of the autosomes (i.e., the human chromosomes 1-22) in which a trait manifests in heterozygotes. In the context of medical genetics, an autosomal dominant disorder is caused when a single copy of the mutant allele is present. Males and females are affected equally, and can both transmit the disorder with a risk of 50% for each child of inheriting the mutant allele.",
          "xrefs" : [ "https://orcid.org/0000-0002-0736-9199" ]
        },
        "synonyms" : [ {
          "pred" : "hasExactSynonym",
          "val" : "Autosomal dominant"
        }, {
          "synonymType" : "http://purl.obolibrary.org/obo/HP_0034334",
          "pred" : "hasExactSynonym",
          "val" : "monoallelic_autosomal"
        }, {
          "pred" : "hasRelatedSynonym",
          "val" : "Autosomal dominant form",
          "xrefs" : [ "https://orcid.org/0000-0002-5316-1399" ]
        }, {
          "pred" : "hasRelatedSynonym",
          "val" : "Autosomal dominant type",
          "xrefs" : [ "https://orcid.org/0000-0002-5316-1399" ]
        } ],
        "xrefs" : [ {
          "val" : "SNOMEDCT_US:263681008"
        }, {
          "val" : "UMLS:C0443147"
        } ],
        "basicPropertyValues" : [ {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001415"
        }, {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001447"
        }, {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001448"
        }, {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001451"
        }, {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001452"
        }, {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001455"
        }, {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001456"
        }, {
          "pred" : "http://www.geneontology.org/formats/oboInOwl#hasAlternativeId",
          "val" : "HP:0001463"
        } ]
      }
    }
matentzn commented 10 months ago

Alright, after some back and forth, @julesjacobsen has now convinced me that extending the existing schema for xrefs to support semantic predicates is less destructive and confusing for the community. So basically, similarly to the way synonyms are modelled:

 "synonyms" : [ {
          "synonymType" : "http://purl.obolibrary.org/obo/mondo#ABBREVIATION",
          "pred" : "hasExactSynonym",
          "val" : "LADCI",
          "xrefs" : [ "OMIM:617182" ]
        }

We would extend the xref system to semantic precision, from what it is right now:

 "xrefs" : [ {
          "val" : "MESH:D010319"
        }

to semantic:

 "xrefs" : [ {
          "val" : "MESH:D010319",
          "pred" : "exactMatch"
        }

My biggest qualm (other than the fact that my mission to obliterate the notion of "xref" from the face of the earth) with this is that this would only neatly work for standard mapping predicates, like exact, related etc. We are introducing other mapping relations, like "crossSpeciesExactMatch" or others would be harder, because we are not introducing another type system like synonym types for these (relying instead of actual predicates).

cthoyt commented 10 months ago

I'm not sure I understand the qualm. Isn't it good that you can use whatever CURIE you want to specify the predicate? And if none is given, it just means a default predicate from OIO?

matentzn commented 10 months ago

Yes that would be good, but that is not what it says right now:

"xrefs" : [ {
          "val" : "MESH:D010319",
          "pred" : "exactMatch"
        }

is not using a CURIE, it is using a built in enum,

"xrefs" : [ {
          "val" : "MESH:D010319",
          "pred" : "skos:exactMatch"
        }

That would be better, but less obographs style.

cmungall commented 10 months ago

How do open-ended predicates work right now for translating between OWL and SSSOM? Does the mapper assume only the fixed predicates?

It's important for our whole stack to be aligned here.

I am not yet fully convinced by the "destructive and confusing for the community" argument. Or rather, I don't think this is unique to obographs. Moving ontologies to specific predicates either as a replacement to or as semi-duplicative xref shadows is going to be confusing to everyone, whether they are consuming obojson, rdf/owl, or obo format. We should open this more generally

On Mon, Nov 20, 2023 at 7:28 AM Nico Matentzoglu @.***> wrote:

Yes that would be good, but that is not what it says right now:

"xrefs" : [ { "val" : "MESH:D010319", "pred" : "exactMatch" }

is not using a CURIE, it is using a built in enum,

"xrefs" : [ { "val" : "MESH:D010319", "pred" : "skos:exactMatch" }

That would be better, but less obographs style.

— Reply to this email directly, view it on GitHub https://github.com/geneontology/obographs/issues/102#issuecomment-1819285806, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMMONN2R7D7DTX67YV7MDYFNZLPAVCNFSM6AAAAAA6Q2SS76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJZGI4DKOBQGY . You are receiving this because you commented.Message ID: @.***>

matentzn commented 10 months ago

How do open-ended predicates work right now for translating between OWL and SSSOM? Does the mapper assume only the fixed predicates?

There are certain predicates that are by default assumed to be valid mapping predicates, but a user can pass in any predicate id to process as a mapping predicate.

Moving ontologies to specific predicates either as a replacement to or as semi-duplicative xref shadows is going to be confusing to everyone, whether they are consuming obojson, rdf/owl, or obo format. We should open this more generally

Can you give an example? I am not sure how this relates to my comment above https://github.com/geneontology/obographs/issues/102#issuecomment-1819269397

I thought this is what you where suggesting?

julesjacobsen commented 10 months ago

What's wrong with saying "pred" : "skos:exactMatch" and have that resolve to https://www.w3.org/2009/08/skos-reference/skos.html#exactMatch via the resources (like what @cthoyt mentions above)? This means libraries can interpret what they know and safely fall back to their original interpretations of an unasserted xref.

My point about adding a predicate to a xref is that it is simply clarifying an existing data structure and a non-breaking, additive change. I agree than defining it as an enum is by definition fixed and therefore might not be the best choice.

matentzn commented 10 months ago

What's wrong with saying "pred" : "skos:exactMatch"

yeah, maybe that is the best way. Its a bit inconsistent with the way we do synonyms, but not worse than my above mappings proposal!