Knowledge-Graph-Hub / kg-obo

A package to transform all OBO ontologies into KGX TSV format and OBO json, and put the transformed graph in KGhub
https://knowledge-graph-hub.github.io/kg-obo/getting_started.html
GNU General Public License v3.0
28 stars 2 forks source link

Transform of `cob` fails during ROBOT covert from owl to obojson #189

Closed caufieldjh closed 2 years ago

caufieldjh commented 2 years ago

Describe the bug

The transform of cob fails during the ROBOT preprocess stage:

ROBOT preprocessing: relax cob
Relaxing /tmp/cob0w0cw1cf to /tmp/tmpuvjnf2t0_cob_relaxed.owl...
Complete.
Before relax: 1348 lines. After relax: 1365 lines.
ROBOT preprocessing: node ID normalization on cob
Retrieving entity names in /tmp/tmpuvjnf2t0_cob_relaxed.owl...
Exported IDs to /tmp/tmpuvjnf2t0_cob_relaxed.owl.ids.csv.
All identifiers in /tmp/tmpuvjnf2t0_cob_relaxed.owl are as expected.
No identifiers in /tmp/tmpuvjnf2t0_cob_relaxed.owl will be normalized.
ROBOT preprocessing: convert cob
Converting /tmp/tmpuvjnf2t0_cob_relaxed.owl to data/cob/2022-05-02/cob.json...
ROBOT encountered an error: 

  RAN: /home/harry/kg-obo/robot convert --input /tmp/tmpuvjnf2t0_cob_relaxed.owl --format json --output data/cob/2022-05-02/cob.json

  STDOUT:
class uk.ac.manchester.cs.owl.owlapi.OWLObjectInverseOfImpl cannot be cast to class org.semanticweb.owlapi.model.OWLObjectProperty (uk.ac.manchester.cs.owl.owlapi.OWLObjectInverseOfImpl and org.semanticweb.owlapi.model.OWLObjectProperty are in unnamed module of loader 'app')
Use the -vvv option to show the stack trace.
Use the --help option to see usage information.

  STDERR:

ROBOT convert of cob failed - skipping.

To Reproduce

python run.py --bucket kg-hub-public-data --save_local --get_only cob

Expected behavior

The transform of cob should be written to data/cob/2022-05-02 locally, then uploaded.

Version

efc2324f040d8daad14ffaaaa6e71583d6258117

caufieldjh commented 2 years ago

The issue is the owl:inverseOf properties in cob.

The full stack trace is:

$ robot convert --input /tmp/tmpuvjnf2t0_cob_relaxed.owl --format json --output data/cob/2022-05-02/cob.json -vvv
DEBUG Loading ontology /tmp/tmpuvjnf2t0_cob_relaxed.owl with catalog file null
DEBUG Loading file META-INF/services/org.semanticweb.owlapi.model.OWLOntologyManager
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLOntologyManager
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLOntologyManager
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLOntologyManager
DEBUG Loading file META-INF/services/org.semanticweb.owlapi.model.OWLDataFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLDataFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLDataFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLDataFactory
DEBUG Injecting object uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl@4ff4357f
DEBUG Loading file META-INF/services/org.semanticweb.owlapi.model.OWLOntologyIRIMapper
DEBUG No files found for META-INF/services/org.semanticweb.owlapi.model.OWLOntologyIRIMapper
DEBUG Injecting values [[]] on method public void uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.setIRIMappers(java.util.Set).
DEBUG Loading file META-INF/services/org.semanticweb.owlapi.io.OWLParserFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.io.OWLParserFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.io.OWLParserFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.io.OWLParserFactory
DEBUG Injecting values [[org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParserFactory@604c5de8, org.semanticweb.owlapi.rio.RioRDFXMLParserFactory@6492fab5, org.semanticweb.owlapi.krss2.parser.KRSS2OWLParserFactory@584f54e6, org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParserFactory@663411de, org.semanticweb.owlapi.rio.RioJsonLDParserFactory@373ebf74, org.semanticweb.owlapi.rio.RioN3ParserFactory@626c44e7, org.semanticweb.owlapi.rio.RioJsonParserFactory@5ccbeb64, org.semanticweb.owlapi.rdf.turtle.parser.TurtleOntologyParserFactory@5ef6ae06, org.semanticweb.owlapi.owlxml.parser.OWLXMLParserFactory@366ac49b, org.semanticweb.owlapi.rio.RioTurtleParserFactory@299321e2, org.semanticweb.owlapi.rio.RioNQuadsParserFactory@53d102a2, org.semanticweb.owlapi.rio.RioRDFaParserFactory@7103cb56, org.semanticweb.owlapi.rio.RioBinaryRdfParserFactory@10ded6a9, org.semanticweb.owlapi.oboformat.OBOFormatOWLAPIParserFactory@9ef8eb7, org.semanticweb.owlapi.rio.RioNTriplesParserFactory@61f05988, org.semanticweb.owlapi.rio.RioTrixParserFactory@50ecde95, org.semanticweb.owlapi.rio.RioTrigParserFactory@3700ec9c, org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParserFactory@604f2bd2]] on method public void uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.setOntologyParsers(java.util.Set).
DEBUG Loading file META-INF/services/org.semanticweb.owlapi.model.OWLOntologyFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLOntologyFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLOntologyFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLOntologyFactory
DEBUG Injecting values [[uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl@5b068087]] on method public void uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.setOntologyFactories(java.util.Set).
DEBUG Loading file META-INF/services/org.semanticweb.owlapi.model.OWLStorerFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLStorerFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLStorerFactory
DEBUG Loading URL for service jar:file:/usr/local/bin/robot.jar!/META-INF/services/org.semanticweb.owlapi.model.OWLStorerFactory
DEBUG Injecting values [[org.semanticweb.owlapi.dlsyntax.renderer.DLSyntaxHTMLStorerFactory@53142455, org.semanticweb.owlapi.rio.RioNTriplesStorerFactory@2cc3ad05, org.semanticweb.owlapi.rio.RioTurtleStorerFactory@58ffcbd7, org.semanticweb.owlapi.functional.renderer.FunctionalSyntaxStorerFactory@26bab2f1, org.semanticweb.owlapi.oboformat.OBOFormatStorerFactory@5cdd09b1, org.semanticweb.owlapi.manchestersyntax.renderer.ManchesterSyntaxStorerFactory@180da663, org.semanticweb.owlapi.rio.RioJsonStorerFactory@1c3b9394, org.semanticweb.owlapi.owlxml.renderer.OWLXMLStorerFactory@44040454, org.semanticweb.owlapi.rio.RioN3StorerFactory@ccb4b1b, org.semanticweb.owlapi.rdf.rdfxml.renderer.RDFXMLStorerFactory@44e3a2b2, org.semanticweb.owlapi.rio.RioRDFXMLStorerFactory@c055c54, org.semanticweb.owlapi.krss2.renderer.KRSS2OWLSyntaxStorerFactory@37052337, org.semanticweb.owlapi.rio.RioBinaryRdfStorerFactory@708400f6, org.semanticweb.owlapi.rio.RioNQuadsStorerFactory@7c1e2a2d, org.semanticweb.owlapi.rio.RioJsonLDStorerFactory@3cc41abc, org.semanticweb.owlapi.dlsyntax.renderer.DLSyntaxStorerFactory@3b0c9195, org.semanticweb.owlapi.rio.RioTrixStorerFactory@5066d65f, org.semanticweb.owlapi.latex.renderer.LatexStorerFactory@60957c0f, org.semanticweb.owlapi.rdf.turtle.renderer.TurtleStorerFactory@53f0a4cb, org.semanticweb.owlapi.rio.RioTrigStorerFactory@55562aa9]] on method public void uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.setOntologyStorers(java.util.Set).
DEBUG Total number of triples: 601
DEBUG list: <http://purl.obolibrary.org/obo/COB_0000087>
DEBUG list: <http://purl.obolibrary.org/obo/COB_0000078>
DEBUG list: <http://purl.obolibrary.org/obo/BFO_0000040>
DEBUG list: ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0000053> <http://purl.obolibrary.org/obo/COB_0000119>)
DEBUG list: <http://purl.obolibrary.org/obo/COB_0000121>
DEBUG list: <http://purl.obolibrary.org/obo/BFO_0000040>
DEBUG list: ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0000053> <http://purl.obolibrary.org/obo/COB_0000119>)
DEBUG list: ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/IAO_0000136> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/BFO_0000040> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0000053> <http://purl.obolibrary.org/obo/COB_0000119>)))
DEBUG list: ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000066> <http://purl.obolibrary.org/obo/CARO_0001010>)
DEBUG list: ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0000057> <http://purl.obolibrary.org/obo/CARO_0001010>)
DEBUG list: ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0000057> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/CARO_0001010>))
DEBUG list: <http://purl.obolibrary.org/obo/COB_0000073>
DEBUG list: <http://purl.obolibrary.org/obo/GO_0032991>
DEBUG Loaded OntologyID(OntologyIRI(<http://purl.obolibrary.org/obo/cob.owl>) VersionIRI(<http://purl.obolibrary.org/obo/cob/releases/2022-05-02/cob.owl>))
DEBUG Saving ontology as OboGraphs JSON Syntax with to IRI file:/home/harry/kg-obo/data/cob/2022-05-02/cob.json
OBO GRAPH ERROR Could not convert ontology to OBO Graph (see https://github.com/geneontology/obographs)
For details see: http://robot.obolibrary.org/errors#obo-graph-error
java.io.IOException: errors#OBO GRAPH ERROR Could not convert ontology to OBO Graph (see https://github.com/geneontology/obographs)
        at org.obolibrary.robot.IOHelper.saveOntologyFile(IOHelper.java:1722)
        at org.obolibrary.robot.IOHelper.saveOntology(IOHelper.java:846)
        at org.obolibrary.robot.CommandLineHelper.maybeSaveOutput(CommandLineHelper.java:667)
        at org.obolibrary.robot.ConvertCommand.execute(ConvertCommand.java:141)
        at org.obolibrary.robot.CommandManager.executeCommand(CommandManager.java:244)
        at org.obolibrary.robot.CommandManager.execute(CommandManager.java:188)
        at org.obolibrary.robot.CommandManager.main(CommandManager.java:135)
        at org.obolibrary.robot.CommandLineInterface.main(CommandLineInterface.java:61)
caufieldjh commented 2 years ago

This converts, though some labels are lost in the process:

$ robot remove --input /tmp/tmpuvjnf2t0_cob_relaxed.owl --select object-properties --output data/cob/2022-05-02/cob.json