Hi,
1) Are you sure the placeholder substitution is coorect in : PREFIX
kg:<%s> ? (print out the query string after substitution)
2) in which case is your code failing , modelUri null or modelUri not
null ?
Are you switching between a named graph and the default model ?
Is this a in memory dataset or not ? If not check for a .lock file in
your data directory.
Marc
Le mercredi 27 décembre 2017 à 10:42 +0800, hetong583 a écrit :
> Yes, this is my execution function
> ```
> public ResultSet execSelect(String queryStr) {
> ds.begin(ReadWrite.READ);
> try {
> Query query = QueryFactory.create(queryStr);
> QueryExecution qexec;
> if (modelUri != null) {
> qexec = QueryExecutionFactory.create(query,
> ds.getNamedModel(modelUri));
> } else {
> qexec = QueryExecutionFactory.create(query, ds);
> }
> return qexec.execSelect();
> } catch (Exception e) {
> logger.error(e.getMessage(), e);
> } finally {
> ds.end();
> }
> return null;
> }
>
>
>
> ```
>
>
> ------------------
> Wang Tonghe
>
>
>
>
>
>
>
> ------------------ Original ------------------
> From: "Marc Agate";<[email protected]>;
> Date: Wed, Dec 27, 2017 10:35 AM
> To: "users"<[email protected]>;
>
> Subject: Re: RDF namespace is not compatible with OPTIONAL in ARQ
>
>
>
> Hi!
>
> Did you first start the transaction with
> yourdataset.begin(ReadWrite.READ) ?
>
> Marc
>
> Le mercredi 27 décembre 2017 à 10:24 +0800, hetong583 a écrit :
> > 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/1
> > 99
> > 9/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(Dataset
> > Gr
> > aphTransaction.java:117)
> > at
> > org.apache.jena.tdb.transaction.DatasetGraphTransaction.getDatasetG
> > ra
> > phToQuery(DatasetGraphTransaction.java:80)
> > at
> > org.apache.jena.tdb.store.GraphTxnTDB.getDatasetGraphTDB(GraphTxnTD
> > B.
> > 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(StageGen
> > er
> > atorDirectTDB.java:56)
> > at
> > org.apache.jena.tdb2.solver.StageGeneratorDirectTDB.execute(StageGe
> > ne
> > ratorDirectTDB.java:53)
> > at
> > org.apache.jena.sparql.engine.main.OpExecutor.execute(OpExecutor.ja
> > va
> > :128)
> > at
> > org.apache.jena.sparql.engine.main.ExecutionDispatch.visit(Executio
> > nD
> > ispatch.java:58)
> > at org.apache.jena.sparql.algebra.op.OpBGP.visit(OpBGP.java:49)
> > at
> > org.apache.jena.sparql.engine.main.ExecutionDispatch.exec(Execution
> > Di
> > spatch.java:46)
> > at
> > org.apache.jena.sparql.engine.main.OpExecutor.exec(OpExecutor.java:
> > 11
> > 7)
> > at
> > org.apache.jena.sparql.engine.main.OpExecutor.execute(OpExecutor.ja
> > va
> > :88)
> > at org.apache.jena.sparql.engine.main.QC.execute(QC.java:52)
> > at
> > org.apache.jena.sparql.engine.main.iterator.QueryIterOptionalIndex.
> > ne
> > xtStage(QueryIterOptionalIndex.java:51)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNex
> > tS
> > tage(QueryIterRepeatApply.java:108)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNext
> > Bi
> > nding(QueryIterRepeatApply.java:65)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Qu
> > er
> > yIteratorBase.java:114)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBind
> > in
> > g(QueryIterConvert.java:58)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Qu
> > er
> > yIteratorBase.java:114)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNext
> > Bi
> > nding(QueryIteratorWrapper.java:39)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Qu
> > er
> > yIteratorBase.java:114)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNext
> > Bi
> > nding(QueryIteratorWrapper.java:39)
> > at
> > org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Qu
> > er
> > yIteratorBase.java:114)
> > at
> > org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStre
> > am
> > .java:74)
> > at
> > org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(Resul
> > tS
> > etCheckCondition.java:55)
> > at
> > com.quantchi.intelquery.etl.LtpDict.getEntityFromTdb(LtpDict.java:8
> > 7)
> >
> > ```
> >
> >
> > Thanks for your help. Let me know if you need any other
> > infomation.
> > Best regards.
> >
> >
> >
> >
> > ------------------
> > Wang Tonghe