streamreasoning / rsp4j

RSP4J a library for RDF Stream Processing
Apache License 2.0
32 stars 12 forks source link

Exception when trying to use CSPARQLEngineRSP4J with Jena related objects #13

Open rahuldh2006 opened 3 years ago

rahuldh2006 commented 3 years ago

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 fileSource = new FileSource(filePath, 100, parsingStrategy); csparql.register(fileSource);

DataStream 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.

pbonte commented 3 years ago

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?

rahuldh2006 commented 3 years ago

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) "

com.github.pbonte
        <artifactId>CSPARQL-engine</artifactId>
        <version>0.9.5.1-pomfix</version>
    </dependency>"
pbonte commented 3 years ago

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

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