问题标签 [rdf4j]

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 投票
2 回答
900 浏览

rdf - RDF4J Workbench 添加 RDF:如何添加多个文件?

我正在使用 RDF4J Workbench 2.1.2。

我有一组 RDF 文件,其中包含我正在研究的本体。一些 RDF 文件导入其他文件。例如,我的实例化本体/RDF 文件导入了定义我的类和关系的几个本体。

RDF 文件存储在本地,而不是用于标识它们的 URI。在开发和调试的过程中,我经常需要清理我的存储库并重新加载我的本体。目前,需要加载六个本体才能获得全部功能。

如何将存储为本地文件的多个本体加载到 RDF4J 工作台中的活动存储库中?我可以使用 RDF4J 工作台本身或命令行脚本来进行加载。我知道我可以多次手动使用工作台中的修改/添加命令,但我想将其减少为一个命令以节省时间并避免错误。

谢谢。

0 投票
2 回答
180 浏览

sparql - 使用 CONSTRUCT 的 SPIN 约束:CONSTRUCT 的三元组在哪里?

我正在使用 TopBraid Composer 免费版 (5.1.3) 创建包括 SPIN 约束的本体。然后我将生成的 RDF 文件加载到 RDF4J (2.0.1) 并使用 RDF4J Workbench 进行测试。

我正在研究 SPIN 约束。这是一个检查我添加到CRO2:SignalRate课程中的非负信号速率的示例:

因此,我正在使用以下 SPARQL 更新查询在 RDF4J 工作台中测试此约束:

这个测试瞬间违反了上面显示的约束。如果我省略了spin:violationLevel三元组并允许它默认为 a spin:Error,那么我会从查询中收到一条错误消息,并且不会像预期的那样断言测试实例。如图所示执行时,违反约束是 a spin:Warning,因此inst:aSignalRate_test创建的个体具有数据值 -10.0。 我的问题是,约束CONSTRUCT条款中的断言在哪里?spin:violationLevel我相信自从影响行为 发生变化以来,它们就被断言了。请注意,我尝试使用自己的soo:hasConstraintViolation属性绑定到空白节点,但这不起作用。CONSTRUCT 三元组是否在其他上下文/图中断言?我只是对所有内容使用默认值/图形。

我正在使用 RDF4J Workbench 的 Explore 和使用 SPARQL 查询来寻找预期的三元组。例如,在我断言我的错误后,以下查询不返回任何内容CRO2:SignalRate

这种行为在 TopBraid Composer FE 和 RDF4J Workbench 中的断言是一致的。

我的目标是查找和使用在 SPIN 约束违反情况下断言的诊断消息,最好使用 SPARQL 查询来查找此类诊断。似乎有道理。我错过了一些东西。

谢谢。

0 投票
2 回答
1107 浏览

exception - 使用独立应用程序将数据添加到 HTTPRepository 时出现 RDF4J RIO UnsupportedRDFormatException

我使用HTTPRepository存储库的 URL 进行了初始化。我使用 aRepositoryConnection来检索和添加(天气)数据到存储库。从 Web 服务中检索数据,然后将其转换为 RDF 语句,并添加到存储库中。这是由一个独立的应用程序定期完成的。

当我在 IntelliJ 中运行此应用程序时,一切正常。

为了在服务器上运行这个应用程序,我创建了一个 jar 文件(包含所有依赖项)。应用程序按预期启动,并能够从存储库中检索数据。

但是,当应用程序尝试将数据写入存储库时,我得到UnsupportedRDFormatException

发生错误的源代码是:

HTTPRespository初始化为:

我尝试将格式更改为TURTLE. 但这没有什么区别。

你能告诉我如何解决这个问题吗?

注意。RDF4J 服务器和库都有版本 2.0.1 (rdf4j)。

0 投票
2 回答
243 浏览

marklogic - 使用 RDF4J SPARQLRepository 查询 Marklogic

我尝试通过他们的 sparql 端点和来自 rdf4j(2.1.4) 的 sparqlrepository 查询 marklogic 服务器(版本 8),但 marklogic 端点​​似乎不接受这些 sparql 查询。

代码示例:

这会导致以下错误:

"errorResponse":{"statusCode":400, "status":"Bad Request", "messageCode":"REST-UNSUPPORTEDPARAM", "message":"REST-UNSUPPORTEDPARAM: (err:FOER0000) 端点不支持查询参数:无效参数:queryLn,推断请求“}}

有什么建议么?

0 投票
1 回答
371 浏览

java - 如何在 RDF4J(原 Sesame)中合并两个或多个模型?

例如,在 Apache Jena 中,有一种方法可以通过调用将一个模型附加到另一个模型model1.add(model2)

如果您将模型解释为一组语句,RDF4J 是否也可以这样做?

0 投票
1 回答
365 浏览

java - 在 RDF4J / Sesame 中没有缩进、空格或换行符的 JSON-LD 序列化字符串

我正在尝试将模型序列化为 JSON-LD 并使用 RDF4J 将其存储在字符串变量中。

我的代码如下所示:

它给了我一个 JSON-LD 字符串,但没有任何缩进、空格或换行符,这System.out.println(output)不是人类可读的。它看起来像这样:

在 Apache Jena 中有一个RDFFormat调用JSONLD_PRETTY,它会给我所需的输出格式。它看起来类似于:

Eclipse RDF4J 也可以做到这一点吗?

先感谢您!

编辑: 当我尝试使用 MongoDB 存储 JSON-LD 字符串时,它会抛出此错误:Invalid BSON field name. 这是序列化问题还是我构建的模型的问题?

编辑 2: 例如,上面的代码与 Turtle 格式完美结合。我在使用 JSON-LDRDFJSON 时遇到了这个问题。

0 投票
2 回答
501 浏览

java - 使用 SPARQL 构造查询部分 RDF 图

我正在使用一个 RDF4J 本机三元组,其中存储了几个命名的图形/模型。在我的 Java 程序中,我试图通过使用 SPARQL CONSTRUCT 查询表单从命名图中检索部分图。部分图应由特定的整数值标识。

我存储的一个命名图如下所示,例如:

上图描述了两个已经用 NLP 工具注释的句子。我想查询一个代表这些句子之一的子图,包括上下文、句子本身以及该特定句子的所有实体。

每个句子都有一个带有 predicate 的索引onto:index,我想用它来识别一个特定的句子。属于句子的实体由 标识onto:entity

因此,所需的子图应该由主语app:context#char=0,54app:sentence#char=0,31app:entity#char=0,12以及app:entity#char=22,30它们各自的谓词和宾语组成。因此,它不应包含主题app:sentence#char=32,54app:entity#char=46,53

到目前为止,我的 SPARQL 查询如下所示:

在 Java 中,它看起来像这样:

sentenceIndex表达式是一个传递实际onto:index值的 Java int 变量。app:location#12345是上级命名图。

出于测试目的,上述查询最初应该只返回给定索引的整个句子主题,而不需要上下文或实体。但即使是这个简单的任务也失败了。它只是返回一个空的 RDF4J 模型。

现在,为了获得onto:index谓词标识的所需子图,正确的 SPARQL 查询是什么?

我不熟悉 SPARQL,因此非常感谢任何帮助。提前致谢!

0 投票
1 回答
97 浏览

java - Not able to add file to repo larger than 1.5 MB

Systeminformation:

Application Information Application Name RDF4J-server
Version 2.2
Runtime Information :
Operating System Linux 3.10.0-327.36.2.el7.x86_64 (amd64)
Java Runtime Oracle Corporation OpenJDK 64-Bit Server VM (1.8.0_102)

I'm using the RDF4J api wanting to write NTriples to a repository in RDF4J server. The data is in a file and I can upload the file using workbench but using the api it throws an exception. This only occurs if the filesize is larger than 1.5MB.
If I use curl it also works with files larger than 1.5MB.

So the question is. Why is failing on mimetype if file is larger than 1.5MB?
Why is the file created as a text/plain; ?
The file has been created as a .nt extension and I have added in /etc/mime.types the following

-

Code:

0 投票
1 回答
211 浏览

rdf4j - 如何以原始格式编写 RDF

RDF4J 新手问题 -

当我从文件加载这个 RDF 时:

使用此代码

输出如下所示:

我将如何以原始格式打印 RDF?

0 投票
2 回答
865 浏览

java - 如何将压缩的 rdf 文件加载到 rdf4j 存储库?

我想将一个 gzip 压缩的 rdf 文件加载到org.eclipse.rdf4j.repository.Repository. 在上传期间,必须将状态消息记录到控制台。我的 rdf 文件的大小是 ~1GB 的未压缩或 ~50MB 的压缩数据。