如果您提供了一个最小的完整示例,那就很有帮助,例如,您包括了Fuseki配置以及有关如何将OWL文件加载到Fuseki中的详细信息。
但是,我假设您没有使用任何特定的配置,而是像这样启动Fuseki:
java -jar fuseki-server-VER.jar --update --loc /path/to/db /ds
因此,您要做的是启动Fuseki,启用更新并使用该位置
/path/to/db作为磁盘上的TDB数据库位置和
/ds数据集的URL 。
您打开浏览器并单击
Control Panel >/ds,然后使用上载文件功能上载OWL文件。上传文件时,该文件将被读入Fuseki中并复制到数据集中,在本示例中,您的数据集是磁盘上的TDB数据库,位于
/path/to/db。
重要的是要理解,因为Fuseki只是 将* 数据从文件 复制 到数据集,所以 不保留对原始文件的引用 。 *
然后,您可以使用SPARQL
Update表单添加一些数据(或者,您可以通过Java代码执行此操作)。在此示例中,更新适用于要重复的数据集,该数据集是磁盘TDB数据库,
/path/to/db该数据库上
没有 引用原始文件。因此,您的原始文件不会更改。
使用SPARQL Update更新原始文件
如果Fuseki不是必需的,那么您可以将文件加载到本地内存中,然后在该内存中运行更新:
Model m = ModelFactory.createDefaultModel();m.read("example.owl", "RDF/XML");// Prepare your update...// Create an UpdateExecution on the local modelUpdateProcessor processor = UpdateExecutionFactory.create(update, GraphStoreFactory.create(m));processor.execute();// Save the updated model updated.write(new FileOutputStream("example.owl"), "RDF/XML");但是,如果您想/必须使用Fuseki,则可以通过从Fuseki检索修改后的图形并将其写回到文件中来更新原始文件,例如
DatasetAccessor accessor = DatasetAccessorFactory.createHTTP("http://localhost:3030/ds/data");// Download the updated modelModel updated = accessor.getModel();// Save the updated model over the original fileupdated.write(new FileOutputStream("example.owl"), "RDF/XML");本示例假定您已将OWL文件加载到默认图形中(如果未使用
getModel("http://graph")重载来加载相关的命名图形)


