-
Notifications
You must be signed in to change notification settings - Fork 233
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
Bug (maybe) in annotation axiom handling #104
Comments
Protege doesn't actually delete annotation assertions that have values that are IRIs that correspond to entity IRIs. (i.e. it's not just with axiom annotations where this behaviour occurs). Part of the issue is that annotations don't actually reference entities - they references plain IRIs. This is in accordance with the OWL 2 spec. Annotations therefore don't affect the signature of an ontology (the set of entities appearing in an ontology) and deletion is based on signature. i.e. Deleting a class C removes C from the signature of an ontology, which means removing any axioms that mention C. It would certainly be possible to "clean up" these annotations that reference IRIs that are equal to entity IRIs (and I think would make sense). There is in fact an inconsistency here in that if an annotation assertion's subject is an IRI that is an entity IRI then deleting the corresponding entity will cause the annotation assertion to be removed. |
Matthew, Thanks for the explanation. There's another inconsistency, though: Protege displays the annotation's value using the icon for a class, and continues to do so after I delete the class. If the value is just an IRI, Protege has no reason to assume the IRI is that of a class and should display the IRI's textual representation. (Unless C is punned, but that kind of decision I defer to you....) |
I did not mean to close the issue! Clicked on the wrong button. |
This behavior exists in 4.3 and 5.0. Try the following:
The annotation isn't deleted. The assertion "B rdfs:subClassOf A" has an annotation that references nonexistent class C.
Protege deletes such assertions elsewhere, so I assume this is a bug and not a feature.
The text was updated successfully, but these errors were encountered: