linkml icon indicating copy to clipboard operation
linkml copied to clipboard

Making equivalentClass assertions in linkml

Open deepakunni3 opened this issue 3 years ago • 7 comments

Not sure if this is already possible with the current metamodel but it would be very helpful to be able to mark a class in a schema be equivalent to another class, where the another class is in the same schema or an external schema or an external ontology.

For example, using linkml I would like to say:


my gene:
  description: "My gene in my schema"
  equivalent_to: "SO:0000704"

and get the following via gen-owl:

ex:MyGene owl:equivalentClass SO:0000704 .

@turbomam suggested class_uri but that seems to translate to ex:MyGene skos:exactMatch SO:0000704.

deepakunni3 avatar Sep 06 '22 13:09 deepakunni3

Also, @matentzn raised an observation that shouldn't class_uri be used to replace the class in the generated owl instead of saying ex:MyGene skos:exactMatch SO:0000704?

I seem to recall that is how it was in 2020/2021. Was the change intentional or a bug in the owl generator?

deepakunni3 avatar Sep 06 '22 13:09 deepakunni3

See also #922 -- could be adapted to these purposes.

ialarmedalien avatar Sep 06 '22 15:09 ialarmedalien

Yes as @ialarmedalien says, the generic mapping proposal could encompass a wide variety of mapping and logical relationships.

@deepakunni3 - this has always been the behavior but this is a sensible enhancement request, I made a separate issue: #933

cmungall avatar Sep 06 '22 17:09 cmungall

Thanks @ialarmedalien and @cmungall for the pointers! 👍

Thank you for clarifying about the behavior for class_uri.

deepakunni3 avatar Sep 07 '22 15:09 deepakunni3

So the only way to define a class as owl:equivalentClass to another class would be to use the (planned) structured mappings?

deepakunni3 avatar Sep 07 '22 15:09 deepakunni3

Two things that could be done v quickly

1 option on owlgen to make EC axioms for class uri to def uri 2 same but for custom annotation

On Wed, Sep 7, 2022 at 8:13 AM Deepak @.***> wrote:

So the only way to define a class as owl:equivalentClass to another class would be to use the (planned) structured mappings?

— Reply to this email directly, view it on GitHub https://github.com/linkml/linkml/issues/932#issuecomment-1239523218, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMMOJLUJX3B7OLCJY2YNTV5CWI7ANCNFSM6AAAAAAQF2ERRU . You are receiving this because you were mentioned.Message ID: @.***>

cmungall avatar Sep 07 '22 18:09 cmungall

Makes sense! I think option 1 is easy to implement. And I am looking forward to seeing the structured mapping implementation :)

deepakunni3 avatar Sep 13 '22 06:09 deepakunni3

Fixed by #1484

Additional tests added in #1843

cmungall avatar Jan 26 '24 03:01 cmungall