【问题标题】:Jena Fuseki: Adding temporary triples to execution context during SPARQL-query with property functionsJena Fuseki:在使用属性函数的 SPARQL 查询期间将临时三元组添加到执行上下文
【发布时间】:2021-09-26 07:41:39
【问题描述】:

我一直在关注ARQ guide on Property Functions。图操作部分以“因此可以创建新的三元组或图作为属性函数的一部分”结束,我一直希望将其用作将三元组添加到当前查询执行上下文(而不是持久化)的方法,可用于剩余的查询。

我一直在尝试指南中该部分的代码 sn-ps:

DatasetGraph datasetGraph = execCxt.getDataset();

Node otherGraphNode = NodeFactory.createURI("http://example.org/otherGraph");

Graph newGraph = new SimpleGraphMaker().createGraph();

Triple triple = ...
newGraph.add(triple);

datasetGraph.addGraph(otherGraphNode, newGraph);

但我遇到了问题,似乎是读锁。

org.apache.jena.dboe.transaction.txn.TransactionException: Can't become a write transaction
at org.apache.jena.dboe.transaction.txn.Transaction.ensureWriteTxn(Transaction.java:251) ~[fuseki-server.jar:4.2.0]
at org.apache.jena.tdb2.store.StorageTDB.ensureWriteTxn(StorageTDB.java:200) ~[fuseki-server.jar:4.2.0]
at org.apache.jena.tdb2.store.StorageTDB.add(StorageTDB.java:81) ~[fuseki-server.jar:4.2.0]
at org.apache.jena.dboe.storage.system.DatasetGraphStorage.add(DatasetGraphStorage.java:181) ~[fuseki-server.jar:4.2.0]
at org.apache.jena.dboe.storage.system.DatasetGraphStorage.lambda$addGraph$1(DatasetGraphStorage.java:194) ~[fuseki-server.jar:4.2.0]

有没有办法在 SPARQL 查询期间向执行上下文添加三元组?

【问题讨论】:

  • 将整个执行放在一个写事务或“提升”事务中。顺便说一句,在运行查询时更改数据集对于 TDB2 来说并不是一个好主意,而对于通用数据集是可能的。该文档需要修改。

标签: jena fuseki arq


【解决方案1】:

是的,SPARQL Anything 使用该功能在查询时将非 RDF 数据增加三倍,并使其在执行上下文的 DatasetGraph 中可用。

这是一个例子:

                if (this.execCxt.getDataset().isEmpty()) {
                // we only need to call getDatasetGraph() if we have an empty one
                // otherwise we could triplify the same data multiple times
                dg = getDatasetGraph(p, opBGP);
            } else {
                dg = this.execCxt.getDataset();
            }

These lines

此答案可能无法满足您的特定需求(添加单个三元组),但希望项目中的一些代码可以作为您正在寻找的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多