SWI-Prolog:如何使用semweb / rdf_db库加载rdf三元组?

时间:2010-05-18 19:46:48

标签: rdf swi-prolog

我有一个n-triples格式的rdf文件(file.trp),其中每一行都是格式良好的三元组:

“主语谓词对象。”

我尝试在semweb / rdf_db中使用rdf_load将其加载到内存中,但失败了。这是我试过的:

?- rdf_load('file.trp').

?- rdf_load('file.trp', [format(triples)]).

跟踪显示目标在以下位置失败:

rdf_db:rdf_load_stream/3

调用

rdf_load_db_/3

可能是在国外图书馆中定义的。

手册说它支持xml和三元组。但它只加载rdf xml文件。如何加载这样的rdf三重文件?

谢谢, 李

2 个答案:

答案 0 :(得分:2)

库(semweb / rdf_db)可以使用多个插件进行扩展,以支持其他插件 输入(URL,压缩,不同的三种格式)。值得注意的是:

  • 加载库(semweb / rdf_turtle)使其读取.ttl(Turtle)
  • 加载库(semweb / rdf_zlib_plugin)使其处理.​​gz文件(压缩)
  • 加载库(semweb / rdf_http_plugin)从http:// URLs
  • 加载
  • 加载库(semweb / rdf_ntriples)使其加载ntriples格式 (这仅提供最新的开发版本; 6.3.8)。

答案 1 :(得分:1)

{strong> manual 表示谓词rdf_load/2支持RDF/XML或者内部快速加载和缓存格式',这可能不是n-triples格式。

首先,无论如何,您需要导入以下内容以使用此谓词:

:- use_module(library(semweb/rdf_db)).

其次,我认为您需要将三元组转换为适当的格式,该格式可以被此谓词读取,例如RDF/XML,并使用如下调用:

 rdf_load('file.xml', [format(xml)]).

您可以使用此online converter在n-triples和RDF / XML格式(以及其他格式)之间进行转换。