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

RDF4J Workbench Add RDF: How do I add multiple files?

我正在使用 RDF4J Workbench 2.1.2.

System Information
Application Information
Application Name    RDF4J Workbench
Version 2.1.2
Runtime Information
Operating System    Windows 10 10.0 (amd64)
Java Runtime    Oracle Corporation Java HotSpot(TM) 64-Bit Server VM (1.8.0_111)
Process User    gwcox
Memory
Used    315 MB
Maximum 889 MB

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

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

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

谢谢。

RDF4J Workbench 本身没有一次性添加多个文件的功能。

但是,如果这是您需要重复执行的操作,一个简单的方法是使用控制台,并为其编写一个简短的批处理脚本。该脚本只是一个包含连续控制台命令(每行一个)的文本文件。例如:

open myRepository
clear
load /path/to/file1.rdf into urn:context1
load /path/to/file2.rdf into urn:context2

然后您可以通过(从命令行)简单地执行此操作:

cat script.txt | ./console.sh 

另一种实现您想要的方法是使用 curl,并通过其 REST API 直接访问 RDF4J 服务器。例如,要使用 curl 将 Turtle 文件上传到您的存储库,您需要执行以下操作:

curl -X POST -H "Content-type: text/turtle" --data-binary @file.ttl http://localhost:8080/rdf4j-server/repositories/myRepo/statements

最后,你当然也可以编写一个简短的Java程序,使用RDF4J Repository API与服务器通信。

为了详细说明 Jeen Broekstra 的回答,我将使用控制台脚本。这是我的特定脚本 (loadMyOntologies.txt):

connect "http://localhost:8088/rdf4j-server"
open TakeRDF4J4SPIN
clear
load "C:\Users\Greg\TBCFreeWorkspace\NSC_2025_Sharing\soo.rdf"
load "C:\Users\Greg\TBCFreeWorkspace\NSC_2025_Sharing\Instantiations.rdf"
exit

请注意,我已将 Apache Tomcat 服务器运行的端口更改为 8088。

当然,其他版本在存储库名称(打开命令参数)和本体路径方面会有所不同。

随着我使用的本体数量的增加,我将添加更多 load 命令。另外,我在默认 context/graph 下工作,所以我省略了 Jeen 包含的可选 urn:context

我通过一个简单的批处理 (loadMyOntologies.bat) 文件访问上面的内容,因为我正在使用 Windows 8:

.\console.bat < loadMyOntologies.txt

我的批处理文件和文本文件在我的 RDF4J bin 目录中(路径在下面缩写),其中 console.bat 位于(Jeen 提到的 console.sh 的 Windows 版本):

c:\Users\Greg\...\eclipse-rdf4j-2.0.1\bin

我已经在 RDF4J workbench 中确认我可以将此脚本与 workbench 中的工作相结合,并且该脚本将为我节省大量时间,尤其是当我结合更多本体时解决更大的问题。

如果您非常 密切关注,您可能会注意到此示例中的 RDF4J 版本 (2.0.1) 比我最初发布的版本 (2.1) 旧.2).我正在完成另一台我尚未更新的机器,但它可以工作!我确定此解决方案也适用于我其他机器上的较新版本。