Hi, We are trying to ask a remote marmotta 3.3.0 triplestore using sparql requests. In order to do that, we tried to use kiwi-triplestore and kiwi-sparql to get connection.
However,when we retieved the kiwi-triplestore 3.3.0 version, eclipse found an error in KiWiConnection class. It seems that the createCachKey function in LiteralsCommons class ask a Local type parameter instead of a null parameter cast into string which is used. We also noticed that when we try to send a sparql request with clauses like PREFIX, we get a NullPointerException in SQLBuilder.buildWhereClause() from kiwi-sparql. In fact when the program try to retrieve SQLVariable sv from variables attribute, it ask for a key like "-const-2" which does not exist. I tried to add test on sv to execute the rest of the code only when sv is not null and it seems to solve the problem. Are these problems come from code errors or did we make mistakes when we retieved the project? When we try to execute the following sparql request, we also got an error. Do you have any idea of the problem source? PREFIX webdrone:<url> PREFIX xsd:<http://www.w3.org/2001/XMLSchema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT * FROM <graph> WHERE { {?a rdf:type webdrone:typeA1 .} UNION {?a rdf:type webdrone:typeA2 .} OPTIONAL { ?a webdrone:prop1 ?att1 . } OPTIONAL { ?a webdrone:prop2 ?b . } FILTER NOT EXISTS { ?a webdrone:prop3 webdrone:att3 . } . OPTIONAL { ?a webdrone:prop4 ?att4a . } OPTIONAL { ?b webdrone:prop4 ?att4b . } FILTER((!bound(?att4a) || ?att4a !=\"false\"^^xsd:boolean) && (!bound(?att4b) || ?att4b !=\"false\"^^xsd:boolean)) } org.openrdf.query.QueryEvaluationException: org.postgresql.util.PSQLException: ERREUR: erreur de syntaxe sur ou près de « FROM » Position : 889 at org.openrdf.repository.sail.SailTupleQuery.evaluate(SailTupleQuery.java:67) at fr.webdrone.api.db.triplestore.dao.TestKiWiSparql.execSelectSparql(TestKiWiSparql.java:152) at fr.webdrone.api.db.triplestore.dao.TestKiWiSparql.main(TestKiWiSparql.java:84) Caused by: org.openrdf.sail.SailException: org.postgresql.util.PSQLException: ERREUR: erreur de syntaxe sur ou près de « FROM » Position : 889 at org.apache.marmotta.kiwi.sparql.sail.KiWiSparqlSailConnection.evaluate(KiWiSparqlSailConnection.java:96) at org.openrdf.repository.sail.SailTupleQuery.evaluate(SailTupleQuery.java:60) ... 2 more Caused by: org.openrdf.query.QueryEvaluationException: org.postgresql.util.PSQLException: ERREUR: erreur de syntaxe sur ou près de « FROM » Position : 889 at org.apache.marmotta.kiwi.sparql.evaluation.KiWiEvaluationStrategyImpl.evaluateNative(KiWiEvaluationStrategyImpl.java:222) at org.apache.marmotta.kiwi.sparql.evaluation.KiWiEvaluationStrategyImpl.evaluate(KiWiEvaluationStrategyImpl.java:178) at org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl.evaluate(EvaluationStrategyImpl.java:583) at org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl.evaluate(EvaluationStrategyImpl.java:197) at org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl.evaluate(EvaluationStrategyImpl.java:662) at org.apache.marmotta.kiwi.sparql.evaluation.KiWiEvaluationStrategyImpl.evaluate(KiWiEvaluationStrategyImpl.java:123) at org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl.evaluate(EvaluationStrategyImpl.java:577) at org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl.evaluate(EvaluationStrategyImpl.java:197) at org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl.evaluate(EvaluationStrategyImpl.java:607) at org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl.evaluate(EvaluationStrategyImpl.java:197) at org.apache.marmotta.kiwi.sparql.sail.KiWiSparqlSailConnection.evaluate(KiWiSparqlSailConnection.java:93) ... 3 more Caused by: org.postgresql.util.PSQLException: ERREUR: erreur de syntaxe sur ou près de « FROM » Position : 889 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:560) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302) at org.apache.marmotta.kiwi.sparql.persistence.KiWiSparqlConnection$1.call(KiWiSparqlConnection.java:101) at org.apache.marmotta.kiwi.sparql.persistence.KiWiSparqlConnection$1.call(KiWiSparqlConnection.java:1) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:744) Regards, Lucas WAGNER