Hello, I tried to access TDB via SPARQL. However following query always throws a TDBTransactionException: Not in a transaction. ``` PREFIX kg:<%s> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?entityUri ?name ?unit WHERE { ?entityUri rdf:type kg:AtomicMetric. ?entityUri kg:Name ?name. OPTIONAL { ?entityUri kg:Unit ?unit } }
``` After several tries, I found that rdf namespace and `OPTIONAL` cannot appear simultaneously. And any modification on "http://www.w3.org/1999/02/22-rdf-syntax-ns#" will solve the problem. I use Jena 3.5 and I found 3.6 also has this problom. Following is the stacktrace. ``` org.apache.jena.tdb.transaction.TDBTransactionException: Not in a transaction at org.apache.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:117) at org.apache.jena.tdb.transaction.DatasetGraphTransaction.getDatasetGraphToQuery(DatasetGraphTransaction.java:80) at org.apache.jena.tdb.store.GraphTxnTDB.getDatasetGraphTDB(GraphTxnTDB.java:49) at org.apache.jena.tdb.store.GraphTDB.getNodeTupleTable(GraphTDB.java:74) at org.apache.jena.tdb.solver.SolverLib.execute(SolverLib.java:66) at org.apache.jena.tdb.solver.StageGeneratorDirectTDB.execute(StageGeneratorDirectTDB.java:56) at org.apache.jena.tdb2.solver.StageGeneratorDirectTDB.execute(StageGeneratorDirectTDB.java:53) at org.apache.jena.sparql.engine.main.OpExecutor.execute(OpExecutor.java:128) at org.apache.jena.sparql.engine.main.ExecutionDispatch.visit(ExecutionDispatch.java:58) at org.apache.jena.sparql.algebra.op.OpBGP.visit(OpBGP.java:49) at org.apache.jena.sparql.engine.main.ExecutionDispatch.exec(ExecutionDispatch.java:46) at org.apache.jena.sparql.engine.main.OpExecutor.exec(OpExecutor.java:117) at org.apache.jena.sparql.engine.main.OpExecutor.execute(OpExecutor.java:88) at org.apache.jena.sparql.engine.main.QC.execute(QC.java:52) at org.apache.jena.sparql.engine.main.iterator.QueryIterOptionalIndex.nextStage(QueryIterOptionalIndex.java:51) at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:108) at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65) at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) at org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:58) at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39) at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39) at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) at org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74) at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55) at com.quantchi.intelquery.etl.LtpDict.getEntityFromTdb(LtpDict.java:87) ``` Thanks for your help. Let me know if you need any other infomation. Best regards. ------------------ Wang Tonghe
