-
Notifications
You must be signed in to change notification settings - Fork 53
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
v1.5 Stripping excess annotation properties from imports is removing annotated RO role chains #1024
Comments
@matentzn I wonder if it could be a ROBOT bug. Considering the following minimal example ontology:
Asking ROBOT to remove the
This is what was happening in FBbt’s RO import, where the following axiom:
was entirely removed because of the removal of the RO:0002582 annotation, where I would have expected an unannotated version of the axiom to be preserved. |
This is a ROBOT bug I think, but the correct behaviour is unfortunately a bit different. We have this parameter --signature |
OK, I’ll open a ticket on ROBOT. In the meantime, I think the ODK should either allow individual ontologies to fallback to the previous behaviour (not stripping annotations from imports at all), or at the very least preserve more annotations than just Discarding annotations like
It seems clear to me that the annotation is part of the design pattern, the ODK should not mess with it. In fact, arguably all annotations below logical macro assertion (RO:0002416) should be preserved by default, because they may be formally “annotations“ but they are intended to have a logical meaning. Aside:
If that is the role of the |
I dont know.. I personally do not agree with the fact that these annotations are more than just metadata. I know of no tool and no pipeline that will take these annotations into account. From where I stand, these annotations are interesting for tool developers, but have no meaningful consequence for most users. Unless there is a tangible difference between the presence / absence of these annotations for the average ODK user, I would err on the side of exclusion. |
I think removing annotation axioms from imports should probably have been an 'opt in' configuration, rather than users now having to specify every annotation they want to keep. It does seem a bit presumptuous to just decide that nobody wants this information and to just start removing it all by default. That said, I do quite like the tidiness of just having label and definition, we certainly do not do anything special with the 'logical macro assertion' annotations (in FlyBase or VFB) and I would not have complained if there had been no changes to the logical axioms. |
This is a good point of course. My reasoning behind this was that (1) I kept having to manually remove unnecessary annotations because of confusion and file size limitations and (2) you could sort of say that this is basically doing what robot extract should be doing in the first place: given a set of terms, extract all the information about it (Module = extract(SEED, Ontology)). In my view, this SEED set should include not only the classes, but also the relationships (object and annotation) - this just happens not to be the case (because of the way |
for example - from RO:
Default annotation properties to keep seem to be just label and definition (I can see why this might be desirable), but this causes the annotated role chain to be stripped out. This causes some loss of inference in FBbt.
I can fix this by amending my -odk.yaml file to have the following under import_group, but I think logical axioms should probably not be stripped out of imports at all.
The text was updated successfully, but these errors were encountered: