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

Add design pattern docs for has-part to CL #2963

Open
cmungall opened this issue Jul 7, 2023 · 3 comments
Open

Add design pattern docs for has-part to CL #2963

cmungall opened this issue Jul 7, 2023 · 3 comments

Comments

@cmungall
Copy link
Member

cmungall commented Jul 7, 2023

We should have a DP to document has-part to CL. This would primarily be a documentative DP as it would not have an equivalence axiom.

We would document anti-patterns. The primary antipattern is making a has-part between a broad structure and a specific cell type. These are likely to lead to taxonomic incoherencies. E.g. "digestive tract subClassOf has-part some goblet cell" which would be false as DT encompasses almost all metazoa.

There are two sub-patterns:

  1. trivially true reciprocals (e.g. smooth muscle tissue of bronchiole has-part bronchiolar smooth muscle cell)
  2. evidence-backed knowledge (e.g. lung alveoli have type 1 and type 2 pneumocytes) (ideally backed by a reference and even evidence)

You can see examples of both here:

I don't know if we want to combine the sub-patterns in one yaml or have two (if we move to linkml for DPs then we would group them).

There are some nuanced OWL/logic issues when making these kinds of assertions. I think the first is notable but likely not a major issue.

  1. when the subject is a "portion" term like epithelium, there is a danger of making incorrect assertions. E.g if Foo-epithelium has Foo1 and Foo2 cells, it may be possible to slice out our find a natural (possible small) stretch of Foo epithelium that lacks either Foo1 or Foo2 cells. But I don't think this is a major concern. We just say that to be true Foo epithelium you need both Foo1 and Foo2 cells, our excised slices above are just connected epithelial cells derived from Foo.
  2. coreference issues
  3. lack of entailments using EL. Let's say I add an axiom "brain has-part some neuron" to uberon. Then later on a CL editor adds a trivial class "brain neuron". My original uberon assertion is correct but confusingly incomplete. We would like to update it to "brain has-part some brain neuron" but we don't (I think??) get this entailment with Elk?

The other thing we should bear in mind when making these is the principle of "reasonable completeness". See open world considered harmful. It could be confusing for users if they are led to believe they can "slice open" e.g. an alveolus and see all the cell types necessarily present, but when slicing open other structures they are curiously empty (by slice open here I mean a query <structure> has-part some ?x which can be done in ubergraph or with OAK). For these kinds of queries to be complete we would likely need to combine taxonomic variability GCIs with the has-part pattern

@cmungall
Copy link
Member Author

cmungall commented Jul 7, 2023

Another comment on the trivially true reciprocals - these are arguably shadow hierarchies and come with all the usual ragged lattice issues. I'm not sure I see a way of avoiding precoordinating in either hierarchy through.

However, we could do GCI inference in existing patterns - e.g. a simple-tissue-by-location DP would have a GCI to infer has-part to the most specific cell type

@aleixpuigb
Copy link
Collaborator

Following the discussion from the Uberon editors call on the 17th of July, I will create a DOSDP X_has_part_cell_type and document cases where we have used it previously.

Copy link

This issue has not seen any activity in the past 6 months; it will be closed automatically one year from now if no action is taken.

@github-actions github-actions bot added the Stale label May 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants