如何使用SWI-Prolog语义Web库查询OWL / RDF文件并提取一些信息?
OWL / RDF文件包含有关所有Debian软件包的信息,因此我需要进行查询以查找软件包依赖项。
例如:
OWL文件的结构如下:
package: A
Depends:
package: B
pacakge: C
如何将OWL / RDF文件加载到Prolog脚本中,在Prolog脚本中进行查询的语法是什么,以便将A作为参数并且脚本输出B和C?
答案 0 :(得分: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')) ;