Skip to content

Unexplained change of Annotation Property labels also in imports #1287

@allenbaron

Description

@allenbaron

Sometimes Protege will change the label used in the main file being edited. I'm guessing that it's replacing this with a label for the same URI from an import.

Probably easiest to show this with an example from the Mammalian Phenotype Ontology (MP).

In mgijax/mammalian-phenotype-ontology@b705fa6 a number of annotation property labels were replaced:

  • has cross-reference --> database_cross_reference
  • has exact synonym --> has_exact_synonym
  • has narrow synonym --> has_narrow_synonym

For those that were just space to underscore conversions it wasn't a big deal, but for the 'has cross-reference' to 'database_cross_reference' it's made it challenging for MP curators to find the annotation property to add.

Troubleshooting Attempt 1

When initially digging into the change, I noticed that the two prior commits show database_cross_reference as the label when they are checked out and Protege is open and it was not until the third commit back (mgijax/mammalian-phenotype-ontology@263433c) that it showed up as has cross-reference.

Commit order:
Image

I tried to figure out what change was made in commit 9e26d1a that would've prompted the switch but when I tried git reset HEAD~ to make it so I could find out which file changes might have caused this, I closed and reopened Protege to ensure it was the same only to discover that the label now appeared as database_cross_reference. I then wiped that out and re-checked out the original commit 9e26d1a and it was still database_cross_reference.

So Protege's behavior is not consistent even with the same exact data.


Troubleshooting Attempt 2

While considering this head scratcher, I noticed that the actual triple for the label in mp-edit.owl has never changed. The triple has always been:

AnnotationAssertion(rdfs:label <http://www.geneontology.org/formats/oboInOwl#hasDbXref> "database_cross_reference")

But if you do a git log search, you'll notice that the label Protege assigns to the header does change.

Use this:

git log -p -S"# Annotation Property: <http://www.geneontology.org/formats/oboInOwl#hasDbXref> (has cross-reference)" -- src/ontology/mp-edit.owl

For example in mgijax/mammalian-phenotype-ontology@20cc865 this is what mp-edit.owl looks like:

Image

And in mgijax/mammalian-phenotype-ontology@1382567 this is what mp-edit.owl looks like:

Image

I have no idea what Protege is doing here but it brings up some questions:

  • Shouldn't the renderer always use the label as defined in the main file? Is it somehow choosing labels out of import files at random instead?
  • How does Protege decide what to write as the label on the Annotation Property header line that starts with #?

This problem is not limited to MP. The same thing happens on occasion with the Disease Ontology.

All labels for these APs (as Protege images)

These are all from mgijax/mammalian-phenotype-ontology@b705fa6

has cross-reference

Image

has exact synonym

Image

has narrow synonym

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions