2011-06-13 84 views
9

如何使用SWI-Prolog語義Web庫來查詢OWL/RDF文件並提取一些信息?如何使用SWI-Prolog的語義Web庫查詢RDF/OWL?

OWL/RDF文件具有關於所有Debian軟件包的信息,因此我需要進行查詢才能找到軟件包依賴關係。

例如:

OWL文件的結構如下:

package: A 

Depends: 

package: B 

pacakge: C 

我如何可以加載一個OWL/RDF文件到Prolog的腳本,什麼是語法,使內查詢Prolog腳本,我把A作爲參數,腳本輸出B和C?

回答

10

這是你如何加載semweb庫:

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

這是你如何分析一個RDF/XML文件,並原路返回了所有的主謂對象三元組:

?- rdf_load('file.owl'), rdf(X, Y, Z). 
% Parsed "file.owl" in 0.06 sec; 2,107 triples 
X = 'http://www.co-ode.org/ontologies/pizza/pizza.owl', 
Y = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', 
Z = 'http://www.w3.org/2002/07/owl#Ontology' ; 
X = 'http://www.co-ode.org/ontologies/pizza/pizza.owl', 
Y = 'http://www.w3.org/2002/07/owl#versionInfo', 
Z = literal(type('http://www.w3.org/2001/XMLSchema#string', 'version 1.5')) ; 
+0

非常感謝你......這正是我所尋找的。 – codious 2011-06-13 11:08:40