0

我有一个 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 三重文件?

谢谢,李

4

2 回答 2

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)。
于 2013-01-17T10:35:37.710 回答
1

手册建议谓词rdf_load/2支持RDF/XML,或者它是“内部快速加载和缓存格式”,这可能不是 n-triples 格式。

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

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

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

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

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

于 2010-05-27T02:03:55.767 回答