- From: Daniel Hernandez <daniel@degu.cl>
- Date: Mon, 06 Dec 2021 09:23:53 +0100
- To: public-rdf-ruby@w3.org
Daniel Hernandez <daniel@degu.cl> writes: > I followed your sugestion, but I had the same issue. To make the issue > reproducible, I published the code in: > > https://github.com/danielhz/test-OpAsQuery > > Daniel The code works inside vscode, but not with the jar. So, I guess that it is an issue in the way I am creating the jar file. I am going to review the pom file, because it could be a problem with managing dependencies. Daniel > Andy Seaborne <andy@seaborne.org> writes: > >> Works for me in a single file but it looks like missed initialization >> or in the wrong order and Java is complicated in the os static class >> initialization. >> >> Could you try with >> >> public static void main( String[] args ) { >> JenaSystem.init(); >> .... >> } >> >> please >> >> Andy >> >> On 05/12/2021 19:39, Daniel Hernandez wrote: >>> Hi Andy, >>> Andy Seaborne <andy@seaborne.org> writes: >>>> Jena tries to - it's quite pragmatic: >>>> >>>> https://github.com/apache/jena/blob/main/jena-arq/src/main/java/org/apache/jena/sparql/algebra/OpAsQuery.java >>>> >>>> Andy >>> When I was reviewing the OpAsQuery implementaion in Jena, and I had >>> a >>> problem: It works with some S-expressions, but fails with others. My >>> testing code includes the following files: >>> File 1: >>> package cl.degu.sparql; >>> import org.apache.jena.query.Query; >>> import org.apache.jena.sparql.algebra.OpAsQuery; >>> import org.apache.jena.sparql.algebra.Algebra; >>> public class SSEtoSPARQL { >>> public static Query translate(String sse) { >>> return OpAsQuery.asQuery(Algebra.parse(sse)); >>> } >>> } >>> FILE 2: >>> package cl.degu.sparql; >>> public class App >>> { >>> public static void main( String[] args ) >>> { >>> String sse; >>> // First example >>> sse = "(project ?s (bgp (triple ?s ?p ?c)))"; >>> System.out.println(SSEtoSPARQL.translate(sse)); >>> // Second example >>> sse = "(project ?s (bgp (triple ?s <http://example.org> ?c)))"; >>> System.out.println(SSEtoSPARQL.translate(sse)); >>> } >>> } >>> The first example works, but the second example produces an >>> error. The >>> output of the main function is the following: >>> SELECT ?s >>> WHERE >>> { ?s ?p ?c } >>> Exception in thread "main" java.lang.ExceptionInInitializerError >>> at org.apache.jena.sparql.sse.lang.ParseHandlerPlain.emitIRI(ParseHandlerPlain.java:165) >>> at org.apache.jena.sparql.sse.lang.ParseHandlerResolver.emitIRI(ParseHandlerResolver.java:150) >>> at org.apache.jena.sparql.sse.lang.ParserSSEBase.emitIRI(ParserSSEBase.java:46) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.IRIref(SSE_ParserCore.java:277) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.RDFTerm(SSE_ParserCore.java:230) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.Term(SSE_ParserCore.java:217) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.TermOrList(SSE_ParserCore.java:62) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.BareList(SSE_ParserCore.java:194) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.List(SSE_ParserCore.java:108) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.TermOrList(SSE_ParserCore.java:80) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.BareList(SSE_ParserCore.java:194) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.List(SSE_ParserCore.java:108) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.TermOrList(SSE_ParserCore.java:80) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.BareList(SSE_ParserCore.java:194) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.List(SSE_ParserCore.java:108) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.TermOrList(SSE_ParserCore.java:80) >>> at org.apache.jena.sparql.sse.lang.parser.SSE_ParserCore.parse(SSE_ParserCore.java:34) >>> at org.apache.jena.sparql.sse.lang.SSE_Parser.parse$(SSE_Parser.java:47) >>> at org.apache.jena.sparql.sse.lang.SSE_Parser.parse(SSE_Parser.java:40) >>> at org.apache.jena.sparql.sse.SSE.parse(SSE.java:452) >>> at org.apache.jena.sparql.sse.SSE.parse(SSE.java:373) >>> at org.apache.jena.sparql.sse.SSE.parse(SSE.java:368) >>> at org.apache.jena.sparql.algebra.Algebra.parse(Algebra.java:107) >>> at cl.degu.sparql.SSEtoSPARQL.translate(SSEtoSPARQL.java:9) >>> at cl.degu.sparql.App.main(App.java:16) >>> Caused by: java.lang.NullPointerException >>> at org.apache.jena.query.ARQ.isTrueOrUndef(ARQ.java:654) >>> at org.apache.jena.riot.system.RiotLib.<clinit>(RiotLib.java:59) >>> ... 25 more >>> I included Jena into the project with the following dependency: >>> <dependency> >>> <groupId>org.apache.jena</groupId> >>> <artifactId>apache-jena-libs</artifactId> >>> <version>4.2.0</version> >>> <type>pom</type> >>> </dependency> >>> >>> Daniel >>>
Received on Monday, 6 December 2021 08:24:16 UTC