Repository: ontodev/robot
Pull request #1086 (2023-02-09 17:02:09)

Update to OWLAPI 4.5.24, building on #1005
- copy @hkir-dev's changes to `pom.xml` and `robot-core/`
- update example files
  - drop `xsd:string` datatypes, many files
  - add `rdf:PlainLiteral` datatype declaration in `example2_defined_by.owl`
  - modify `owl-axioms:` in `example.obo`
  - update `metrics_all.json`



Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b01190fc..c3bc0127 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,7 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
 ## [Unreleased]
-- Downgrade SnakeYaml to 1.31 [#1070]
+- Upgrade OWLAPI to 4.5.24 [#1086]
+- Downgrade SnakeYaml to 1.31 [#1071]
 
 ## [1.9.1] - 2022-10-28
 
@@ -332,6 +333,8 @@ First official release of ROBOT!
 [`template`]: http://robot.obolibrary.org/template
 [`validate`]: http://robot.obolibrary.org/validate
 
+[#1086]: https://github.com/ontodev/robot/pull/1086
+[#1071]: https://github.com/ontodev/robot/pull/1071
 [#1061]: https://github.com/ontodev/robot/issues/1061
 [#1030]: https://github.com/ontodev/robot/issues/1030
 [#1026]: https://github.com/ontodev/robot/issues/1026
diff --git a/docs/examples/example.obo b/docs/examples/example.obo
index af6df1d9..a3a30ed3 100644
--- a/docs/examples/example.obo
+++ b/docs/examples/example.obo
@@ -1,7 +1,7 @@
 format-version: 1.2
 remark: Comment from annotations.ttl file.
 ontology: https://github.com/ontodev/robot/examples/edit.owl
-owl-axioms: Prefix(owl:=<http://www.w3.org/2002/07/owl#>)\nPrefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)\nPrefix(xml:=<http://www.w3.org/XML/1998/namespace>)\nPrefix(xsd:=<http://www.w3.org/2001/XMLSchema#>)\nPrefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)\n\n\nOntology(\nDeclaration(Class(<http://purl.obolibrary.org/obo/UBERON_0001062>))\n############################\n#   Classes\n############################\n\n# Class: <http://purl.obolibrary.org/obo/UBERON_0001062> (anatomical entity)\n\nSubClassOf(<http://purl.obolibrary.org/obo/UBERON_0001062> owl:Thing)\n\n\n)
+owl-axioms: Prefix(owl:=<http://www.w3.org/2002/07/owl#>)\nPrefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)\nPrefix(xml:=<http://www.w3.org/XML/1998/namespace>)\nPrefix(xsd:=<http://www.w3.org/2001/XMLSchema#>)\nPrefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)\n\n\nOntology(\nDeclaration(Class(<http://purl.obolibrary.org/obo/UBERON_0001062>))\n############################\n#   Classes\n############################\n\n# Class: <http://purl.obolibrary.org/obo/UBERON_0001062> (<http://purl.obolibrary.org/obo/UBERON_0001062>)\n\nSubClassOf(<http://purl.obolibrary.org/obo/UBERON_0001062> owl:Thing)\n\n\n)
 
 [Term]
 id: UBERON:0000061
diff --git a/docs/examples/example2_defined_by.owl b/docs/examples/example2_defined_by.owl
index 542b1cf6..d15c175a 100644
--- a/docs/examples/example2_defined_by.owl
+++ b/docs/examples/example2_defined_by.owl
@@ -31,7 +31,7 @@
 
     <owl:AnnotationProperty rdf:about="http://purl.obolibrary.org/obo/IAO_0000115">
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">definition</rdfs:label>
+        <rdfs:label>definition</rdfs:label>
     </owl:AnnotationProperty>
     <owl:Axiom>
         <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/IAO_0000115"/>
@@ -45,9 +45,9 @@
     <!-- http://purl.obolibrary.org/obo/IAO_0000116 -->
 
     <owl:AnnotationProperty rdf:about="http://purl.obolibrary.org/obo/IAO_0000116">
-        <oboInOwl:hasOBONamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#string">uberon</oboInOwl:hasOBONamespace>
+        <oboInOwl:hasOBONamespace>uberon</oboInOwl:hasOBONamespace>
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/some_other_ont.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">editor note</rdfs:label>
+        <rdfs:label>editor note</rdfs:label>
     </owl:AnnotationProperty>
     
 
@@ -55,9 +55,9 @@
     <!-- http://purl.obolibrary.org/obo/IAO_0000232 -->
 
     <owl:AnnotationProperty rdf:about="http://purl.obolibrary.org/obo/IAO_0000232">
-        <oboInOwl:hasOBONamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#string">uberon</oboInOwl:hasOBONamespace>
+        <oboInOwl:hasOBONamespace>uberon</oboInOwl:hasOBONamespace>
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">curator notes</rdfs:label>
+        <rdfs:label>curator notes</rdfs:label>
     </owl:AnnotationProperty>
     
 
@@ -121,6 +121,14 @@
     
 
 
+    <!-- http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral -->
+
+    <rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral">
+        <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
+    </rdf:Description>
+    
+
+
     <!-- http://www.w3.org/2001/XMLSchema#string -->
 
     <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#string">
@@ -145,7 +153,7 @@
     <owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/BFO_0000050">
         <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">part_of</rdfs:label>
+        <rdfs:label>part_of</rdfs:label>
     </owl:ObjectProperty>
     
 
@@ -166,7 +174,7 @@
     <owl:Class rdf:about="http://purl.obolibrary.org/obo/UBERON_0000061">
         <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/UBERON_0000465"/>
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/some_other_ont.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">anatomical structure</rdfs:label>
+        <rdfs:label>anatomical structure</rdfs:label>
     </owl:Class>
     
 
@@ -182,7 +190,7 @@
             </owl:Restriction>
         </rdfs:subClassOf>
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">organ</rdfs:label>
+        <rdfs:label>organ</rdfs:label>
     </owl:Class>
     
 
@@ -226,7 +234,7 @@
 
     <owl:NamedIndividual rdf:about="http://purl.obolibrary.org/obo/UBERON_0013702_indv1">
         <rdfs:isDefinedBy rdf:resource="http://purl.obolibrary.org/obo/pcl/some_other_ont.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dummy individal 1</rdfs:label>
+        <rdfs:label>dummy individal 1</rdfs:label>
     </owl:NamedIndividual>
     <owl:Axiom>
         <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/UBERON_0013702_indv1"/>
@@ -241,7 +249,7 @@
 
     <owl:NamedIndividual rdf:about="http://purl.obolibrary.org/obo/UBERON_0013702_indv2">
         <rdfs:isDefinedBy rdf:resource="http://purl.obolibrary.org/obo/pcl/some_other_ont.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dummy individal 2</rdfs:label>
+        <rdfs:label>dummy individal 2</rdfs:label>
     </owl:NamedIndividual>
     
 
@@ -250,7 +258,7 @@
 
     <owl:NamedIndividual rdf:about="http://purl.obolibrary.org/obo/UBERON_0013702_indv3">
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dummy individal 3</rdfs:label>
+        <rdfs:label>dummy individal 3</rdfs:label>
     </owl:NamedIndividual>
     <owl:Axiom>
         <owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/UBERON_0013702_indv3"/>
@@ -265,7 +273,7 @@
 
     <owl:NamedIndividual rdf:about="http://purl.obolibrary.org/obo/UBERON_0013702_indv4">
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dummy individal 4</rdfs:label>
+        <rdfs:label>dummy individal 4</rdfs:label>
     </owl:NamedIndividual>
     
 
@@ -274,10 +282,23 @@
 
     <owl:NamedIndividual rdf:about="http://purl.obolibrary.org/obo/UBERON_0013702_indv5">
         <rdfs:isDefinedBy rdf:resource="https://github.com/ontodev/robot/examples/edit.owl"/>
-        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dummy individal 5</rdfs:label>
+        <rdfs:label>dummy individal 5</rdfs:label>
     </owl:NamedIndividual>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Annotations
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    <rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral"/>
 </rdf:RDF>
 
 
 
-<!-- Generated by the OWL API (version 4.5.6) https://github.com/owlcs/owlapi -->
+<!-- Generated by the OWL API (version 4.5.24) https://github.com/owlcs/owlapi -->
+
diff --git a/docs/examples/metrics_all.json b/docs/examples/metrics_all.json
index 02f8eb57..84a66371 100644
--- a/docs/examples/metrics_all.json
+++ b/docs/examples/metrics_all.json
@@ -30,8 +30,8 @@
     "dt_builtin_count_incl": 2,
     "dt_notbuiltin_count": 0,
     "dt_notbuiltin_count_incl": 0,
-    "expressivity": "SRIQ",
-    "expressivity_incl": "SRIQ",
+    "expressivity": "UCINTERIQ",
+    "expressivity_incl": "UCINTERIQ",
     "gci_count": 0,
     "gci_count_incl": 0,
     "gci_hidden_count": 105,
@@ -46,8 +46,8 @@
     "most_freq_concept_incl": "http://purl.obolibrary.org/obo/UBERON_0007530",
     "multiple_inheritance_count": 103,
     "multiple_inheritance_count_incl": 103,
-    "named_supercl_count_max": 1,
-    "named_supercl_count_max_incl": 1,
+    "named_supercl_count_max": 5,
+    "named_supercl_count_max_incl": 5,
     "obj_property_count": 49,
     "obj_property_count_incl": 49,
     "ontology_anno_count": 0,
@@ -99,16 +99,20 @@
       "InverseObjectProperties"
     ],
     "constructs": [
+      "ROLE_INVERSE",
       "Q",
-      "R",
-      "S",
-      "I"
+      "CONCEPT_UNION",
+      "CONCEPT_INTERSECTION",
+      "FULL_EXISTENTIAL",
+      "ROLE_COMPLEX"
     ],
     "constructs_incl": [
+      "ROLE_INVERSE",
       "Q",
-      "R",
-      "S",
-      "I"
+      "CONCEPT_UNION",
+      "CONCEPT_INTERSECTION",
+      "FULL_EXISTENTIAL",
+      "ROLE_COMPLEX"
     ],
     "datatypes_builtin": [
       "XSD_STRING",
@@ -172,12 +176,17 @@
       "foaf": "http://xmlns.com/foaf/0.1/",
       "BSPO": "http://purl.obolibrary.org/obo/BSPO_"
     },
-    "datatypes_axiom_count": {},
-    "datatypes_axiom_count_incl": {},
+    "datatypes_axiom_count": {
+      "XSD_STRING": 751
+    },
+    "datatypes_axiom_count_incl": {
+      "XSD_STRING": 751
+    },
     "namespace_axiom_count": {
       "oboInOwl": 4819,
       "IAO": 306,
       "UBERON": 1903,
+      "xsd": 751,
       "rdfs": 308,
       "BFO": 283,
       "obo": 235,
@@ -189,6 +198,7 @@
       "oboInOwl": 4819,
       "IAO": 306,
       "UBERON": 1903,
+      "xsd": 751,
       "rdfs": 308,
       "BFO": 283,
       "obo": 235,
diff --git a/docs/examples/uvula_inconsistent_explanation.ofn b/docs/examples/uvula_inconsistent_explanation.ofn
index 50965c63..73a9102c 100644
--- a/docs/examples/uvula_inconsistent_explanation.ofn
+++ b/docs/examples/uvula_inconsistent_explanation.ofn
@@ -19,12 +19,12 @@ Declaration(NamedIndividual(<http://purl.obolibrary.org/obo/CL_0017514>))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003682> (palatal muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle")
 DisjointClasses(<http://purl.obolibrary.org/obo/UBERON_0003682> <http://purl.obolibrary.org/obo/UBERON_0010235>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0010235> (uvular muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0010235> <http://purl.obolibrary.org/obo/UBERON_0003682>)
 
 
diff --git a/docs/examples/uvula_multiple_unsat_2.ofn b/docs/examples/uvula_multiple_unsat_2.ofn
index c16d1fd1..e0ac2027 100644
--- a/docs/examples/uvula_multiple_unsat_2.ofn
+++ b/docs/examples/uvula_multiple_unsat_2.ofn
@@ -35,19 +35,19 @@ Declaration(ObjectProperty(<http://purl.obolibrary.org/obo/uberon/core#synapsed_
 
 # Object Property: <http://purl.obolibrary.org/obo/BFO_0000050> (part of)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/BFO_0000050> "part of"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/BFO_0000050> "part of")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002202> (develops_from)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002202> "develops_from"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002202> "develops_from")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002219> (surrounded_by)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002219> "surrounded_by"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002219> "surrounded_by")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002473> (composed primarily of)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002473> "composed primarily of"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002473> "composed primarily of")
 
 # Object Property: <http://purl.obolibrary.org/obo/uberon/core#synapsed_by> (synapsed by)
 
@@ -65,68 +65,68 @@ AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/CL_0000100> "moto
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0000479> (tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0000479> "tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0000479> "tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0000479> <http://purl.obolibrary.org/obo/UBERON_0010000>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001134> (skeletal muscle tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001134> "skeletal muscle tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001134> "skeletal muscle tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0001134> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0014892>))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001630> (muscle organ)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001630> "muscle organ"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001630> "muscle organ")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001733> (soft palate)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001733> "soft palate"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001733> "soft palate")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0002384> (connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0002384> "connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0002384> "connective tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0002384> <http://purl.obolibrary.org/obo/UBERON_0000479>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003082> (myotome)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003082> "myotome"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003082> "myotome")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003682> (palatal muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle")
 EquivalentClasses(<http://purl.obolibrary.org/obo/UBERON_0003682> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/UBERON_0014892> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0001733>)))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0010000> (multicellular anatomical structure)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010000> "multicellular anatomical structure"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010000> "multicellular anatomical structure")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011821> (irregular connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011821> "irregular connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011821> "irregular connective tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011821> <http://purl.obolibrary.org/obo/UBERON_0002384>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011822> (dense irregular connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011822> "dense irregular connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011822> "dense irregular connective tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011822> <http://purl.obolibrary.org/obo/UBERON_0011821>)
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011822> <http://purl.obolibrary.org/obo/UBERON_0011823>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011823> (dense connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011823> "dense connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011823> "dense connective tissue")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011899> (epimysium)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011899> "epimysium"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011899> "epimysium")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011899> <http://purl.obolibrary.org/obo/UBERON_0011822>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0014892> (skeletal muscle organ)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0014892> "skeletal muscle organ"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0014892> "skeletal muscle organ")
 EquivalentClasses(<http://purl.obolibrary.org/obo/UBERON_0014892> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/UBERON_0001630> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002202> <http://purl.obolibrary.org/obo/UBERON_0003082>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002219> <http://purl.obolibrary.org/obo/UBERON_0011899>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002473> <http://purl.obolibrary.org/obo/UBERON_0001134>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/uberon/core#synapsed_by> <http://purl.obolibrary.org/obo/CL_0000100>)))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0017650> (developing mesenchymal structure)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0017650> "developing mesenchymal structure"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0017650> "developing mesenchymal structure")
 
 
 DisjointClasses(<http://purl.obolibrary.org/obo/UBERON_0010000> <http://purl.obolibrary.org/obo/UBERON_0011823> <http://purl.obolibrary.org/obo/UBERON_0017650>)
diff --git a/docs/examples/uvula_multiple_unsat_all_explanation.ofn b/docs/examples/uvula_multiple_unsat_all_explanation.ofn
index 3359bfd3..1e62b47b 100644
--- a/docs/examples/uvula_multiple_unsat_all_explanation.ofn
+++ b/docs/examples/uvula_multiple_unsat_all_explanation.ofn
@@ -36,19 +36,19 @@ Declaration(ObjectProperty(<http://purl.obolibrary.org/obo/uberon/core#synapsed_
 
 # Object Property: <http://purl.obolibrary.org/obo/BFO_0000050> (part of)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/BFO_0000050> "part of"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/BFO_0000050> "part of")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002202> (develops_from)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002202> "develops_from"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002202> "develops_from")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002219> (surrounded_by)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002219> "surrounded_by"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002219> "surrounded_by")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002473> (composed primarily of)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002473> "composed primarily of"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002473> "composed primarily of")
 
 # Object Property: <http://purl.obolibrary.org/obo/uberon/core#synapsed_by> (synapsed by)
 
@@ -66,74 +66,74 @@ AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/CL_0000100> "moto
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0000479> (tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0000479> "tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0000479> "tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0000479> <http://purl.obolibrary.org/obo/UBERON_0010000>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001134> (skeletal muscle tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001134> "skeletal muscle tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001134> "skeletal muscle tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0001134> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0014892>))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001630> (muscle organ)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001630> "muscle organ"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001630> "muscle organ")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001733> (soft palate)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001733> "soft palate"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001733> "soft palate")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0002384> (connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0002384> "connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0002384> "connective tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0002384> <http://purl.obolibrary.org/obo/UBERON_0000479>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003082> (myotome)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003082> "myotome"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003082> "myotome")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003682> (palatal muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle")
 EquivalentClasses(<http://purl.obolibrary.org/obo/UBERON_0003682> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/UBERON_0014892> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0001733>)))
 DisjointClasses(<http://purl.obolibrary.org/obo/UBERON_0003682> <http://purl.obolibrary.org/obo/UBERON_0010235>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0010000> (multicellular anatomical structure)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010000> "multicellular anatomical structure"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010000> "multicellular anatomical structure")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0010235> (uvular muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0010235> <http://purl.obolibrary.org/obo/UBERON_0003682>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011821> (irregular connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011821> "irregular connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011821> "irregular connective tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011821> <http://purl.obolibrary.org/obo/UBERON_0002384>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011822> (dense irregular connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011822> "dense irregular connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011822> "dense irregular connective tissue")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011822> <http://purl.obolibrary.org/obo/UBERON_0011821>)
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011822> <http://purl.obolibrary.org/obo/UBERON_0011823>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011823> (dense connective tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011823> "dense connective tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011823> "dense connective tissue")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011899> (epimysium)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011899> "epimysium"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011899> "epimysium")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0011899> <http://purl.obolibrary.org/obo/UBERON_0011822>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0014892> (skeletal muscle organ)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0014892> "skeletal muscle organ"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0014892> "skeletal muscle organ")
 EquivalentClasses(<http://purl.obolibrary.org/obo/UBERON_0014892> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/UBERON_0001630> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002202> <http://purl.obolibrary.org/obo/UBERON_0003082>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002219> <http://purl.obolibrary.org/obo/UBERON_0011899>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002473> <http://purl.obolibrary.org/obo/UBERON_0001134>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/uberon/core#synapsed_by> <http://purl.obolibrary.org/obo/CL_0000100>)))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0017650> (developing mesenchymal structure)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0017650> "developing mesenchymal structure"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0017650> "developing mesenchymal structure")
 
 
 DisjointClasses(<http://purl.obolibrary.org/obo/UBERON_0010000> <http://purl.obolibrary.org/obo/UBERON_0011823> <http://purl.obolibrary.org/obo/UBERON_0017650>)
diff --git a/docs/examples/uvular_muscle.ofn b/docs/examples/uvular_muscle.ofn
index 1e7203e4..b3fa033a 100644
--- a/docs/examples/uvular_muscle.ofn
+++ b/docs/examples/uvular_muscle.ofn
@@ -7,7 +7,7 @@ Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)
 
 
 Ontology(<https://github.com/ontodev/robot/examples/uvular_muscle.ofn>
-Annotation(rdfs:label "Uvular Muscle Explanation"^^xsd:string)
+Annotation(rdfs:label "Uvular Muscle Explanation")
 
 Declaration(Class(<http://purl.obolibrary.org/obo/CL_0000100>))
 Declaration(Class(<http://purl.obolibrary.org/obo/UBERON_0001134>))
@@ -33,20 +33,20 @@ Declaration(ObjectProperty(<http://purl.obolibrary.org/obo/uberon/core#synapsed_
 
 # Object Property: <http://purl.obolibrary.org/obo/BFO_0000050> (part of)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/BFO_0000050> "part of"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/BFO_0000050> "part of")
 TransitiveObjectProperty(<http://purl.obolibrary.org/obo/BFO_0000050>)
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002202> (develops_from)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002202> "develops_from"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002202> "develops_from")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002219> (surrounded_by)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002219> "surrounded_by"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002219> "surrounded_by")
 
 # Object Property: <http://purl.obolibrary.org/obo/RO_0002473> (composed primarily of)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002473> "composed primarily of"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/RO_0002473> "composed primarily of")
 
 # Object Property: <http://purl.obolibrary.org/obo/uberon/core#synapsed_by> (synapsed by)
 
@@ -64,52 +64,52 @@ AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/CL_0000100> "moto
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001134> (skeletal muscle tissue)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001134> "skeletal muscle tissue"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001134> "skeletal muscle tissue")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001630> (muscle organ)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001630> "muscle organ"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001630> "muscle organ")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001709> (upper jaw region)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001709> "upper jaw region"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001709> "upper jaw region")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0001709> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0011595>))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001716> (secondary palate)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001716> "secondary palate"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001716> "secondary palate")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0001716> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0001709>))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0001733> (soft palate)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001733> "soft palate"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0001733> "soft palate")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0001733> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0001716>))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003082> (myotome)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003082> "myotome"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003082> "myotome")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003682> (palatal muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle")
 EquivalentClasses(<http://purl.obolibrary.org/obo/UBERON_0003682> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/UBERON_0014892> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/UBERON_0001733>)))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0010235> (uvular muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0010235> <http://purl.obolibrary.org/obo/UBERON_0003682>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011595> (jaw region)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011595> "jaw region"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011595> "jaw region")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0011899> (epimysium)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011899> "epimysium"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0011899> "epimysium")
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0014892> (skeletal muscle organ)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0014892> "skeletal muscle organ"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0014892> "skeletal muscle organ")
 EquivalentClasses(<http://purl.obolibrary.org/obo/UBERON_0014892> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/UBERON_0001630> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002202> <http://purl.obolibrary.org/obo/UBERON_0003082>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002219> <http://purl.obolibrary.org/obo/UBERON_0011899>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0002473> <http://purl.obolibrary.org/obo/UBERON_0001134>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/uberon/core#synapsed_by> <http://purl.obolibrary.org/obo/CL_0000100>)))
 
 
diff --git a/docs/examples/uvular_unsat_explanation.ofn b/docs/examples/uvular_unsat_explanation.ofn
index 0d8baeea..dcdf6270 100644
--- a/docs/examples/uvular_unsat_explanation.ofn
+++ b/docs/examples/uvular_unsat_explanation.ofn
@@ -7,7 +7,7 @@ Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)
 
 
 Ontology(<https://github.com/ontodev/robot/examples/uvular_muscle_unsat.ofn>
-Annotation(rdfs:label "Explanation for unsatisfiability of Uvular Muscle"^^xsd:string)
+Annotation(rdfs:label "Explanation for unsatisfiability of Uvular Muscle")
 
 Declaration(Class(<http://purl.obolibrary.org/obo/UBERON_0003682>))
 Declaration(Class(<http://purl.obolibrary.org/obo/UBERON_0010235>))
@@ -19,12 +19,12 @@ Declaration(Class(<http://purl.obolibrary.org/obo/UBERON_0010235>))
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0003682> (palatal muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0003682> "palatal muscle")
 DisjointClasses(<http://purl.obolibrary.org/obo/UBERON_0003682> <http://purl.obolibrary.org/obo/UBERON_0010235>)
 
 # Class: <http://purl.obolibrary.org/obo/UBERON_0010235> (uvular muscle)
 
-AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle"^^xsd:string)
+AnnotationAssertion(rdfs:label <http://purl.obolibrary.org/obo/UBERON_0010235> "uvular muscle")
 SubClassOf(<http://purl.obolibrary.org/obo/UBERON_0010235> <http://purl.obolibrary.org/obo/UBERON_0003682>)
 
 
diff --git a/pom.xml b/pom.xml
index 293e1a78..3177e012 100644
--- a/pom.xml
+++ b/pom.xml
@@ -165,7 +165,7 @@
     <dependency>
       <groupId>net.sourceforge.owlapi</groupId>
       <artifactId>owlapi-api</artifactId>
-      <version>4.5.6</version>
+      <version>4.5.24</version>
       <exclusions>
         <exclusion>
           <groupId>com.google.code.findbugs</groupId>
@@ -176,7 +176,7 @@
     <dependency>
       <groupId>net.sourceforge.owlapi</groupId>
       <artifactId>owlapi-apibinding</artifactId>
-      <version>4.5.6</version>
+      <version>4.5.24</version>
       <exclusions>
         <exclusion>
           <groupId>com.google.code.findbugs</groupId>
@@ -187,7 +187,7 @@
     <dependency>
       <groupId>net.sourceforge.owlapi</groupId>
       <artifactId>owlapi-rio</artifactId>
-      <version>4.5.6</version>
+      <version>4.5.24</version>
       <exclusions>
         <exclusion>
           <groupId>com.google.code.findbugs</groupId>
diff --git a/robot-core/pom.xml b/robot-core/pom.xml
index 5b01797e..96fe572c 100644
--- a/robot-core/pom.xml
+++ b/robot-core/pom.xml
@@ -58,6 +58,11 @@
             <!-- include on breaking changes
             <excludes></excludes>
             -->
+            <ignoreMissingClassesByRegularExpressions>
+            	<!-- To handle sesame-rio-api-2.7.16.jar -> rdf4j-rio-api-2.4.2.jar lib change on owlapi 4.5.24 upgrade:  -->
+            	<!-- This ignore can be removed in consecutive releases -->
+            	<ignoreMissingClassesByRegularExpression>org.openrdf.rio.*</ignoreMissingClassesByRegularExpression>
+            </ignoreMissingClassesByRegularExpressions>
           </parameter>
         </configuration>
         <executions>
@@ -81,7 +86,7 @@
     <dependency>
       <groupId>net.sourceforge.owlapi</groupId>
       <artifactId>owlapi-api</artifactId>
-      <version>4.5.6</version>
+      <version>4.5.24</version>
       <exclusions>
         <exclusion>
           <groupId>com.google.code.findbugs</groupId>
@@ -92,7 +97,7 @@
     <dependency>
       <groupId>net.sourceforge.owlapi</groupId>
       <artifactId>owlapi-apibinding</artifactId>
-      <version>4.5.6</version>
+      <version>4.5.24</version>
       <exclusions>
         <exclusion>
           <groupId>com.google.code.findbugs</groupId>
@@ -103,7 +108,7 @@
     <dependency>
       <groupId>net.sourceforge.owlapi</groupId>
       <artifactId>owlapi-rio</artifactId>
-      <version>4.5.6</version>
+      <version>4.5.24</version>
       <exclusions>
         <exclusion>
           <groupId>com.google.code.findbugs</groupId>
diff --git a/robot-core/src/main/java/org/obolibrary/robot/ExpandOperation.java b/robot-core/src/main/java/org/obolibrary/robot/ExpandOperation.java
index 14f1220b..cdd01985 100644
--- a/robot-core/src/main/java/org/obolibrary/robot/ExpandOperation.java
+++ b/robot-core/src/main/java/org/obolibrary/robot/ExpandOperation.java
@@ -10,7 +10,7 @@ import org.apache.jena.rdf.model.Model;
 import org.apache.jena.rdf.model.ResourceFactory;
 import org.apache.jena.vocabulary.OWL;
 import org.apache.jena.vocabulary.RDF;
-import org.openrdf.model.vocabulary.DCTERMS;
+import org.eclipse.rdf4j.model.vocabulary.DCTERMS;
 import org.semanticweb.owlapi.apibinding.OWLManager;
 import org.semanticweb.owlapi.model.*;
 import org.semanticweb.owlapi.model.parameters.Imports;
diff --git a/robot-core/src/main/java/org/obolibrary/robot/QueryOperation.java b/robot-core/src/main/java/org/obolibrary/robot/QueryOperation.java
index 92edce3f..9362530c 100644
--- a/robot-core/src/main/java/org/obolibrary/robot/QueryOperation.java
+++ b/robot-core/src/main/java/org/obolibrary/robot/QueryOperation.java
@@ -17,11 +17,10 @@ import org.apache.jena.riot.resultset.ResultSetLang;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.update.UpdateAction;
-import org.openrdf.model.BNode;
-import org.openrdf.model.Literal;
-import org.openrdf.model.Statement;
-import org.openrdf.model.URI;
-import org.openrdf.rio.RDFHandler;
+import org.eclipse.rdf4j.model.BNode;
+import org.eclipse.rdf4j.model.Literal;
+import org.eclipse.rdf4j.model.Statement;
+import org.eclipse.rdf4j.rio.RDFHandler;
 import org.semanticweb.owlapi.apibinding.OWLManager;
 import org.semanticweb.owlapi.formats.TurtleDocumentFormat;
 import org.semanticweb.owlapi.model.*;
@@ -170,12 +169,13 @@ public class QueryOperation {
         object =
             new ResourceImpl(
                 new AnonId(modelUniqueBlankNodePrefix + ((BNode) triple.getObject()).getID()));
-      } else if (triple.getObject() instanceof URI) {
+      } else if (triple.getObject() instanceof org.eclipse.rdf4j.model.IRI) {
         object = ResourceFactory.createResource(triple.getObject().stringValue());
       } else {
         Literal literal = (Literal) (triple.getObject());
-        if (literal.getLanguage() != null) {
-          object = ResourceFactory.createLangLiteral(literal.getLabel(), literal.getLanguage());
+        if (literal.getLanguage().isPresent()) {
+          object =
+              ResourceFactory.createLangLiteral(literal.getLabel(), literal.getLanguage().get());
         } else if (literal.getDatatype() != null) {
           object =
               ResourceFactory.createTypedLiteral(
diff --git a/robot-core/src/main/java/org/obolibrary/robot/QuotedEntityChecker.java b/robot-core/src/main/java/org/obolibrary/robot/QuotedEntityChecker.java
index 0c2b9f56..dc81dc6f 100644
--- a/robot-core/src/main/java/org/obolibrary/robot/QuotedEntityChecker.java
+++ b/robot-core/src/main/java/org/obolibrary/robot/QuotedEntityChecker.java
@@ -389,10 +389,15 @@ public class QuotedEntityChecker implements OWLEntityChecker {
     if (iri != null) {
       return dataFactory.getOWLDataProperty(iri);
     }
-    if (ioHelper != null) {
-      iri = ioHelper.createIRI(name);
-      if (iri != null) {
-        return dataFactory.getOWLDataProperty(iri);
+    // prevent punning
+    if (!objectProperties.containsKey(name)) {
+      if (ioHelper != null) {
+        iri = ioHelper.createIRI(name);
+        if (iri != null) {
+          OWLDataProperty owlDataProperty = dataFactory.getOWLDataProperty(iri);
+          dataProperties.put(name, iri);
+          return owlDataProperty;
+        }
       }
     }
     return null;
@@ -465,10 +470,15 @@ public class QuotedEntityChecker implements OWLEntityChecker {
     if (iri != null) {
       return dataFactory.getOWLObjectProperty(iri);
     }
-    if (ioHelper != null) {
-      iri = ioHelper.createIRI(name);
-      if (iri != null) {
-        return dataFactory.getOWLObjectProperty(iri);
+    // prevent punning
+    if (!dataProperties.containsKey(name)) {
+      if (ioHelper != null) {
+        iri = ioHelper.createIRI(name);
+        if (iri != null) {
+          OWLObjectProperty owlObjectProperty = dataFactory.getOWLObjectProperty(iri);
+          objectProperties.put(name, iri);
+          return owlObjectProperty;
+        }
       }
     }
     return null;
diff --git a/robot-core/src/main/java/org/obolibrary/robot/metrics/OntologyMetrics.java b/robot-core/src/main/java/org/obolibrary/robot/metrics/OntologyMetrics.java
index dc643e42..f9d04e67 100644
--- a/robot-core/src/main/java/org/obolibrary/robot/metrics/OntologyMetrics.java
+++ b/robot-core/src/main/java/org/obolibrary/robot/metrics/OntologyMetrics.java
@@ -46,6 +46,7 @@ import org.semanticweb.owlapi.profiles.OWLProfile;
 import org.semanticweb.owlapi.profiles.OWLProfileReport;
 import org.semanticweb.owlapi.profiles.OWLProfileViolation;
 import org.semanticweb.owlapi.reasoner.OWLReasoner;
+import org.semanticweb.owlapi.util.Construct;
 import org.semanticweb.owlapi.util.DLExpressivityChecker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1007,7 +1008,7 @@ public class OntologyMetrics {
     }
     DLExpressivityChecker checker = new DLExpressivityChecker(onts);
     Set<String> constructs = new HashSet<>();
-    for (DLExpressivityChecker.Construct c : checker.getConstructs()) {
+    for (Construct c : checker.getConstructs()) {
       constructs.add(c.name());
     }
     return constructs;


Test patch:
diff --git a/robot-command/src/test/java/org/obolibrary/robot/CommandLineIT.java b/robot-command/src/test/java/org/obolibrary/robot/CommandLineIT.java
index 0b2941d9..2412a89c 100644
--- a/robot-command/src/test/java/org/obolibrary/robot/CommandLineIT.java
+++ b/robot-command/src/test/java/org/obolibrary/robot/CommandLineIT.java
@@ -81,8 +81,8 @@ public class CommandLineIT {
   }
 
   /**
-   * Ensure that the examples/results/ directory exists and is empty,
-   * and that the `target/integration-tests.txt` file is deleted.
+   * Ensure that the examples/results/ directory exists and is empty, and that the
+   * `target/integration-tests.txt` file is deleted.
    *
    * @throws Exception if directory cannot be created or emptied
    */
diff --git a/robot-core/src/test/java/org/obolibrary/robot/IOHelperTest.java b/robot-core/src/test/java/org/obolibrary/robot/IOHelperTest.java
index 1550b0b4..4324753f 100644
--- a/robot-core/src/test/java/org/obolibrary/robot/IOHelperTest.java
+++ b/robot-core/src/test/java/org/obolibrary/robot/IOHelperTest.java
@@ -324,7 +324,15 @@ public class IOHelperTest extends CoreTest {
     IOHelper ioHelper = new IOHelper();
     ioHelper.setStrict(true);
     String input =
-        "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n\n_:Bb65616 rdf:type rdf:Statement .";
+        "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ."
+            .concat("\n\n")
+            .concat("@prefix foo: <http://example.com#> .")
+            .concat("\n\n")
+            .concat("_:Bb65616 rdf:type rdf:Statement ;")
+            .concat("\n\n")
+            .concat("rdf:object foo:Bar ;")
+            .concat("\n\n")
+            .concat("rdf:subject foo:Foo .");
     InputStream inputStream = new ByteArrayInputStream(input.getBytes());
     boolean pass = false;
     try {
diff --git a/robot-core/src/test/java/org/obolibrary/robot/MeasureOperationTest.java b/robot-core/src/test/java/org/obolibrary/robot/MeasureOperationTest.java
index dc9a3ef1..f7847c38 100644
--- a/robot-core/src/test/java/org/obolibrary/robot/MeasureOperationTest.java
+++ b/robot-core/src/test/java/org/obolibrary/robot/MeasureOperationTest.java
@@ -47,7 +47,7 @@ public class MeasureOperationTest extends CoreTest {
     MeasureResult result =
         MeasureOperation.getMetrics(
             ontology, "extended", new CURIEShortFormProvider(new IOHelper().getPrefixes()));
-    assertEquals("SI(D)", result.getSimpleMetricValue(MetricsLabels.EXPRESSIVITY));
+    assertEquals("RRESTRUCINTE+I(D)", result.getSimpleMetricValue(MetricsLabels.EXPRESSIVITY));
   }
 
   /**
diff --git a/robot-core/src/test/java/org/obolibrary/robot/ReasonOperationTest.java b/robot-core/src/test/java/org/obolibrary/robot/ReasonOperationTest.java
index a46266cd..2c387a01 100644
--- a/robot-core/src/test/java/org/obolibrary/robot/ReasonOperationTest.java
+++ b/robot-core/src/test/java/org/obolibrary/robot/ReasonOperationTest.java
@@ -284,7 +284,7 @@ public class ReasonOperationTest extends CoreTest {
     assertTrue(
         checkContains(
             ontology,
-            "EquivalentClasses(<http://purl.obolibrary.org/obo/CLS_01> <http://purl.obolibrary.org/obo/CLS_02> )"));
+            "EquivalentClasses(<http://purl.obolibrary.org/obo/CLS_01> <http://purl.obolibrary.org/obo/CLS_02>)"));
 
     // disjoint classes
     assertTrue(
@@ -317,7 +317,7 @@ public class ReasonOperationTest extends CoreTest {
     assertTrue(
         checkContains(
             ontology,
-            "EquivalentObjectProperties(<http://purl.obolibrary.org/obo/OP_01> <http://purl.obolibrary.org/obo/OP_04> )"));
+            "EquivalentObjectProperties(<http://purl.obolibrary.org/obo/OP_01> <http://purl.obolibrary.org/obo/OP_04>)"));
     // inverse properties
     assertTrue(
         checkContains(
@@ -348,7 +348,7 @@ public class ReasonOperationTest extends CoreTest {
     assertTrue(
         checkContains(
             ontology,
-            "EquivalentDataProperties(<http://purl.obolibrary.org/obo/DP_01> <http://purl.obolibrary.org/obo/DP_04> )"));
+            "EquivalentDataProperties(<http://purl.obolibrary.org/obo/DP_01> <http://purl.obolibrary.org/obo/DP_04>)"));
   }
 
   /**