Idea: non-logical restrictions for variable fillers
Closed this issue · 4 comments
This just came up in a Monarch all hands discussion; not sure how useful or required it may be. But someone may want to specify a 'slim' or some other annotation as a way to restrict available terms.
I think we might be talking about different things, but please correct me if not. I mean that if someone has these variables in their pattern:
vars:
membrane: "'membrane'"
cargo: "'chemical entity' or 'macromolecular complex' or 'transcript'"
start: "'cellular_component'"
end: "'cellular_component'"
Instead of saying that start
needs to be a logical subclass of cellular_component
, they may want to say that all fillers for start
need to be in some slim (i.e. all allowable classes have a particular in_subset
annotation value).
OK. Got it now. Can't think of a clean way to do this within the vars dict given that the range is specified as a Manchester Syntax class expression. Also wouldn't want to clutter the core spec with something so specific. I guess we could add a new variable dictionary in the OBO extension - vars_by_subset ?
I'm not keen on this use-case though. The design pattern approach is meant be logic-based. Subsets can be added to anything, so it would be easy to end up with nonsensical outputs.
I think you're right about possible problems with non-logical groupings. I'm going to close this.