Sommaire

Effectuer des requêtes SPARQLSPARQL

SPARQL (SPARQL Protocol and RDF Query Language) est un langage de requêtes permettant de faire des recherches dans un graphe RDF. Ce langage est un peu le pendant du langage SQL (Structured Query Language) des bases de données relationnelles, mais pour les bases de graphe RDF.

RDFlib inclut un moteur SPARQL, qui peut être utilisé avec Owlready.

1. Recherche avec SPARQL

SPARQL permet de faire des recherches plus complexes que la méthode search() d’Owlready, cependant, pour les recherches simples, il est préférable d’utiliser search() car les performances sont meilleures.

La méthode query() de l’objet graph RDFlib permet d’effectuer une requête SPARQL, et retourne le résultat au format RDFlib (c’est-à-dire sous forme d’URIRef, de BNode et de Literal). La clause WHERE de la requête contient un ou plusieurs triplets RDF, qui peuvent contenir des entités (identifiées par leur IRI), mais aussi des variables, dont le nom est préfixé par « ? ». Dans l’exemple suivant, nous recherchons toutes les entités ?b étant de la classe Bactérie, où ?b est une variable :

>>> graph = default_world.as_rdflib_graph()  
>>> list(graph.query("""  
... SELECT ?b WHERE {  
...     ?b  
...     <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>  
...     <http://lesfleursdunormal.fr/static/_downloads/bacterie.owl#Bactérie> ...