【问题标题】:How to query RDF/OWL using SWI-Prolog's Semantic Web Library?如何使用 SWI-Prolog 的语义网络库查询 RDF/OWL?
【发布时间】:2011-09-13 16:56:00
【问题描述】:
如何使用 SWI-Prolog Semantic Web Library 查询 OWL/RDF 文件并提取一些信息?
OWL/RDF 文件包含有关所有 Debian 软件包的信息,因此我需要进行查询以查找软件包依赖项。
例如:
OWL 文件的结构如下:
package: A
Depends:
package: B
pacakge: C
如何将 OWL/RDF 文件加载到 Prolog 脚本中,以及在 Prolog 脚本中进行查询以使我将 A 作为参数而脚本输出 B 和 C 的语法是什么?
【问题讨论】:
标签:
prolog
rdf
swi-prolog
semantic-web
owl
【解决方案1】:
这是您加载 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')) ;