Skip to content
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

Closed
swartik opened this issue Dec 9, 2014 · 3 comments
Closed

Bug (maybe) in annotation axiom handling #104

swartik opened this issue Dec 9, 2014 · 3 comments

Comments

@swartik
Copy link

swartik commented Dec 9, 2014

This behavior exists in 4.3 and 5.0. Try the following:

  1. Create class A.
  2. Create class B, subclass of A.
  3. Create class C, sibling of A.
  4. Annotate B's SubClassOf assertion: Add rdfs:seeAlso C.
  5. Delete C.
    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.

@matthewhorridge
Copy link
Contributor

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.

@swartik
Copy link
Author

swartik commented Dec 9, 2014

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....)

@swartik swartik closed this as completed Dec 9, 2014
@swartik
Copy link
Author

swartik commented Dec 9, 2014

I did not mean to close the issue! Clicked on the wrong button.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants