Skip to content

Updating to OWLAPI 4.5.24#1005

Closed
hkir-dev wants to merge 10 commits intoontodev:masterfrom
hkir-dev:owlapi-4.5.22
Closed

Updating to OWLAPI 4.5.24#1005
hkir-dev wants to merge 10 commits intoontodev:masterfrom
hkir-dev:owlapi-4.5.22

Conversation

@hkir-dev
Copy link
Contributor

@hkir-dev hkir-dev commented May 24, 2022

Resolves owlapi#1004

  • docs/ have been added/updated
  • tests have been added/updated
  • mvn verify says all tests pass
  • mvn site says all JavaDocs correct
  • CHANGELOG.md has been updated

Changes Summary:

  • Backward compatibility checking maven plugin (com.github.siom79.japicmp) ignoreMissingClassesByRegularExpressions parameter added in robot-core/pom.xml. Owlapi 4.5.22 uses a newer version of the rio-api: sesame-rio-api-2.7.16.jar -> rdf4j-rio-api-2.4.2.jar. Plugin is raising "Could not load 'org.openrdf.rio.RDFHandlerException'" exception, but that class renamed to org.eclipse.rdf4j.rio.RDFHandlerException now.
  • Owlapi Manchester syntax parsing logic changed to prevent illegal punning: owlapi#851. Property punning between properties is illegal, but punning of a property name and class name or individual name is allowed. QuotedEntityChecker.getOWLDataProperty, getOWLObjectProperty and getOWLClass was causing illegal punning exception when called without a reference ontology. Added if controls to prevent exception.
  • Axiom annotations using undeclared annotation properties are now getting parsed in 4.5.22 (inferring type from usage), updated the test files accordingly. Example case: oboInOwl:date_retrieved not declared in edit.owl
  • DLExpressivityChecker.Construct changed in the new owlapi, accordingly OntologyMetrics and MeasureOperationTest updated

@hkir-dev hkir-dev requested a review from matentzn May 24, 2022 15:52
@hkir-dev hkir-dev mentioned this pull request May 24, 2022
5 tasks
Copy link
Contributor

@beckyjackson beckyjackson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks OK to me and I ran some tests on my machine. I confirmed that it resolves the template issue in #609, which is cool!

@balhoff
Copy link
Contributor

balhoff commented Oct 13, 2022

Ready to merge?

@jamesaoverton
Copy link
Member

I would like the latest ROBOT and Protege to use the same OWLAPI version. They are working on a new Protege release here: protegeproject/protege#1072. That seems to be going well, but I'd like to wait and see for a bit longer.

@hkir-dev
Copy link
Contributor Author

hkir-dev commented Jan 17, 2023

OWL API 4.5.24 has been released and Protege 5.6.0 will use this version.

INCATools/ontology-development-kit#770 (comment)

OWL API 4.5.24 has been released with the fix (the tag is not yet visible on GitHub, but the artifact is available on Maven Central).
I’ve rebuilt the 5.6.0-beta-2 release of Protégé with the new version.

Updated current PR accordingly.

@hkir-dev hkir-dev changed the title Updating to OWLAPI 4.5.22 Updating to OWLAPI 4.5.24 Jan 17, 2023
@jamesaoverton
Copy link
Member

@hkir-dev I want to merge this, but I'm still uncomfortable with the large number of changes to the examples: I don't understand all the new <owl:Axiom>s.

Why am I so nervous? We've worked very, very hard to build trust with our users, and I don't want to jeopardize that. This OWLAPI update is going to cause significant churn in git diffs. We'll communicate that as clearly as possible to our users, but essentially we'll be asking people to just ignore the big diffs and trust that we haven't broken their stuff.

The examples are the core of our automated test suite. They're what convinces me that we aren't breaking things. So I need to fully understand all the changes.

  1. I understand the changes to the code -- they're small and look good
  2. I understand why xsd:string datatypes are disappearing from the examples, and that's good
  3. I don't understand where all the <owl:Axiom>s are coming from, or why they're necessary

Are you testing that OBO-format output is including axiom annotations properly? If so, could we just update a few of the tests, and not all of them?

If all these new <owl:Axioms> come from new behaviour in the OWLAPI, then there's something major that I don't understand.

@hkir-dev
Copy link
Contributor Author

hkir-dev commented Feb 9, 2023

Just to save our Slack discussion:
There is an OWLAPI behaviour change regarding this issue: owlcs/owlapi#875
OWLAPI was used to ignore axiom annotations if the annotation property is not declared. Now, with the new version, it automatically declares the property and persists the related axiom annotations.
It seems that some of our test files have such undeclared properties and with the new OWLAPI release these axioms are starting to reappear in the output files. We need to test in detail to ensure all those axioms are valid.

jamesaoverton added a commit that referenced this pull request Feb 9, 2023
@jamesaoverton
Copy link
Member

Thanks @hkir-dev for all your work on this. I updated the examples in #1085, and created a new PR #1086 to apply your changes more cleanly.

jamesaoverton added a commit that referenced this pull request Feb 9, 2023
Update to OWLAPI 4.5.24, building on #1005
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

Successfully merging this pull request may close these issues.

OWLAPI Writers add xsd:string randomly.

5 participants