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

rethink is_a dh_interface requirement for including class in menu system? #338

Open
turbomam opened this issue Jul 19, 2022 · 4 comments
Open

Comments

@turbomam
Copy link
Contributor

I think that LinkML schema classes aren't included in the template menu unless they is_a: dh_interface

is_a is single-valued, so reserving it for this purpose eliminates its usefulness for making real hierarchical statements about classes. We could switch to

mixins:

  • dh_interface

but I think @cmungall may have something else in mind

cc @pkalita-lbl

@ddooley
Copy link
Collaborator

ddooley commented Jul 19, 2022

Ah, I see, is_a being single valued could be problematic visa vis inheritance etc.

d.

@ddooley
Copy link
Collaborator

ddooley commented Dec 12, 2023

LinkML has a "tree_root" marker that can be set explicitly (or is otherwise inferred within various LinkML interrogation methods as a class that doesn't show up in range of another slot). Is "tree_root" a better candidate rather than "dh_interface"?

@pkalita-lbl
Copy link
Collaborator

I think there's a decent argument to be made for using tree_root. Lots of other LinkML tools that need to look at a particular class within a schema will use tree_root as part of the process of identifying which class to look at. One word of caution though, I don't think it's strictly enforced in any way but I think most tools assume there is only one class in a schema with tree_root: true. See for example this utility method in the LinkML codebase: https://github.com/linkml/linkml/blob/2407a2f2c629092c15da6e0295600d895d34a465/linkml/utils/datautils.py#L69-L80

If sticking with the one-tree-root-per-schema convention works for you then I would encourage using that. If you need to mark multiple classes per schema as DH interfaces, then you might think about coming up with a convention that uses the annotations slot on class definitions.

@ddooley
Copy link
Collaborator

ddooley commented Feb 13, 2024

What we are seeing with the new DataHarmonizer 1-many data schema is that we need a "Container" class in a LinkML specification that lists all the Classes to show as tables involved, and their relationships as defined by primary keys. So we won't be needing dh_interface any more.

image

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

3 participants