问题标签 [tdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
348 浏览

java - JenaTransactionException: Currently in a transaction (location:/pathtodb/)

I am creating an application backend as with RDF Database.

I am using Jena TDB as backend. I am getting this exception

Here is my code in this method exception occurs i have marked it with comments-

datasetManager.getDs() method -

getOntModel() method -

createAdminData method -

again in createAllOntClasses() and createAllProperties(); i am creating some ontclasses and properties using ontModel.

As you can see in getDs() method i have created a write transaction and i have also included end transaction(ds.end()). and all the db writing part in getOntModel() method is being reflected in database i checked it in fuseki. and after that i am creating a read transaction and it's throwing this exception.

Please help to identify the problem. Also if you have a better way to deal with such scenario like initializing db at context startup in spring mvc.

0 投票
0 回答
137 浏览

jena - 如何编写使用我的架构的 Fuseki 配置

我有个问题。

我有两个文件:一个带有数据的模型文件和一个带有架构的 OntModel。我已将这些文件存储在本文中所述的 Jena TDB 中:如何将 Fuseki 与 Jena TDB 一起使用

我的问题是:将我的模式存储在 Jena TDB 中是否正确?我在这篇文章中读到了一个类似的问题:Load OWL schema into triple-store like Fuskei/TDB?

写在哪里

“架构是数据。您可以像加载数据一样加载它们。如果您想要基于架构进行推理,则无需加载它 - 您需要编写一个 Fuseki 配置,该配置将您的架构与 Jena 等推理引擎一起使用规则。”

如何编写一个 Fuseki 配置,将我的模式与 Jena 规则等推理引擎一起使用?

0 投票
1 回答
578 浏览

java - 查询 Jena TDB 存储

我正在尝试在 java 中查询 jena TDB。我的代码如下。我的 TDB 数据集似乎是空的,因为model.size()model数据集默认模型在哪里)返回 0。不过,我确定它不为空,因为我可以使用 sparqlEndpoint 使用 Fuseki 查询它。

0 投票
1 回答
824 浏览

sparql - Jena TDB 原因后更新

我正在使用 Jena,我想将新的本体更新到我的 tdb 中。例如。我的本体中有 100 行,在我添加一些规则并运行推理器后,现在有 105 行。而且我需要在我的 tdb 中更新这 5 个额外的行。我怎样才能做到这一点?

我尝试用谷歌搜索它,我发现了两种方法。一个是使用 sparql 来更新,另一个是截断 tdb 并将新模型添加到其中。

还有其他更好的解决方案吗?

谢谢

--

代码

再说一次,我的问题是如何处理我的 tdb 的新“infmodel”。我只想更新新的事实。

这是我从 tdb 获取模型的方法。

0 投票
1 回答
342 浏览

jena - Jena TDB,查看在创建 tdb 期间存储了多少个三元组

嗨,可以在使用 java api 创建 tdb 期间查看存储的三倍数吗?我在 turtle 中使用 rar 文件运行 TDB 工厂,但是在我的目录中创建文件期间,我看不到它存储了多少个三元组。我怎么解决这个问题?

0 投票
1 回答
250 浏览

sparql - Jena TDB,过滤器不起作用

我正在使用 Jena TDB 存储文件中的三元组数据集。当我尝试使用filter. 例如,以下查询有效:

但这不是:

?ob此查询的目的是从 a中找到一个"NameOfLabel"(忽略语言)。我尝试过regexandstr(?pr)和其他一些东西,但这些都没有奏效。我怎样才能做到这一点?

更新(基于答案)

当我尝试使用filter( str(?pr) = "NameOfLabel" )时,我得到了一个例外。这是堆栈跟踪:

编辑二:

0 投票
1 回答
436 浏览

java - Sparql 查询永远运行

我正在努力在 Jena 中执行 SPARQL 查询,导致我不理解的行为......

我正在尝试查询 Esco 本体(https://ec.europa.eu/esco/download),并且我正在使用 TDB 加载本体并创建模型(对不起,如果我使用的术语不准确,我不是很有经验)。

我的目标是在本体中找到与我之前提取的文本匹配的工作职位 uri:ex: 提取的术语:“ acuponcteur ” -> 本体中的标签:“Acuponcteur”@fr -> uri: < http:// ec.europa.eu/esco/occupation/14918 >

我所说的“奇怪的行为”与我在执行查询时得到(或没有)的结果有关,即:

执行以下查询时:

我在 1 分钟后得到这些结果:

但是,当我尝试添加 DISTINCT 关键字时,因此:

似乎查询一直在运行(我在等待 20 分钟后停止了执行......)

在执行与第一个查询相同的查询时(因此没有 DISTINCT),我得到相同的行为,但要匹配另一个标签,我确定该标签不在本体中。虽然期待空结果,但它(看起来像它)继续运行,我必须在一段时间后杀死它(再一次,我最多等了 20 分钟):

这可能是我正在运行的代码中的问题吗?它是:

我在这里做错了什么?任何想法?

谢谢!

0 投票
0 回答
177 浏览

java - 耶拿 TDB (TDB.CreateDatase) 的问题

我正在尝试使用 TDB.CreateDataBase 创建一个数据库。

但我得到一个我无法发现的错误。我把堆栈跟踪放在下面。不幸的是,有一些 Guice 涉及可能使其难以捕捉。但是我已经很好地隔离了它,这确实是 TDB 的一个问题。

0 投票
0 回答
407 浏览

java - 在浏览器上启动 SPARQL 查询端点时出错

我有个问题:

我使用以下 Java 代码在 Jena TDB 上加载了两个 RDF 文件:

正如这篇文章https://stackoverflow.com/questions/24798024/how-i-can-use-fuseki-with-jena-tdb中所建议的,我在 CMD 上启动了这个命令:

fuseki-server --update --loc C:\tdb /ds

在 localhost:3030 我看到不同的页面。特别是,我看到“控制面板”页面,我可以在其中选择数据集并执行查询。

现在,我正在阅读此文档http://jena.apache.org/documentation/serving_data/,我发现如果我想启动 SPARQL 查询端点,我可以在浏览器。但是,如果我启动这条路径(

),我收到此错误:

为什么?我正在做这项研究以找到一种在 Java 代码中启动 Fuseki 服务器的 Java 方法。可能吗?

0 投票
0 回答
1729 浏览

java - Jena TDB/Fuseki 性能

我有一个简单的 SPARQL 查询,它使用本地 Fuseki SPARQL 端点在我的 Jena TDB 存储上执行得相当快:

完成可能需要 10 秒,并且包含一些 owl:ObjectProperty 和其他属性。当我只想使用以下查询显示一个对象属性时(注意最后的附加三元组和 1 的限制):

那么我希望答案会尽快出现,并且只显示之前显示的对象属性之一。毕竟,这只是对先前查询的进一步细化。但是,查询花费的时间要长很多倍,并且会在几分钟而不是几秒钟后完成。

我在这里感到困惑。为什么第二个查询需要这么长时间?

我正在使用 Fuseki 1.1.0 版。这是我的 fuseki 配置文件: