Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't Open SPARQL Query Tab #21

Open
mdebellis opened this issue Jul 12, 2019 · 2 comments
Open

Can't Open SPARQL Query Tab #21

mdebellis opened this issue Jul 12, 2019 · 2 comments

Comments

@mdebellis
Copy link

I’m using Protégé Version 5.5.0 memory set to 444 MB Currently using 385 MB (this is after attempting to open the SPARQL tab). Using the Pellet reasoner.
Running on Windows 10 Home Version 1809.

Note: I tried attaching the problem ontology to this bug report by dragging it as suggested but I got the message: "We don't support that file type. Try again with a GIF, JPEG, ..." I'm going to contact the Protege list to see how to send the ontology.

When loading Protégé I get what I always assumed were minor warnings such as:
“WARN 10:08:17 Extension point not defined: SWRLBuiltInLibraryFactoryPlugin@org.protege.editor.owl
I get these before I load any ontology. There are about 4 warnings like this in the log when Protégé starts, before loading an ontology. I don't think those are serious or related to the issue but wanted to include them just in case.

Then I load the AccountOntology and there are no warnings. I run the reasoner and again no errors or warnings and it classifies the Accounts as we expect.
Then I click on the SPQRQL Query tab and I get a blank screen. The normal default example query is not there. In the past an error message was displayed but this time (I made some minor changes to the ontology since the last time) I just get the blank screen. Protégé is still usable, it just takes a while for it to come back. The log has the following errors:
ERROR 10:14:24 Uncaught Exception in thread 'AWT-EventQueue-0'
java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.protege.owl.rdf.impl.OwlTripleStoreImpl.getNamedOntologyRepresentative(OwlTripleStoreImpl.java:410) ~[na:na]
at org.protege.owl.rdf.impl.OwlTripleStoreImpl.getOntologyRepresentative(OwlTripleStoreImpl.java:393) ~[na:na]
at org.protege.owl.rdf.impl.OwlTripleStoreImpl.getAxiomId(OwlTripleStoreImpl.java:194) ~[na:na]
at org.protege.owl.rdf.impl.OwlTripleStoreImpl.addAxiom(OwlTripleStoreImpl.java:96) ~[na:na]
at org.protege.owl.rdf.Utilities.loadOwlTripleStore(Utilities.java:48) ~[na:na]
at org.protege.owl.rdf.Utilities.getOwlTripleStore(Utilities.java:32) ~[na:na]
at org.protege.editor.owl.rdf.repository.BasicSparqlReasoner.precalculate(BasicSparqlReasoner.java:54) ~[na:na]
at org.protege.editor.owl.rdf.SparqlQueryView.initializeReasoner(SparqlQueryView.java:34) ~[na:na]
at org.protege.editor.owl.rdf.SparqlQueryView.initialiseOWLView(SparqlQueryView.java:24) ~[na:na]
at org.protege.editor.owl.ui.view.AbstractOWLViewComponent.initialise(AbstractOWLViewComponent.java:43) ~[na:na]
at org.protege.editor.core.ui.view.View.createContent(View.java:413) ~[na:na]
at org.protege.editor.core.ui.view.View.createUI(View.java:220) ~[na:na]
at org.protege.editor.core.ui.view.View$1.hierarchyChanged(View.java:124) ~[na:na]
at java.awt.Component.processHierarchyEvent(Component.java:6700) ~[na:1.8.0_121]
at java.awt.Component.processEvent(Component.java:6319) ~[na:1.8.0_121]
at java.awt.Container.processEvent(Container.java:2236) ~[na:1.8.0_121]
at java.awt.Component.dispatchEventImpl(Component.java:4889) ~[na:1.8.0_121]
at java.awt.Container.dispatchEventImpl(Container.java:2294) ~[na:1.8.0_121]
at java.awt.Component.dispatchEvent(Component.java:4711) ~[na:1.8.0_121]
at java.awt.Component.createHierarchyEvents(Component.java:5549) ~[na:1.8.0_121]
at java.awt.Container.createHierarchyEvents(Container.java:1445) ~[na:1.8.0_121]
at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
at java.awt.Component.show(Component.java:1639) ~[na:1.8.0_121]
at java.awt.Component.show(Component.java:1671) ~[na:1.8.0_121]
at java.awt.Component.setVisible(Component.java:1623) ~[na:1.8.0_121]
at javax.swing.JComponent.setVisible(JComponent.java:2644) ~[na:1.8.0_121]
at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:394) ~[na:1.8.0_121]
at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:270) ~[na:1.8.0_121]
at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132) ~[na:1.8.0_121]

@csnyulas
Copy link
Member

csnyulas commented Jul 12, 2019

To attached ontologies (or other files with unsupported extension) you should zip them first, and github will accept it. However, we got the sample ontology that you sent us offline, and we will take a look as soon as we will have time.

In the meantime, can you try increasing the memory to say 1GB or 1.5GB, to see if the problem still persists? To me 385MB sound pretty close to 444MB max heap size, and I can easily imagine that when the SPARQL Query plug-in tries to build an in memory RDF model, to be queried with SPARQL, it runs out of memory.

@LorenzBuehmann
Copy link

LorenzBuehmann commented Jul 13, 2019

Besides the low amount of memory assigned to Protege (I usually use at least Xmx2G, memory isn't that expensive nowadays :D), I also think that the initialization of the SPARQL query tab translates all OWL axioms into Sesame datastructures not that efficiently, see OWLTripleStoreImpl::addAxiom
in which RDFTranslator::translate is called.

In fact, for every single axiom lots of objects are created, which I think is unnecessary and a batch operation would more efficient here.

What do you think?

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

No branches or pull requests

3 participants