首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RDF4J工作台添加RDF:如何添加多个文件?

RDF4J工作台添加RDF:如何添加多个文件?
EN

Stack Overflow用户
提问于 2016-11-28 20:00:50
回答 2查看 983关注 0票数 1

我使用的是RDF4J工作台2.1.2。

代码语言:javascript
复制
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文件导入其他文件。例如,我的实例化本体/RDF文件导入了定义类和关系的几个本体。

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

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

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-29 04:57:29

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

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

代码语言:javascript
复制
open myRepository
clear
load /path/to/file1.rdf into urn:context1
load /path/to/file2.rdf into urn:context2

然后只需执行以下操作(从命令行):

代码语言:javascript
复制
cat script.txt | ./console.sh 

实现目标的另一种方法是使用curl,并通过RDF4J服务器的REST API直接访问它。例如,要使用curl将Turtle文件上传到存储库,您可以这样做:

代码语言:javascript
复制
curl -X POST -H "Content-type: text/turtle" --data-binary @file.ttl http://localhost:8080/rdf4j-server/repositories/myRepo/statements

最后,您当然也可以编写一个简短的Java程序,使用RDF4J存储库API与服务器进行通信。

票数 1
EN

Stack Overflow用户

发布于 2016-11-30 02:00:55

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

代码语言:javascript
复制
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服务器运行的端口更改为8088。

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

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

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

代码语言:javascript
复制
.\console.bat < loadMyOntologies.txt

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

代码语言:javascript
复制
c:\Users\Greg\...\eclipse-rdf4j-2.0.1\bin

我已经在RDF4J工作台中确认,我可以将这个脚本与工作台中的工作结合起来,这个脚本将节省我相当多的时间,特别是当我将更多的本体组合在一起来解决更大的问题时。

如果您非常关注,您可能会注意到,本例中的RDF4J版本(2.0.1)比我最初发布的版本(2.1.2)要早。我正在完成一个不同的机器,我还没有更新,但它的工作!我确信这个解决方案也适用于我的另一台机器上的新版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40852494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档