rsp4j icon indicating copy to clipboard operation
rsp4j copied to clipboard

Exception when trying to use CSPARQLEngineRSP4J with Jena related objects

Open rahuldh2006 opened this issue 4 years ago • 3 comments

In RSP4J, when I try to use CSPARQLEngineRSP4J with Jena related objects (for example, JenaRDFParsingStrategy), I get below exception.

Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.Object org.apache.jena.atlas.lib.Cache.getIfPresent(java.lang.Object)'

Code fragment :

CSPARQLEngineRSP4J csparql = new CSPARQLEngineRSP4J();

JenaRDFParsingStrategy parsingStrategy = new JenaRDFParsingStrategy(RDFBase.TTL);

String filePath = "stream.log"; FileSource<Graph> fileSource = new FileSource<Graph>(filePath, 100, parsingStrategy); csparql.register(fileSource);

DataStream<Binding> outputStream = new DataStreamImpl<>("http://out/stream"); csparql.setSelectOutput(outputStream);

ContinuousQuery<Graph, Graph, Binding, Binding> cq = csparql.parseCSPARQLSelect(some_query); ContinuousQueryExecution<Graph, Graph, Binding, Binding> cqe = csparql.parseSelect(cq);

fileSource.stream();

Note that CQELSEngineRSP4J works fine with Jena related objects in RSP4J.

rahuldh2006 avatar Nov 04 '21 13:11 rahuldh2006

Hi rahuldh2006,

Thanks for spotting this error. This is due to the fact that the the CSPARQL engine is using an old version of Apache Jena, which is much older than the one in RSP4J.

For now, I would suggest you to use the more recent CSPARQL2.0 library: https://github.com/streamreasoning/csparql2 It is also build on top op RSP4J.

Or do you want to specifically use CSPARQL1.0?

pbonte avatar Nov 04 '21 13:11 pbonte

Thanks for the prompt information, Pieter. I will use CSPARQL2.0 library with RSP4J.

What is the Maven dependency to be included in RSP4J pom for CSPARQL2.0 (like for CSPARQL 1.0 in RSP4J, it is as below) " <groupId>com.github.pbonte</groupId> <artifactId>CSPARQL-engine</artifactId> 0.9.5.1-pomfix "

rahuldh2006 avatar Nov 04 '21 15:11 rahuldh2006

You can use CSPARQL2.0 using the following maven dependency:

<dependency>
    <groupId>com.github.streamreasoning</groupId>
    <artifactId>csparql2</artifactId>
    <version>2.0</version>
</dependency>

pbonte avatar Nov 08 '21 08:11 pbonte