有没有办法以编程方式将 ttl 文件上传到 Fuseki?

Is there a way to upload a ttl file to Fuseki programatically?

您好,我创建了一个 java 程序,我在其中获取一个 ttl 文件并更新 turtle 语句。由于我有一个连接到 fuseki 以查询 ttl 文件的 Web 界面,我想用新数据重新上传 ttl 文件。有没有办法以编程方式而不是 Fuseki 界面来执行此操作?

我正在尝试的是从 java 访问命令提示符并使用 s-put 命令,但我收到“没有这样的文件或目录”错误:

public void updateFuseki() throws IOException{
     Runtime rt = Runtime.getRuntime();
     Process pr = rt.exec("s-put http://localhost:3030/Test/ default Definitions.graph.ttl");
}

我目前在 fuseki 中只有一个名为 Test 的数据集,Definitions.graph.ttl 与 Jena 在同一个包中

Fuseki 用于远程上传数据的 API 是 SPARQL Graph Store HTTP Protocol,它是 SPARQL 标准的一部分。 s-put 命令是一个简单的客户端应用程序(用 Ruby 编写),它使用此 API.

由于您的应用程序是用 Java 编写的,因此最好为此 API 使用 Java 客户端。

你用 jena 标记了你的问题,所以我假设你的 Java 应用程序已经使用了 Jena?耶拿包括 a client library for the Graph Store Protocol。一个简单的用法是这样的:

String serviceURL = "http://localhost:3030/Test/";
try (RDFConnection conn = RDFConnectionFactory.connect(serviceURL)) {
    conn.put("Definitions.graph.ttl");
}