Как запросить RDF / OWL с помощью библиотеки семантической паутины SWI-Prolog? - PullRequest
9 голосов
/ 13 июня 2011

Как я могу использовать семантическую веб-библиотеку SWI-Prolog, чтобы сделать запрос в файл OWL / RDF и извлечь некоторую информацию?

Файл OWL / RDF содержит информацию обо всех пакетах Debian, поэтому мне нужно выполнить запрос, чтобы найти зависимости пакетов.

Например:

Файл OWL имеет следующую структуру:

package: A

Depends:

package: B

pacakge: C

Как я могу загрузить файл OWL / RDF в скрипт Prolog и каков синтаксис для выполнения запроса внутри скрипта Prolog, так что я помещаю A в качестве параметра, и скрипт выводит B и C?

1 Ответ

10 голосов
/ 13 июня 2011

Вот как вы загружаете библиотеку semweb :

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

Вот как вы анализируете файл RDF / XML и возвращаетесь назад по всем его тройкам объекта-предиката:1006 *

?- 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')) ;
...