2010-05-18 81 views
0

我有一個三元組格式的rdf文件(file.trp),其中每行都是一個格式良好的三元組:SWI-Prolog:如何使用semweb/rdf_db庫加載rdf三元組?

「主體謂詞對象」。

我試圖使用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三重文件?

感謝, 李

回答

1

manual表明謂詞rdf_load/2既支持了RDF/XML或者,這是「內部快速負載和高速緩存格式」,這很可能不是正三元格式。

首先,你需要導入以下利用這一斷言無論如何的:

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

其次,我想你會需要你的三倍轉換成其本可讀的適當格式謂語,如RDF/XML,並且使用這樣的電話:

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

您可以使用此online converter爲正三元和RDF/XML格式(其中包括)之間的轉換。

2

庫(semweb/rdf_db)可以使用多個插件進行擴展,以支持其他 輸入(URL,壓縮的,不同的三重格式)。值得注意的是:

  • 加載庫(semweb/rdf_turtle)使得讀取.ttl(龜)
  • 加載庫(semweb/rdf_zlib_plugin)使得它處理的.gz文件(壓縮)
  • 加載庫(semweb/rdf_http_plugin)使它從http:// URL加載
  • 加載庫(semweb/rdf_ntriples)使它加載ntriples格式 (這是隻提供最新的開發版本; 6.3.8)。
相關問題