2011-06-13 20 views
9

Come posso utilizzare la libreria Web semantica SWI-Prolog per creare una query nel file OWL/RDF ed estrarre alcune informazioni?Come interrogare RDF/OWL usando la libreria semantica Web di SWI-Prolog?

Il file OWL/RDF sta avendo informazioni su tutti i pacchetti Debian, quindi ho bisogno di fare la query per trovare le dipendenze dei pacchetti.

Per esempio:

Il file OWL è strutturato come segue:

package: A 

Depends: 

package: B 

pacakge: C 

Come posso caricare un OWL/file di RDF in uno script Prolog e qual è la sintassi per fare una query all'interno del Script di Prolog tale che inserisco A come parametro e le uscite di script B e C?

risposta

10

In questo modo si carica il semweb libreria:

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

Questo è come si analizza un file RDF/XML e tornate su tutti i suoi triple soggetto-predicato-oggetto:

?- 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

grazie mille ... questo è esattamente quello che stavo cercando. – codious