问题标签 [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.
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.
jena - 如何编写使用我的架构的 Fuseki 配置
我有个问题。
我有两个文件:一个带有数据的模型文件和一个带有架构的 OntModel。我已将这些文件存储在本文中所述的 Jena TDB 中:如何将 Fuseki 与 Jena TDB 一起使用
我的问题是:将我的模式存储在 Jena TDB 中是否正确?我在这篇文章中读到了一个类似的问题:Load OWL schema into triple-store like Fuskei/TDB?
写在哪里
“架构是数据。您可以像加载数据一样加载它们。如果您想要基于架构进行推理,则无需加载它 - 您需要编写一个 Fuseki 配置,该配置将您的架构与 Jena 等推理引擎一起使用规则。”
如何编写一个 Fuseki 配置,将我的模式与 Jena 规则等推理引擎一起使用?
java - 查询 Jena TDB 存储
我正在尝试在 java 中查询 jena TDB。我的代码如下。我的 TDB 数据集似乎是空的,因为model.size()
(model
数据集默认模型在哪里)返回 0。不过,我确定它不为空,因为我可以使用 sparqlEndpoint 使用 Fuseki 查询它。
sparql - Jena TDB 原因后更新
我正在使用 Jena,我想将新的本体更新到我的 tdb 中。例如。我的本体中有 100 行,在我添加一些规则并运行推理器后,现在有 105 行。而且我需要在我的 tdb 中更新这 5 个额外的行。我怎样才能做到这一点?
我尝试用谷歌搜索它,我发现了两种方法。一个是使用 sparql 来更新,另一个是截断 tdb 并将新模型添加到其中。
还有其他更好的解决方案吗?
谢谢
--
代码
再说一次,我的问题是如何处理我的 tdb 的新“infmodel”。我只想更新新的事实。
这是我从 tdb 获取模型的方法。
jena - Jena TDB,查看在创建 tdb 期间存储了多少个三元组
嗨,可以在使用 java api 创建 tdb 期间查看存储的三倍数吗?我在 turtle 中使用 rar 文件运行 TDB 工厂,但是在我的目录中创建文件期间,我看不到它存储了多少个三元组。我怎么解决这个问题?
sparql - Jena TDB,过滤器不起作用
我正在使用 Jena TDB 存储文件中的三元组数据集。当我尝试使用filter
. 例如,以下查询有效:
但这不是:
?ob
此查询的目的是从 a中找到一个"NameOfLabel"
(忽略语言)。我尝试过regex
andstr(?pr)
和其他一些东西,但这些都没有奏效。我怎样才能做到这一点?
更新(基于答案)
当我尝试使用filter( str(?pr) = "NameOfLabel" )
时,我得到了一个例外。这是堆栈跟踪:
编辑二:
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 分钟):
这可能是我正在运行的代码中的问题吗?它是:
我在这里做错了什么?任何想法?
谢谢!
java - 耶拿 TDB (TDB.CreateDatase) 的问题
我正在尝试使用 TDB.CreateDataBase 创建一个数据库。
但我得到一个我无法发现的错误。我把堆栈跟踪放在下面。不幸的是,有一些 Guice 涉及可能使其难以捕捉。但是我已经很好地隔离了它,这确实是 TDB 的一个问题。
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 方法。可能吗?
java - Jena TDB/Fuseki 性能
我有一个简单的 SPARQL 查询,它使用本地 Fuseki SPARQL 端点在我的 Jena TDB 存储上执行得相当快:
完成可能需要 10 秒,并且包含一些 owl:ObjectProperty 和其他属性。当我只想使用以下查询显示一个对象属性时(注意最后的附加三元组和 1 的限制):
那么我希望答案会尽快出现,并且只显示之前显示的对象属性之一。毕竟,这只是对先前查询的进一步细化。但是,查询花费的时间要长很多倍,并且会在几分钟而不是几秒钟后完成。
我在这里感到困惑。为什么第二个查询需要这么长时间?
我正在使用 Fuseki 1.1.0 版。这是我的 fuseki 配置文件: