-
Notifications
You must be signed in to change notification settings - Fork 47
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 'domain' and 'range' properties for RO terms #790
Comments
OWL domain and range are straightforward to add and are in place for many relations. Do you have list of table of domain and range assertions you'd like to add? I think local domain and range are GO-specific concepts, originating with validation of annotation extensions (and perhaps more recently validation of GOCAMs?). Perhaps these are better maintained locally? |
Yes. Adding domains and ranges is straightforward. The difficulty arises when new classes need to be added to RO in order most accurately specify the domain/range. Do we just use very high-level classes (e.g., cell, biological process) or do we add a more specific class when it is needed (e.g., blood vessel). |
For a very general relation, the domains and ranges have to be very general. And you don't get much more general than part-of. However, domain and range is not the only way to constrain usage of an object property in OWL. You can use universal restrictions. These can't be expressed in EL, but fortunately they can often be rewritten to existentials + disjoints You can see this with existing axioms on part-of: Try making a part-of between e.g. a BP and a CC in GO, it will lead to incoherency, as intended. This is despite no domain or range restrictions on the OP. It would be great if someone could add more documentation on this: https://oborel.github.io/obo-relations/domain-or-range-specific-relation/ |
I think @pgaudet is asking about the 'local range' values we have in the gorel file. We could use schema:rangeIncludes for this. But I think we discussed using this in RO at some point and didn't come to a resolution. We could annotate this in an external file (which I guess is exactly what gorel is), but we could limit gorel to those kinds of statements and continue with deprecating all the relations defined only in that file. |
This is correct (but not for GOCAMs). To explain to people who are not GO people: GO used to have its own layer of axioms on top of RO in an overlay ontology called GOREL that added annotation assertions called "local domain" and "local range". As annotation assertions, they are silent as far as OWL semantics and reasoners are concerned. However, non-OWL tools could make use of these to implement constraints using simple rule-based semantics. GO dropped GOREL and thus these non-OWL tools lost the ability to do this additional level of checking |
I don't think this works unless every ontology maintains their own rangeIncludes, in which case we may as well use the original solution. If we all use the same rangeIncludes then it just grows to encompass everything and becomes useless |
Much of the conversation pertains to GO, and necessarily RO. So, we can close. |
Hello,
GO needs to specify the domain and the range for which a relation can be used; for example for 'part_of', the domain is
BFO:0000001 (entity), and the local range is CL:0000000 GO:0005575 GO:0008150 PO:0009012 PO:0025131 UBERON:0001062 ZFS:0100000 WBls:0000075 WBbt:0004017 WBbt:0005766 NCBITaxon:1 FBbt:10000000 FBdv:00007012 FBbt:00007002
I cannot see how to add this is RO; is this something that can be captured?
@balhoff
@alexsign
Thanks, Pascale
The text was updated successfully, but these errors were encountered: