Inherit annotations from a child path
This may seem contradicting, but the use case is some like follows:
- Let's say we have the usual chain of biomaterial items.
BioSource -> Sample -> Extract -> ... -> RawBioAssay.
- From the extract (E1) we make a child extract (E2) that we use for, for example, quality measurement. This is stored as an annotation on E2.
- We do now want to use this annotation as an experimental factor on the raw bioassay, but it is not possible since E2 is not a parent item.
Ok, in this case we could have stored the annotation on E1 instead of on E2, but lets say that we store what is remaining of E1 in a freezer and a year later we do another experiment with it. We need to redo the quality measurement since it may have changed during the storage time. So we create E3 as a child to E1 and annotate E3 with the new quality measurement. This time we can't store the annotation on E1 since it would conflict with the first measurement.
My current idea is that this should be be able to work if we had a flag on each item telling if annotations should be inherited up or down the path. Things to consider:
- Is one flag that flips the direction enough or do we need flags that turn on/off each direction independently?
- Should we have the flag(s) on the annotation set or on the items? If the flag(s) are on the annotation set the feature will be available on all annotatable items. I am not sure this makes sense but we could disable this feature on certain items programmatically since database-wise it makes sense to keep this information in a single place.