【问题标题】:RDF4J Workbench Add RDF: How do I add multiple files?RDF4J Workbench 添加 RDF:如何添加多个文件?
【发布时间】:2016-11-28 20:00:50
【问题描述】:

我正在使用 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 文件导入其他文件。例如,我的实例化本体/RDF 文件导入了定义我的类和关系的几个本体。

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

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

谢谢。

【问题讨论】:

    标签: rdf owl sesame rdf4j


    【解决方案1】:

    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 与服务器通信。

    【讨论】:

    • 正是我所追求的。谢谢吉恩布鲁克斯特拉!我相信我现在将从控制台脚本开始。整个事情最终可能会发展为 Java 驱动,所以我最终可能会采用第三种选择。
    • 只是为了澄清:使用您的方法,我如何绕过与控制台的许多基于对话框的交互?说:在你的脚本之前,我想简单地运行一个 drop x,创建原生 x?
    • @matentzn 只需将您对这些交互的答案放在脚本中,每行一个。它会捡起来的。
    【解决方案2】:

    为了详细说明 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 命令。另外,我在默认上下文/图形中工作,所以我省略了 Jeen 包含的可选 urn:context

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

    .\console.bat < loadMyOntologies.txt
    

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      相关资源
      最近更新 更多