phenoscape / owlery

Owlery is a set of REST web services which allow querying of an OWL reasoner containing a configured set of ontologies.
MIT License
16 stars 11 forks source link

Feature Request: support gzipped ontologies #19

Closed Robbie1977 closed 6 years ago

Robbie1977 commented 6 years ago

We've been forced towards .owl.gz files due to size and most OWL tools support this so it would be good for owlery to also support this. Test:

[DEBUG] [05/31/2018 16:26:36.746] [main] [EventStream(akka://owlery-system)] logger log1-Logging$DefaultLogger started
[DEBUG] [05/31/2018 16:26:36.746] [main] [EventStream(akka://owlery-system)] Default Loggers started
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.phenoscape.owlery.Main$.initializeReasoners(Main.scala:77)
    at org.phenoscape.owlery.Main$.delayedEndpoint$org$phenoscape$owlery$Main$1(Main.scala:79)
    at org.phenoscape.owlery.Main$delayedInit$body.apply(Main.scala:32)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at org.phenoscape.owlery.Main$.main(Main.scala:32)
    at org.phenoscape.owlery.Main.main(Main.scala)
Caused by: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing https://github.com/VirtualFlyBrain/VFB_owl/blob/scala-dev/src/owl/vfb.owl.gz?raw=true
Could not parse ontology.  Either a suitable parser could not be found, or parsing failed.  See parser logs below for explanation.
The following parsers were tried:
1) RDFXMLParser
2) OWLXMLParser
3) OWLFunctionalSyntaxOWLParser
4) TurtleOntologyParser
5) KRSS2OWLParser
6) ManchesterOWLSyntaxOntologyParser
7) OBOFormatOWLAPIParser
Detailed logs:
--------------------------------------------------------------------------------
Parser: RDFXMLParser
org.xml.sax.SAXParseException; systemId: https://github.com/VirtualFlyBrain/VFB_owl/blob/scala-dev/src/owl/vfb.owl.gz?raw=true; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
--------------------------------------------------------------------------------
Parser: OWLXMLParser
org.xml.sax.SAXParseException; systemId: https://github.com/VirtualFlyBrain/VFB_owl/blob/scala-dev/src/owl/vfb.owl.gz?raw=true; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
--------------------------------------------------------------------------------
Parser: OWLFunctionalSyntaxOWLParser
Encountered " <ERROR> "\u001f "" at line 1, column 1.
Was expecting:
    "Ontology" ...
     (Line 0)
--------------------------------------------------------------------------------
Parser: TurtleOntologyParser
uk.ac.manchester.cs.owl.owlapi.turtle.parser.ParseException: Encountered "" at line 1, column 1.
Was expecting one of:

--------------------------------------------------------------------------------
Parser: KRSS2OWLParser
de.uulm.ecs.ai.owlapi.krssparser.ParseException: Encountered " <ERROR> "\u001f "" at line 1, column 1.
Was expecting:
    <EOF> 

--------------------------------------------------------------------------------
Parser: ManchesterOWLSyntaxOntologyParser
Encountered �[vfb.owl�=is�8���W�y��������!�pf��#�j7�S�'o��n� ���H' at line 1 column 2.  Expected either 'Ontology:' or 'Prefix:' (Line 1)
--------------------------------------------------------------------------------
Parser: OBOFormatOWLAPIParser
LINENO: 1 - Could not find tag separator ':' in line.
LINE: �[vfb.owl�=is�8���W�y������!�pf��#�j7�S�'o��n� ���H
    at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:246)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:868)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:779)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:736)
    at org.phenoscape.owlery.Owlery$.loadOntologyFromWeb(Owlery.scala:74)
    at org.phenoscape.owlery.Owlery$.org$phenoscape$owlery$Owlery$$loadKnowledgebase(Owlery.scala:61)
    at org.phenoscape.owlery.Owlery$$anonfun$loadKnowledgebases$1.apply(Owlery.scala:58)
    at org.phenoscape.owlery.Owlery$$anonfun$loadKnowledgebases$1.apply(Owlery.scala:58)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
    at scala.collection.immutable.Set$Set1.foreach(Set.scala:79)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
    at scala.collection.AbstractSet.scala$collection$SetLike$$super$map(Set.scala:47)
    at scala.collection.SetLike$class.map(SetLike.scala:92)
    at scala.collection.AbstractSet.map(Set.scala:47)
    at org.phenoscape.owlery.Owlery$.loadKnowledgebases(Owlery.scala:58)
    at org.phenoscape.owlery.Owlery$.<init>(Owlery.scala:28)
    at org.phenoscape.owlery.Owlery$.<clinit>(Owlery.scala)
    ... 12 more
matentzn commented 6 years ago

@balhoff What version of the OWLAPI are you using? Which ontologymanager loading method? OWL API 4.5 and upwards usually should not have a problem with opening gz streams. I think.

balhoff commented 6 years ago

Not been updated for a while:

https://github.com/phenoscape/owlery/blob/eb1bd4d89ae4224f7082799902eea8207bf8576e/build.sbt#L35