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

[Bug][Corese-docker] Exception thown when sending UPDATE query with OWL RL reasoning #173

Open
MaillPierre opened this issue Feb 12, 2024 · 0 comments

Comments

@MaillPierre
Copy link
Contributor

MaillPierre commented Feb 12, 2024

Issue Description:
When sending an UPDATE Insert query to a corese server with -su and -o options, an exception is thrown but data is still generated.

Bug Details:

The exception signature is always the same :

corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.process:448 [] - process: </rule/owlrl.rul>
corese_1  | Feb 12, 2024 1:06:56 PM fr.inria.corese.core.visitor.solver.QuerySolverVisitorRule create
corese_1  | SEVERE: null
corese_1  | java.lang.ClassNotFoundException: $vis.QuerySolverVisitorRuleUser
corese_1  | 	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
corese_1  | 	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
corese_1  | 	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
corese_1  | 	at java.base/java.lang.Class.forName0(Native Method)
corese_1  | 	at java.base/java.lang.Class.forName(Class.java:315)
corese_1  | 	at fr.inria.corese.core.visitor.solver.QuerySolverVisitorRule.create(QuerySolverVisitorRule.java:145)
corese_1  | 	at fr.inria.corese.core.visitor.solver.QuerySolverVisitorRule.create(QuerySolverVisitorRule.java:136)
corese_1  | 	at fr.inria.corese.core.rule.RuleEngine.beforeProcess(RuleEngine.java:500)
corese_1  | 	at fr.inria.corese.core.rule.RuleEngine.process(RuleEngine.java:449)
corese_1  | 	at fr.inria.corese.core.rule.RuleEngine.process(RuleEngine.java:439)
corese_1  | 	at fr.inria.corese.core.Workflow.run(Workflow.java:113)
corese_1  | 	at fr.inria.corese.core.Workflow.process(Workflow.java:70)
corese_1  | 	at fr.inria.corese.core.Graph.process(Graph.java:777)
corese_1  | 	at fr.inria.corese.core.Graph.init(Graph.java:1115)
corese_1  | 	at fr.inria.corese.core.EventManager.start(EventManager.java:155)
corese_1  | 	at fr.inria.corese.core.query.ProducerImpl.start(ProducerImpl.java:748)
corese_1  | 	at fr.inria.corese.kgram.core.Eval.queryBasic(Eval.java:208)
corese_1  | 	at fr.inria.corese.kgram.core.Eval.query(Eval.java:199)
corese_1  | 	at fr.inria.corese.compiler.eval.QuerySolver.query(QuerySolver.java:335)
corese_1  | 	at fr.inria.corese.core.query.QueryProcess.basicQuery(QueryProcess.java:988)
corese_1  | 	at fr.inria.corese.core.query.update.UpdateProcess.update(UpdateProcess.java:236)
corese_1  | 	at fr.inria.corese.core.query.update.UpdateProcess.process(UpdateProcess.java:171)
corese_1  | 	at fr.inria.corese.core.query.update.UpdateProcess.update(UpdateProcess.java:113)
corese_1  | 	at fr.inria.corese.core.query.QueryProcessUpdate.update(QueryProcessUpdate.java:118)
corese_1  | 	at fr.inria.corese.core.query.QueryProcessUpdate.synchronizedUpdate(QueryProcessUpdate.java:77)
corese_1  | 	at fr.inria.corese.core.query.QueryProcessUpdate.synUpdate(QueryProcessUpdate.java:59)
corese_1  | 	at fr.inria.corese.core.query.QueryProcess.basicQueryProcess(QueryProcess.java:791)
corese_1  | 	at fr.inria.corese.core.query.QueryProcess.basicQuery(QueryProcess.java:760)
corese_1  | 	at fr.inria.corese.core.query.QueryProcess.query(QueryProcess.java:546)
corese_1  | 	at fr.inria.corese.core.query.QueryProcess.doQuery(QueryProcess.java:542)
corese_1  | 	at fr.inria.corese.core.query.QueryProcess.query(QueryProcess.java:508)
corese_1  | 	at fr.inria.corese.core.query.QueryProcess.query(QueryProcess.java:512)
corese_1  | 	at fr.inria.corese.server.webservice.TripleStore.query(TripleStore.java:219)
corese_1  | 	at fr.inria.corese.server.webservice.SPARQLResult.getResultFormat(SPARQLResult.java:102)
corese_1  | 	at fr.inria.corese.server.webservice.SPARQLRestAPI.getResultFormat(SPARQLRestAPI.java:331)
corese_1  | 	at fr.inria.corese.server.webservice.SPARQLRestAPI.myGetResult(SPARQLRestAPI.java:345)
corese_1  | 	at fr.inria.corese.server.webservice.SPARQLRestAPI.getResultForPost(SPARQLRestAPI.java:358)
corese_1  | 	at fr.inria.corese.server.webservice.SPARQLRestAPI.getRDFGraphJsonLDForPost(SPARQLRestAPI.java:857)
corese_1  | 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
corese_1  | 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
corese_1  | 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
corese_1  | 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
corese_1  | 	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
corese_1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
corese_1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
corese_1  | 	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
corese_1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
corese_1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475)
corese_1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397)
corese_1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
corese_1  | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)
corese_1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
corese_1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
corese_1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
corese_1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
corese_1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
corese_1  | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
corese_1  | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)
corese_1  | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
corese_1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
corese_1  | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
corese_1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
corese_1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311)
corese_1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
corese_1  | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
corese_1  | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
corese_1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
corese_1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1382)
corese_1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
corese_1  | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
corese_1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
corese_1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1304)
corese_1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
corese_1  | 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:192)
corese_1  | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
corese_1  | 	at org.eclipse.jetty.server.Server.handle(Server.java:563)
corese_1  | 	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
corese_1  | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
corese_1  | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
corese_1  | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
corese_1  | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
corese_1  | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
corese_1  | 	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
corese_1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)
corese_1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)
corese_1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
corese_1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:194)
corese_1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:936)
corese_1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1080)
corese_1  | 	at java.base/java.lang.Thread.run(Thread.java:834)
corese_1  | 
corese_1  | 2024-02-12 13:06:56 ERROR solver.QuerySolverVisitorRule.create:155 [] - Undefined Visitor: $vis.QuerySolverVisitorRuleUser
corese_1  | DataBrokerConstruct startRuleEngine
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.beforeClean:347 [] - Before clean graph size: 4
corese_1  | Clean: 0.021
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.afterClean:353 [] - After clean graph size: 4
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.infer:813 [] - loop: 0
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.infer:828 [] - rules: 72
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.infer:813 [] - loop: 1
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.infer:828 [] - rules: 72
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.infer:813 [] - loop: 2
corese_1  | 2024-02-12 13:06:56 INFO  rule.RuleEngine.infer:828 [] - rules: 72

Steps to Reproduce:
The bug_minimal.zip file contains code based on the corese docker image to reproduce the bug. The example is launched using the run.sh script
It loads a minimal ontology:

@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcmitype: <http://purl.org/dc/dcmitype/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix schema: <http://schema.org/> .
@prefix sd: <http://www.w3.org/ns/sparql-service-description#> .
@prefix void: <http://rdfs.org/ns/void#> .

dcat:Dataset owl:equivalentClass schema:Dataset ,
    dcmitype:Dataset ,
    void:Dataset ,        
    sd:Dataset .

and sends the following query:

PREFIX dcat: <http://www.w3.org/ns/dcat#>
PREFIX kgi: <http://ns.inria.fr/kg/index#>

INSERT DATA {
    kgi:Dataset a dcat:Dataset .
}

Note to Developers:

I haven't noted any missing triples, but the exception is throwing with any INSERT query done in these conditions.

@MaillPierre MaillPierre changed the title [Bug] Exception thown when sending UPDATE query with OWL RL reasoning [Bug][Corese-docker] Exception thown when sending UPDATE query with OWL RL reasoning Feb 13, 2024
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

1 participant