Mémoire de Mastère: Université de Tunis El Manar Faculté Des Sciences de Tunis
Mémoire de Mastère: Université de Tunis El Manar Faculté Des Sciences de Tunis
MÉMOIRE DE MASTÈRE
Emna JEBRI
Licence Fondamentale en Informatique de Gestion
Faculté des Sciences Économiques et de Gestion de Tunis
Je remercie Monsieur Sadok BEN YAHIA, Professeur à la Faculté des Sciences de Tunis,
de m’avoir guidé tout au long de ce mémoire, de m’avoir apporté ses précieuses lumières, et
surtout de m’avoir appris à mener par moi-même un travail de recherche. Sans ses conseils,
ce mémoire n’aurait tout simplement pas existé.
Introduction Générale 1
i
2.2.1.1.b RDF stores . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1.1.c BD-RDF non natives . . . . . . . . . . . . . . . . . . 27
2.2.1.1.d BD-RDF natives . . . . . . . . . . . . . . . . . . . . 28
2.2.1.1.e Différences entre RDF Store et BD-RDF . . . . . . . 29
2.2.2 Moteurs de raisonnement et saturation de données . . . . . . . . . . . 30
2.2.2.1 Saturation des données . . . . . . . . . . . . . . . . . . . . . 30
2.2.2.2 Reformulation des requêtes . . . . . . . . . . . . . . . . . . 31
2.2.3 Le langage d’interrogation de graphes RDF : SPARQL . . . . . . . . 31
2.2.3.1 Patron de triplet (TP) et patron de graphe (BGP) . . . . . 32
2.2.3.1.a Définition formelle d’un patron de triplet et d’un pa-
tron de graphe . . . . . . . . . . . . . . . . . . . . . 33
2.2.3.2 Avantages de SPARQL . . . . . . . . . . . . . . . . . . . . . 33
2.2.3.3 Limitations de SPARQL . . . . . . . . . . . . . . . . . . . . 33
2.3 Revue sur les différents travaux de comparaison des BD-RDF . . . . . . . . . 35
2.4 Revue sur les méthodes existantes pour l’interrogation par des requêtes SPARQL
des graphes RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4.1 Quelques approches existantes pour l’interrogation par mots-clés . . . 50
2.5 Discussion et Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
ii
3.5.2 Les approches de réponse aux requêtes . . . . . . . . . . . . . . . . . 74
3.5.2.1 Affichage de toutes les informations à l’utilisateur . . . . . . 74
3.5.2.1.a Le cas d’un seul mot-clé . . . . . . . . . . . . . . . . 75
3.5.2.1.b Le cas de deux mots-clés . . . . . . . . . . . . . . . . 76
3.5.2.1.c Le cas de trois mots-clés . . . . . . . . . . . . . . . . 77
3.5.2.2 La recherche à facettes . . . . . . . . . . . . . . . . . . . . . 86
3.5.2.3 Interrogation de plus d’une ontologie . . . . . . . . . . . . . 87
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Bibliographie 116
Table des figures
iv
3.22 Résultats de la requête en utilisant Cypher (par équivalence) (3) . . . . . . 85
3.23 Interface à facettes (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.24 Interface à facettes (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.25 Architecture générale du processus du traitement de plusieurs ontologies . . 88
3.26 Interrogation de plusieurs ontologies . . . . . . . . . . . . . . . . . . . . . . 89
3.27 Résultats des requêtes Cypher (1) . . . . . . . . . . . . . . . . . . . . . . . 90
3.28 Résultats des requêtes Cypher (2) . . . . . . . . . . . . . . . . . . . . . . . 91
3.29 Résultats des requêtes Cypher (3) . . . . . . . . . . . . . . . . . . . . . . . 92
v
Liste des tableaux
vi
Introduction Générale
Les ontologies ont été reconnues comme une composante essentielle pour le partage des
connaissances et la concrétisation de la vision du Web sémantique. En définissant les concepts
associés à des domaines particuliers, elles permettent à la fois de décrire le contenu des sources
à intégrer et d’expliciter le vocabulaire à travers des requêtes lancées par des utilisateurs.
Les objets ainsi que les relations dans l’univers du discours sont conceptualisés dans le but
de les décrire sous une forme utilisable par des machines. Une des caractéristiques impor-
tantes du WS, est son hétérogénéité qui décrit à la fois sa richesse et son ambiguïté. Cette
hétérogénéité s’explique par le fait que les informations et les connaissances peuvent être
produites à partir de plusieurs sources diverses. De même, elles peuvent être exprimées dans
des différents formats.
Le nombre croissant des ensembles de données publiés sur le Web, offre à la fois des possi-
bilités de disponibilité élevée des données, ainsi que des défis inhérents lors de l’interrogation
de ces données dans un environnement sémantiquement hétérogène et distribué.
De même, RDF s’est imposé comme un modèle de données standard. De considérables quan-
tités de données RDF sont désormais disponibles.
Pour interroger les données liées sur le Web aujourd’hui, les utilisateurs doivent d’abord
savoir quels ensembles de données exposés contiennent potentiellement les données qu’ils sou-
haitent avoir, et quel modèle de données décrit ces ensembles de données, pour qu’ils puissent
utiliser cette information afin de créer des requêtes structurées.
En plus de la connaissance du modèle de données, les utilisateurs qui interrogent des infor-
mations liées, doivent maîtriser la syntaxe des langages d’interrogation hautement spécifiques
tels que SPARQL.
Ces difficultés d’interrogation des données peuvent nous amener au problème suivant :
1
alors que les usagers souhaitent avoir des réponses à leurs besoins, et même des réponses de
qualité, il n’en obtiennent aucunes.
Vis-à-vis de ce problème, l’utilisateur ne peut pas réellement savoir si sa requête est mal
formulée, trop sélective ou bien si le résultat souhaité n’existe tout simplement pas dans l’on-
tologie. Il peut ainsi se lancer dans un processus d’essai et d’erreur pendant lequel il tente de
modifier et de remettre optionnelles les conditions de sa requête. Ainsi, il analyse les résultats
obtenus, afin d’aboutir à une reformulation lui permettant d’avoir des résultats satisfaisants.
Ce processus semble long et fastidieux, ainsi que les résultats retrouvés peuvent ne pas être
ceux souhaités. Cela peut également causer une frustration des utilisateurs étant donné que
ces derniers ne comprennent même pas pourquoi, avec un aussi grand volume de données,
leurs requêtes ne retournent aucun résultat. Alors, nous estimons que les utilisateurs ont
besoin d’un appui afin de formuler des requêtes significatives et de retrouver des réponses
satisfaisantes. Pour l’utilisateur, les requêtes en langage naturel apparaissent comme une al-
ternative simple et intuitive.
D’un autre côté, avec l’avènement des bases de données NoSQL, d’autres pistes de prises
en charge ont été conçues. En particulier, les BD graphiques sont maintenant utilisées dans
des secteurs aussi divers que la santé, le commerce de détail, le pétrole et le gaz, les médias,
les jeux vidéo et bien d’autres.
Parmi les avantages des BD, nous pouvons citer : évolutivité, efficacité de stockage, struc-
turation idéale permettant un temps optimal d’exécution de requêtes utilisateurs, gestion des
droits d’accès. Les BD offrent aussi des mécanismes de contrôle et de sécurité.
Structure de ce mémoire
Les résultats de nos travaux de recherche sont synthétisés dans ce mémoire qui est
composé de quatre chapitres :
Le premier chapitre introduit les notions de base pour limiter le champ d’étude. En
fait, nous allons présenter une étude bibliographique sur les différentes étapes de l’évolution
du Web, et plus précisément le Web sémantique, l’ontologie, ses composants ainsi que les lan-
gages avec lesquels elle est représentée. La dernière section élucide la notion d’hétérogénéité
et liste brièvement ses divers types.
Le deuxième chapitre décrit les standards, protocoles et outils utilisés pour le stockage
et l’interrogation des données RDF. Ensuite, une description détaillée sur les BD-RDF et
le langage SPARQL, a été présentée. Enfin, nous avons présenté une revue sur les différents
travaux de comparaison de BD-RDF ainsi que sur quelques méthodes existantes pour l’in-
terrogation SPARQL de graphes RDF.
2
tion de graphe RDF généré à partir d’une ontologie d’entrée. Il présente les différentes phases
constituants notre méthode, avec quelques exemples d’exécution.
Le mémoire se termine par une conclusion générale qui récapitule l’ensemble de nos travaux
et présente également quelques perspectives futures de recherche.
3
Chapitre 1
1.1 Introduction
Avec l’évolution du Web et l’explosion du volume d’information, les ontologies sont deve-
nues un concept primordial pour le Web sémantique. Elles cherchent à exporter les données
sous une forme structurée (limite semi-structurée) avec une sémantique bien définie. Cela
permet aux agents de consommer ces données et de les utiliser d’une manière plus intelli-
gente. Les ontologies ont pour objectif, aussi, de permettre aux programmes d’assurer des
inférences basées sur des règles afin de déduire des faits, faire des raisonnements ou examiner
la cohérence de l’ensemble de données.
Le reste de ce chapitre est organisé comme suit : d’abord, nous allons définir le Web
sémantique, voir ses défis et ses objectifs. Ensuite, nous rappellerons la définition du terme
ontologie. Enfin, nous détaillerons les langages de représentation de cette dernière.
- Web 1.0, ou encore Web traditionnel. C’est un Web statique (ou de documents) qui se
caractérisait par des sites web orientés produits et par un contenu plutôt limité (en général de
type texte et multimédia), créé surtout par des utilisateurs professionnels. Il nécessite aucune
intervention utilisateur. L’utilisateur n’était qu’un consommateur passif.
En effet, le Web « read only » était très consultatif et à sens unique. Le lecteur n’intervenait
que d’une façon très minime et ne pouvait pas réagir en temps réel ou contribuer au contenu
qu’il abordait. C’était une sorte de magazine énorme en ligne à consulter.
4
- Web 2.0, appelé également Web social (Vickery andWunsch-Vincent (2007)), et change
totalement de perspective. Il favorise plutôt la dimension du partage et d’échange d’infor-
mations et de contenus. Le Web se dynamise. Il se caractérise par un contenu plutôt illimité
créé par des utilisateurs professionnels et amateurs.
Ce Web est devenu à double sens. En effet, l’usager devient co-développeur, i.e. à la fois
consommateur et acteur. Mais pour être précis, seule une minorité prend le rôle du pro-
ducteur (read et write), car la majorité se contente de consulter et partager (read et share).
Ainsi l’utilisateur intervient énormément : il peut consulter, réagir en temps réel, partager, et
contribuer au contenu qu’il aborde, etc. Il devient la source du contenu (même professionnel),
et éventuellement la source de l’évolution de ce contenu (il peut modifier le contenu). Citons
comme exemple, Youtube qui, avec lequel, l’utilisateur peut envoyer des vidéos (du contenu),
et également, les modifier (adapter le contenu).
Il y a aussi une émergence des applications participatives, surtout les UGC s (les contenus
créés par les utilisateurs) pour communiquer, partager, tagger, et stocker du contenu (comme
les blogs, les sites e-commerce, les forums, et les réseaux sociaux, etc).
L’avis de l’utilisateur est constamment sollicité, ainsi, nous avons vu apparaître les com-
mentaires et les notes sur les articles, preuve qu’il est fondamental de tenir en considération
l’impression du lecteur.
le Web s’est transformé d’un espace pour la simple consultation des données, à un lieu d’ex-
pression riche.
- Web 3.0, initié à l’époque par Berners-Lee et al.(2001) comme le Web sémantique (ou
Smart Web). C’est un Web focalisé sur le savoir. Il consiste à rendre les ressources Web, non
seulement compréhensibles par les humains, mais également par les machines. Il tente de
fournir un sens aux données afin de répondre aux besoins des utilisateurs mobiles toujours
connectés à travers une multitude de supports d’application.
- Web 4.0, et également connu comme étant le Web symbiotique ou Web intelligent. C’est
un Web qui connectera l’intelligence. Il est orienté interaction individus/objets, et ses don-
nées vont évoluer vers des standards ouverts et un langage universel. Il vise à tout innover
grâce aux connexions intelligentes, et à immerger l’individu dans un environnement Web de
plus en plus prégnant. Il est appelé Web symbiotique car il est prévu que l’esprit humain
et les machines vont interagir en symbiose, i.e. l’utilisateur deviendra créateur en constante
symbiose avec son environnement.
Il représente une continuité de la voie du Web 3.0, tout en posant de considérables questions
telles que la protection de la vie privée, le contrôle des données, etc.
5
La figure 1.1 1 montre les différentes étapes précitées de l’évolution du Web.
Au stade du Web 1.0, nous remarquons que le volume d’information reste minime et propor-
tionnel à la productivité, ainsi qu’au nombre d’utilisateurs.
A l’arrivée du Web 2.0, le volume d’information produite accroît suivant l’accroissement du
nombre d’internautes.
Avec l’apparition du Web 3.0, nous constatons l’augmentation du nombre d’utilisateurs et du
volume de données produites (e.g. un accroissement énorme du nombre de sites (555 millions
de sites + 300 millions nouveaux en 2011), une augmentation du nombre d’usagers Face-
book (200 millions nouveaux au même date), etc). Par conséquent, les moteurs de recherche
traditionnels ne suffisaient plus.
Finalement, avec l’avènement du Web 4.0, nous remarquons l’existence des agents intelli-
gents. Cette vision reste futuriste.
1.2.1 Définition
Le Web sémantique est un web intelligent qui permet, non seulement de stocker les infor-
mations, mais également de les rendre compréhensibles par les ordinateurs et réutilisables par
différentes applications. C’est une nouvelle génération du Web où l’information est structurée
par les connaissances. Ceci permet les agents logiciels d’effectuer des actions complexes pour
leurs utilisateurs, grâce à une inter-opération des services Web.
De la même manière que le Web actuel, le Web sémantique est construit principale-
ment autour des identifiants (URI s : Uniform Resource Identifier) et du protocole HTTP
(HyperText Transfer Protocol), mais il est par contre basé sur le langage RDF (Resource
Description Framework) et non plus sur HTML (HyperText Markup Language). Cela est
1. http ://www.camillejourdain.fr/schemas-evolution-du-web/ Consulté le 11/10/2017
6
pour but de séparer l’information qui décrit le sens et le contexte des données, de l’infor-
mation qui décrit la présentation des données. Il est basé principalement sur les bases de
connaissances et non plus sur les bases de données. La recherche aussi va s’affecter et devenir
une recherche par concept, non plus par mot-clé.
Dans le Web sémantique, toutes les données du Web, textuelles ou multimédia, doivent
être annotées sémantiquement par des méta-données pertinentes, car les machines ne peuvent
traiter les ressources Web qu’à travers une explication plus spécifique de leur contenu et cela
en utilisant un mark-up sémantique nommé « méta-données » qui aidera les agents logiciels
à comprendre les données et à prendre des décisions. L’annotation de ces ressources d’infor-
mation repose sur l’accès à des représentations de connaissances (des ontologies) échangées
sur le Web et qui sont en train de s’intégrer de plus en plus dans les applications Web, sans
même que les utilisateurs ne le sachent.
Pour conclure, l’objectif principal du Web sémantique est de transformer la masse non-
maîtrisable des pages Web, en un énorme index hiérarchisé afin de garantir un réel partage
de connaissances.
1.2.2 Historique
Le Web sémantique n’est pas pour autant une nouvelle idée. La notion a été décrite pre-
mièrement dans les années 1990. En 1993, Tim Berners-Lee fournit une solution au problème
du partage de connaissances entre les applications Web, à l’aide d’un mécanisme à base d’on-
tologies qui structure les données d’une manière compréhensible par la machine.
Immensité : le World Wide Web contient plusieurs milliards de pages. A l’arrivée du Web
sémantique, tous les systèmes de raisonnement automatisé devraient gérer une quantité de
données vraiment immense.
Imprécision : il existe des notions imprécises comme "grand" ou "jeune". Ceci est produit
de l’imprécision des requêtes des utilisateurs. La logique floue est le remède pour faire face à
7
ce défi.
Incertitude : il peut exister des concepts précis avec des valeurs incertaines. A titre d’exemple,
un patient expose un ensemble de symptômes qui conviennent avec un certain nombre de
diagnostics différents, chacun avec une probabilité différente.
Le Web actuel est un ensemble de documents (données et pages) dédié aux humains, stocké
et manipulé d’une façon purement syntaxique. Les deux principaux problèmes du Web actuel
sont :
- D’une part, il y a énormément de sources de données, du fait que n’importe qui peut fa-
cilement publier un contenu (sachant qu’il n’a pas la moindre idée sur la probabilité que ce
contenu soit trouvé par autrui) ; il n’a qu’à l’annoter. Ainsi, les moteurs de recherche à base
de mot-clé auront la tâche de l’indexer pour pouvoir l’afficher aux utilisateurs lorsqu’ils font
une recherche. Par conséquent, l’information sur Internet est tellement énorme que l’utilisa-
teur a beaucoup de difficultés à la retrouver.
- D’une autre part, les résultats de recherche sont imprécis, très sensibles au vocabulaire, et
assez longs à trouver. En effet, les moteurs de recherche ne sont capables de répondre qu’à
deux questions principales :
Quelles sont les pages contenant ce terme ? et ;
Quelles sont les pages les plus populaires à ce sujet ?
Le Web est essentiellement syntaxique, et l’Homme est le seul à pouvoir interpréter le contenu
(des documents et des ressources) inaccessible et non interprétable par la machine. Lui seul
doté de la capacité de comprendre ce qu’il a trouvé et décider en quoi cela se rapporte à ce
qu’il veut vraiment chercher. Finalement, nous ne pourrons pas se passer de l’intervention
humaine pour naviguer, chercher, faire le tri de documents manuellement, interpréter et com-
biner les résultats.
L’affaire principale du Web sémantique est de diriger l’évolution du Web afin de per-
mettre aux utilisateurs de trouver, partager et arranger l’information plus aisément et sans
avoir recours à un intermédiaire. Il autorise également l’accès aux données entre différentes
applications.
Les machines ne peuvent pas effectuer toutes les tâches telles que, la réservation d’un billet
8
du train, l’allocation d’une voiture etc, sans assistance humaine, parce que les pages Web
sont faites pour être lues uniquement par les humains.
Par conséquent, avec le Web sémantique, il s’avère possible d’effectuer des travaux rigoureux
et automatiques par les machines. Il représente un système permettant aux agents de "com-
prendre" et de répondre aux requêtes complexes des utilisateurs. Cette "compréhension"
exige que la sémantique des sources d’informations existantes, soit structurée à l’avance.
Le but ultime du Web de la 3ème génération est de permettre aux utilisateurs d’exploiter
tout le potentiel du Web en s’aidant par les machines qui pourront accomplir les tâches
encore réalisées par l’Homme comme la recherche ou l’association d’informations, et ainsi
atteindre un Web intelligent qui regroupera l’information de manière utile et qui apportera
à l’utilisateur ce qui cherche vraiment.
1.3 Ontologies
Les ontologies existent afin de pouvoir présenter et partager les connaissances d’un do-
maine, ainsi que pour créer un consensus.
Elles sont les concepts clés du Web sémantique. Leur apparition a eu lieu au début des années
1990 dans la communauté de l’ingénierie de connaissances (IC).
Les ontologies font partie intégrante des normes du W3C pour le Web sémantique, car elles
sont indispensables pour représenter la sémantique des documents, i.e. les connaissances qui
coexistent dans le Web, en structurant et en définissant la signification des termes actuelle-
ment collectées et normalisées.
Les ontologies sont nommées avec un IRI (Internationalized Resource Identifier), et puis-
qu’elles sont des documents Web, elles sont ainsi référencées par un URI (Uniform Resource
Identifier : IRI physique) qui doit pointer sur la localisation de l’URL (Uniform Resource
Locator) choisi pour les publier.
9
aussi bien les règles pour combiner ces termes et ces relations, afin de définir des extensions
du vocabulaire."
D’après cette définition, nous comprenons qu’une ontologie désigne les termes et les relations
de base d’un domaine donné. La combinaison de ces derniers s’effectue en se basant sur des
règles bien déterminées. Selon cette définition descriptive, nous saisissons également qu’une
ontologie inclut de plus un volume informationnel, inféré des termes qu’elle peut caractériser.
Toutefois, la définition la plus adoptée et la plus utilisée dans le contexte du Web séman-
tique, est celle de Gruber (1993) [Guarino et al., 2009] : " Une ontologie est une spécification
explicite et formelle d’une conceptualisation d’un domaine de connaissances". La conceptua-
lisation est le dénouement d’une analyse ontologique du domaine exploré. Cette conceptua-
lisation est exprimée dans une forme concrète, dite spécification. En fait, une spécification
n’est qu’une représentation formelle des concepts et des relations, ainsi que les contraintes
imposées dessus.
Guarino et Giaretta (1995) dans [Corcho, 2004], ont étudié et collecté sept définitions
d’une ontologie :
Borst (1997) dans [Guarino et al., 2009], a légèrement modifié la définition de Gruber
(1993) et il a proposé la suivante : "Les ontologies sont définies comme une spécification for-
melle d’une conceptualisation partagée". Les définitions de Gruber (1993) et Borst (1997) ont
été alliées par Studer et al.(1998) comme suit : "Une ontologie est une spécification formelle
et explicite d’une conceptualisation partagée". Selon Borst (1997), une conceptualisation se
rapporte à un modèle abstrait retraçant un phénomène quelconque du monde réel. L’abs-
traction se fait grâce à la détermination des concepts de ce phénomène. Le terme "explicite",
provient du fait que les types de concepts et les contraintes de leur usage, doivent être expli-
citement définis. Ainsi, le terme "formelle" signifie qu’une ontologie doit être compréhensible
et lisible par la machine. Finalement, le mot "partagée", montre qu’une ontologie doit couvrir
un centre d’intérêt de façon à la rendre abordable, par tous les usagers de toute communauté.
Nous avons récapitulé les définitions les plus pertinentes du terme ontologie, et qui reflètent
des points de vue à la fois complémentaires et différents. En effet, nous pouvons conclure que
les ontologies sont crées et inventées à la base pour modifier les connaissances consensuelles
d’une façon générique.
En somme, les ontologies matérialisent les principes du partage et de la réutilisation de l’in-
10
formation.
Dans la littérature, nous listons plusieurs types d’ontologies selon différentes classifications.
Malgré cette variété, toutes ces ontologies partagent quasiment les mêmes composants afin de
décrire un certain domaine, et qui sont : connaissances et domaine de connaissances, concepts,
relations et axiomes.
Tout objet sur le Web possède une méta-donnée (étiquette) qui le représente fidèlement,
et qui peut être lue par les agents logiciels aussi bien que par les agents humains. Les méta-
données ou bien les méta-connaissances sont des informations sur les données décrivant les
connaissances contenues dans les ressources. Ainsi, cerner le domaine de connaissances à re-
présenter, suscite une délimitation précise et explicite de l’objectif opérationnel de l’ontologie.
Dans le domaine de l’ingénierie de connaissance, la représentation de connaissances se traduit
par une description à base des faits et des règles. Nous pouvons considérer, qu’il n’y a de
connaissances que lorsque l’information présentée dans la machine prenne un sens, et que ce
sens soit le même pour tous les utilisateurs (Charlet (2001)). Ainsi, une ontologie doit être
représentée à partir d’un champ de connaissances bien déterminé pour un objectif opéra-
tionnel non ambigüe. Elle doit se baser sur des connaissances objectives, dont la sémantique
puisse être scrupuleusement et formellement exprimée. Ces connaissances sont représentées
dans l’ontologie sous forme de concepts, de relations et finalement d’axiomes. Dans ce qui
suit, nous décrivons la notion de concepts.
1.3.2.2 Concepts
Les concepts constituent le centre d’intérêt de plusieurs ontologies, et représentent en réa-
lité des objets sur qui porte une connaissance. Ils peuvent représenter un objet matériel, une
notion ou une idée (Ushold and Jasper (1999)). Un concept peut être décomposé en trois
parties qui sont : un ou plusieurs termes, une notion et un ensemble d’objets. La notion est
11
appelée également intention du concept. Elle contient la signification du concept exprimée en
termes de règles et de contraintes, de propriétés et d’attributs. L’ensemble d’objets est appelé
aussi extension du concept ou encore instance du concept. Il regroupe les objets manipulés à
travers un concept.
Les deux aspects d’un concept (intention et extension) sont assez différents dans plusieurs
mesures. En effet, deux extensions peuvent ne pas être disjointes, alors que deux intentions
s’excluent réciproquement par au moins une propriété. Un concept peut avoir une extension
vide, c’est le cas d’un concept générique, cela est généralement pour se référer à une notion
abstraite, e.g. le concept "fonctionnel" pris dans le sens de "ce qui est fonctionnel" et non
pas du "degré de fonctionnalité". Deux concepts peuvent avoir la même extension sans pour
autant posséder la même intention. Par exemple, le cas des concepts "directeurs" et "em-
ployés" qui peuvent partager quelques extensions.
Dans le langage naturel, il existe de nombreux termes désignant plusieurs concepts séman-
tiquement différents, et qui ne sont pas gérables par la machine. Par exemple, la "souris" est
un animal et la même expression représente aussi un matériel d’ordinateur. La limitation à un
domaine de connaissances bien déterminé permet de remédier à ce problème et alors d’éviter
les homonymes des concepts. Néanmoins, il est préférable de gérer la synonymie et l’hypo-
nymie pour garantir plus de souplesse dans l’usage de l’ontologie (Gómez Pérez et al. (1996)).
Les concepts sont reliés par des propriétés conceptuelles. Ces propriétés se divisent en
deux critères [Zghal, 2010]. La première catégorie regroupe les propriétés associées à un seul
concept. La seconde rassemble les propriétés associées à deux concepts. La majorité des pro-
priétés portant sur un seul concept sont proposées par Guarino and Giaretta (1995) et elles
sont constituées par :
- Généricité : un concept est dit générique s’il n’admet pas d’extensions, i.e. d’instances
(e.g. la vérité est un concept générique) ;
- Identité : un concept a une propriété d’identité si cette dernière permet de différencier une
instance d’une autre (e.g. le concept "étudiant" porte une propriété d’identité liée au numéro
de l’étudiant, deux étudiants sont identiques s’ils ont le même numéro) ;
- Rigidité : un concept est considéré rigide si toute instance de ce concept en demeure
instance dans tous les domaines possibles (e.g. humain est un concept rigide) ;
- Anti-rigidité : un concept est dit anti-rigide si toute instance de ce concept est principa-
lement définie par son appartenance à l’extension d’un autre concept (e.g. "enseignant" est
un concept anti-rigide car l’enseignant est avant tout un humain) ;
- Unité : un concept s’avère unité si pour chacune de ses instances, les différentes parties de
l’instance sont attachées par une relation qui ne lie pas d’autres instances de concepts (e.g.
les deux parties d’un couteau, manche et lame sont liées par une relation "emmanché" qui
ne relie que cette lame et cette manche).
- Équivalence : deux concepts sont équivalents s’ils aient les mêmes extensions ;
12
- Disjonction : deux concepts sont disjoints si leurs extensions sont disjointes (e.g. homme
et femme) ;
- Dépendance : un concept C1 est dépendant d’un concept C2, si pour toute instance de
C1, il existe une instance de C2 qui ne soit ni partie ni constituant de l’instance de C2 (e.g.
le concept "parent" est un concept dépendant du concept "enfant" et inversement).
Les concepts, dans une ontologie, sont bien évidemment liés. Cette liaison se fait grâce à des
relations.
1.3.2.3 Relations
Les relations permettent d’associer des instances de concepts, ou des concepts génériques.
Elles sont particularisées par un terme (ou plusieurs) et une signature (Gómez-Pérez et al.
(1996)). La signature décrit le nombre d’instances de concepts que la relation lie, leurs types
et l’ordre des concepts (la direction dont la relation doit être lue). Par exemple, la relation "dé-
veloppe" lie une instance du concept "développeur" à une instance du concept "programme",
dans cet ordre. Elles sont formellement définies comme une fonction N-aire tandis que les
ontologies contiennent généralement des relations binaires afin d’exprimer la sémantique qui
relie chaque deux concepts, tel que le premier argument est le domaine et le deuxième argu-
ment correspond au Co-domaine (il peut être un type de donnée défini, tel que, « String »,
« Integer », etc.).
Les relations peuvent également être caractérisées par des propriétés [Zghal, 2010], et qui
sont de trois types : les propriétés intrinsèques à une relation, les propriétés qui lient deux
relations et les propriétés qui lient une relation à un concept.
- Incompatibilité : deux relations sont considérées incompatibles si elles ne peuvent pas lier
les mêmes instances de concepts (e.g. les relations "être à l’extérieur" et "être à l’intérieur"
sont incompatibles) ;
- Inverse : deux relations binaires sont inverses l’une de l’autre si, lorsque l’une lie deux
instances I1 et I2, l’autre lie I2 et I1 (e.g. les relations "a pour père" et "a pour enfant"
sont inverses) ;
- Exclusivité : deux relations sont dites exclusives si, quand l’une lie des instances de
concepts, l’autre ne lie pas ces instances, et vice-versa. L’exclusivité soulève l’incompatibilité.
Les propriétés liant une relation à un concept ont été proposées par Kassel and Perpette
13
(1999) :
- Lien relationnel : il existe un lien relationnel entre une relation L et deux concepts C1
et C2 si, pour tout couple d’instances des concepts C1 et C2, il existe une relation de type
L qui lie les deux instances de C1 et C2 ;
- Restriction de relation : il peut avoir une restriction de relation entre une relation R et
un concept C, si pour tout concept de type C, et toute relation de type R liant C, les autres
concepts liés par la relation sont d’un type imposé. La relation "mange" portant sur une
"personne" et un "aliment", lie alors une instance de "végétarien", qui est un concept sub-
sumé par "personne", et l’instance de "aliment", qui est forcément une instance de "végétaux".
Les concepts et les relations permettent de représenter une ontologie légère basée sur
une simple taxonomie de classes. Cependant, les ontologies lourdes contiennent de plus des
concepts et des relations, des axiomes (Fürst and Trichet (2005)). Dans ce qui suit, nous
expliquons la notion d’axiomes, comme étant l’un des composants d’une ontologie.
1.3.2.4 Axiomes
Décrire les connaissances dans une ontologie ne suffit pas pour atteindre l’objectif opé-
rationnel d’un Système à Base de Connaissances (SBC). En effet, le plus important n’est
pas d’avoir des connaissances sur un domaine, mais plutôt de leur mise en œuvre dans une
action, afin d’atteindre un objectif particulier (Teuliet and Girard (2001)) [Jridi, 2014]. Il
s’agit, également, d’avantager les systèmes informatiques de la possibilité d’inférer de nou-
velles connaissances à partir d’autres déjà existantes (Bachimont (2000)).
Les axiomes logiques constituent des assertions liées aux entités. Au lieu de compter sur
les labels et les termes des entités (qui sont destinés aux humains) pour transmettre la sé-
mantique, le concepteur d’ontologies doit contraindre l’interprétation possible des entités à
travers une utilisation judicieuse d’axiomes logiques pour rende leurs sens beaucoup plus
précis.
Ils sont aussi utilisés pour vérifier la consistance de l’ontologie, car ils permettent à un raison-
neur d’inférer des connaissances additionnelles qui ne sont pas déclarées directement. Plus
les axiomes exprimées dans les ontologies sont complexes, plus elles transportent des connais-
sances implicites qui peuvent être inférées par le raisonneur.
Les connaissances opérationnelles peuvent être des faits, des règles, ou des contraintes.
Un fait peut être une affirmation vraie et cognitive ou, un axiome qui aide à la description du
monde cognitif dans lequel s’inscrit le système à base de connaissances. L’énoncé "la classe
contient 32 étudiants" est un exemple de fait.
Une règle permet d’inférer de nouvelles connaissances, elle incarne une implication.
Les contraintes spécifient les impossibilités ou les obligations.
Le choix entre l’utilisation d’une règle ou d’une contrainte pour la représentation d’une
connaissance, n’est pas toujours facile. Il dépend de la manière dont les connaissances vont
14
être utilisées au niveau opérationnel. Certains considèrent que ces types de connaissances
doivent être incorporés dans les propriétés des concepts, des relations ou des instances de
concepts.
Une règle apparaît plutôt comme une propriété d’un concept ou d’une règle, elle ne porte
pas sur les instances.
Les contraintes peuvent se porter aussi bien sur les concepts et les relations que sur les ins-
tances.
Alors, les axiomes servent d’une part, à modéliser les énoncés qui sont toujours vrais, et
d’autre part, à vérifier la consistance de l’ontologie elle-même. En effet, ils sont très avanta-
geux pour inférer de nouvelles connaissances.
Pour résumer, selon Kalfoglou, et al. (2003), une approche algébrique plus formelle, iden-
tifie une ontologie comme étant une paire <S, A>, où S est la signature des entités de
l’ontologie (modélisée par une structure mathématique comme un treillis ou un ensemble
non structuré) et A est l’ensemble des axiomes ontologiques qui spécifient l’interprétation
voulue de la signature dans un domaine donné.
Selon Udrea, et al. (2007), les ontologies modélisent la structure des données (i.e. les en-
sembles de classes et des propriétés), la sémantique des données (sous la forme de contraintes
(axiomes) telles que les relations d’héritage ou les contraintes sur les propriétés), et les ins-
tances des données (les individus). Ainsi, les ontologies se composent d’une partie « structure
», et d’une partie « donnée ».
D’après Zhang, et al. (2017), une ontologie est un modèle à base d’arbre, à cause du
principe de l’hyponymie (la subsomption is-a) qui fait que chaque entité (classe ou propriété)
soit héritée d’une seule super-entité directe, formant ainsi une structure de graphe acyclique
enracinée.
Afin que les données d’une ontologie puissent être utiles et traitables par des machines,
elles doivent être décrites à travers des notations concrètes en utilisant des langages formels.
Dans la section suivante, nous allons présenter ces langages ontologiques.
Les langages de représentation des ontologies, sont les appuis pour la mise en place des
ontologies dans le Web. Ils constituent les standards qui régissent l’architecture du Web
sémantique et qui, également, assurent une interopérabilité sémantique entre les différents
15
intervenants.
Un schéma XML, noté XML(S), est une description du type d’un document XML. Il
comporte un ensemble de contraintes sur la structure et le contenu du document. Ainsi, un
document XML doit respecter cet ensemble de règles afin d’être considéré valide.
Linked Data permet d’utiliser le Web pour faciliter la construction de liens entre des
données dépendantes qui n’étaient pas encore liées, ou qui l’étaient auparavant via d’autres
méthodes. On y retrouve un ensemble de pratiques recommandées pour exposer, échanger et
relier des fragments de données, informations et connaissances sur le Web sémantique grâce
à l’usage des URI et de RDF.
Linked Data définit alors un moyen de publication de données semi-structurées sur le Web
de données, dans le but de lier les données et de les rendre plus accessibles.
Elles sont un espace de données global, composé de sources de données structurées et distri-
buées publiées dans le Web en langage RDF, sous forme de triplets RDF (sujet -> prédicat
16
-> objet), et inter-liées explicitement.
Linked Open Data (LOD) : ont connu une croissance rapide au cours des dernières
années. Elles se constituent de 1 163 data sets lisibles par machine (en 2017) ayant plus de
31 milliards de triplets RDF (en 2011) inter-liés par environ 504 millions liaisons (en 2011).
Les data sets du LOD sont principalement classés en neuf domaines : le domaine transversal
(e.g. DBpedia : la version « Linked Data » de Wikipedia), la géographie (e.g. Geonames),
le gouvernement, les sciences de la vie, la linguistique, les médias (e.g. NYTimes, et Lin-
kedMDB), les publications, les réseaux sociaux (e.g. FOAF), et le contenu généré par les
utilisateurs.
RDF est basé sur la théorie de graphes, qui permet de représenter les données sous forme
de triplets RDF. C’est le modèle standard pour le partage et l’échange des informations
sur le Web.
Un triplet RDF est un ensemble de trois informations liées <sujet, prédicat, objet>
comme l’indique la figure 1.2. Ce type de représentation est facile à interpréter parce qu’il
est un modèle mental assez simple.
- Le sujet est la ressource ou l’objet à modéliser, il est représenté par une URI.
- Le prédicat exprime un lien ou une relation entre le sujet et l’objet, représenté par une
URI également.
- L’objet est la valeur du prédicat du sujet, il peut être une URI, un identifiant local, ou
un littéral.
Sérialisation RDF : comme RDF a été conçu principalement pour représenter des res-
sources Web, sa syntaxe formelle utilise ordinairement XML (on appelle alors cette forme
RDF/XML). Cependant, cette dernière devient vite fastidieuse à lire pour les agents humains.
17
Pour rendre un document RDF plus accessible, le W3C offre des notations plus abstraites
que sont N3 et N-Triples (N-Triples étant un sous-ensemble de N3).
En ce sens, bien que RDF soit très flexible (donne la possibilité d’assembler n’importe
quoi, n’importe comment, à la description d’une ressource), les représentations dans ce for-
mat sont assez abstraites, platoniques et sans grande profondeur sémantique (faible degré de
hiérarchisation des descriptions). Pour couvrir cette lacune, un vocabulaire élémentaire a été
développé : RDFS (RDF Vocabulary Language).
RDF Schema est un langage pour décrire de simples vocabulaires dans le modèle RDF.
Ainsi, il n’est qu’une extension sémantique de RDF. Grâce à ce vocabulaire, la sémantique
des prédicats et les classes d’entités peuvent être définis. Cela laisse, entre autre, la possibilité
de déterminer des règles d’inférence afin de générer une grande quantité de triplets dérivés
de ceux existants, ce qui augmente, par conséquent, la capacité du raisonnement que peut
avoir les agents logiciels et les programmes qui traitent les données sur le Web sémantique.
RDFS permet notamment de définir des liens de "Subsomption" entre des classes et des re-
lations en utilisant les primitives rdfs :sub ClassOf et rdfs :subPropertyOf. Ces primitives sont
les liens de "Spécialisation" ou "is-a", qui permettent aux classes et aux relations d’hériter
des caractéristiques de leurs classes (ou de leurs relations) mères.
1.4.3 OWL
Le langage OWL (Schreiber et Dean) a vu le jour en 2004, dans la même période que RDF
et RDFS. Il a, par la suite, été étendu, dans l’année 2009, dans la norme OWL 2 (OWL
Working Group).
Il est, tout comme RDF, un langage profitant de l’universalité syntaxique de XML.
Ce standard a été conçu également pour réutiliser des concepts et des propriétés déjà dé-
finis dans RDF et RDFS. En ce sens, une base de connaissances OWL peut alors être écrite
comme une collection de triplets RDF.
OWL permet aux applications, qui l’utilisent, de pouvoir effectuer des inférences sur les don-
nées cumulées. Pour ce faire, il offre des opérateurs issus de la logique descriptive.
A part sa capacité de définir et de décrire des classes, des propriétés, et des individus
de classes, OWL permet aussi de définir des relations entre les classes (union, intersection,
disjonction, équivalence, subsomption etc.), des contraintes de cardinalité pour les valeurs
des propriétés (minimum, maximum, nombre exact), des relations spéciales pour les pro-
priétés (transitive, symétrique, fonctionnelle, inverse, réflexive, etc.), et des restrictions sur
le domaine et le co-domaine des propriétés, etc. Par conséquent, OWL possède une logique
très développée qui permet le raisonnement sémantique sur ces règles à l’aide d’un raisonneur.
18
ments appropriés sur les documents, revient à fournir un langage de qui la sémantique dépasse
celle du schéma RDF.
Le langage OWL diffère du couple RDF/RDFS en ceci que, contrairement à RDF, il est
précisément un langage d’ontologies. Les langages RDF et RDFS fournissent à l’utilisateur
la capacité de représenter des classes (i.e. avec des constructeurs) et des propriétés.
⇒ OWL offre aux machines une plus grande capacité d’interprétation du contenu Web que
RDF et RDFS, grâce à une vraie sémantique formelle et à un vocabulaire plus riche.
- Propriété : permet de définir des faits ou des relations entre les individus. Il existe en
OWL deux types de propriétés : les propriétés d’objet et celles de types de données.
- Instance : est un objet particulier instancié par les classes à l’aide de la relation prédéfinie
"Instance-Of". Elles peuplent les classes et véhiculent les connaissance à propos du domaine
en question.
1.4.3.1 OWL 1
Le langage OWL 1 détermine trois sous-langages, du moins expressif au plus expressif, à
savoir : OWL-Lite, OWL-DL et OWL-Full [Lacot, 2005].
- OWL-Lite est le premier sous langage de OWL et le plus simple. Il est dédié aux usagers
qui n’ont besoin que d’une hiérarchie simple de concepts. OWL-Lite est adapté, par exemple,
aux migrations rapides depuis un ancien thésaurus vers une représentation sous forme d’on-
tologies.
- OWL-DL est plus complexe qu’OWL-Lite, fournissant une expressivité bien plus impor-
tante. OWL-DL (OWL Description Logic) est fondé sur la logique descriptive, assurant alors
une adaptation au raisonnement automatisé. Malgré sa complexité relative face à OWL-Lite,
OWL-DL garantit la complétude des raisonnements (toutes les inférences sont calculables)
et leur décidabilité (leur calcul se fait en une durée finie).
- OWL-Full est la version la plus complexe et complète d’OWL, mais également celle qui
permet d’avoir le plus haut niveau d’expressivité. Il garantit la complétude et la décidabi-
lité des calculs liés à l’ontologie. OWL-Full fournit toutefois des mécanismes intéressants,
comme la possibilité d’étendre le vocabulaire par défaut de OWL. Il existe, entre ces trois
sous langages, une dépendance de nature hiérarchique : toute ontologie OWL-Lite valide est
19
également une ontologie OWL-DL valide, et toute ontologie OWL-DL valide est alors une
ontologie OWL-Full valide.
Ainsi, les développeurs d’ontologies choisissant OWL, devraient estimer quel sous-langage
convient le mieux à leurs besoins.
1.4.3.2 OWL 2
OWL 2 reprend les caractéristiques de sa version précédente en ajoutant quelques com-
posants supplémentaires. La principale contribution d’OWL 2 est de déterminer des profils,
des sous-langages de OWL 2, qui imposent et limitent les expressions exploitables selon l’uti-
lisation voulue de l’ontologie.
A l’opposé des sous-ensembles OWL-Lite, DL et FULL, les profils de OWL 2 sont indépen-
dants.
La norme OWL 2 détermine trois profils : OWL-EL, OWL-RL et OWL-QL [MAILLOT, 2015].
L’expressivité de ces langages proposés par OWL 2 est réglée en fonction de l’exploitation
voulue, de la complexité et également du niveau de raisonnement désirés.
Prenons l’exemple du domaine biomédical. Il y a neuf ontologies qui décrivent une maladie
neurologique, allant des ontologies très spécifiques couvrant une seule maladie (e.g. l’épilep-
sie, l’Alzheimer) à des ontologies couvrant toutes sortes de maladies telles que la « Disease
Ontology ». Il en résulte plusieurs ontologies qui décrivent les mêmes concepts sous des mo-
dèles légèrement différents.
20
• L’hétérogénéité terminologique se produit à cause des variations des noms utilisés
pour faire référence aux mêmes entités dans différentes ontologies. Ceci peut être causé par
l’utilisation de différents langages naturels, e.g. Paper vs. Articulo, ou différents sous-langages
techniques spécifiques à un domaine de connaissances bien déterminé, e.g. Paper vs. Memo,
ou l’utilisation de synonymes, e.g. Paper vs. Article.
1.6 Conclusion
Enfin, le volume des ontologies ne cesse pas d’augmenter avec les connaissances dans
différents domaines. Cette croissance, fait apparaître les limitations des anciennes méthodes
de gestion et de manipulation des ontologies et de graphes RDF, ce qui nous oblige de
concevoir des nouvelles méthodes pour cet effet.
21
Chapitre 2
2.1 Introduction
La sémantique du contenu des ressources dans le Web sémantique, vise à rendre l’infor-
mation explicite pour les machines dans une représentation formelle et standardisée. Cette
standardisation peut aider différents programmes et divers intervenants à inter-opérer ainsi
qu’à échanger des données. La description de la sémantique, dans le cadre du Web séman-
tique, est effectuée par l’intermédiaire des ontologies. Les objets ainsi que les relations, dans
l’univers du discours, sont conceptualisés afin d’être exploitables par les machines. Une des
caractéristiques du Web sémantique, est son hétérogénéité, qui décrit à la fois sa richesse et
son ambiguïté. Cette hétérogénéité reflète la diversité du monde réel, où les connaissances et
les informations peuvent provenir de plusieurs sources différentes. Ainsi, elles peuvent être
représentées dans divers formats. De même, dans le Web sémantique, l’hétérogénéité ne sera
pas une caractéristique exceptionnelle. Alors, le recours à des ontologies s’avère une bonne
solution, mais il ne permet pas d’atteindre une interopérabilité complète à cause de certains
handicaps, tels que le volume, la langue naturelle, etc. La récupération des données devient de
plus en plus difficile, dans le cadre du Web sémantique, en raison de l’hétérogénéité ainsi que
de l’énorme quantité de données qui circulent sur le Web. D’autre part, les utilisateurs ordi-
naires ne peuvent pas gérer les langages d’interrogation hautement spécifiques (e.g. SPARQL)
ou les techniques basées sur la gestion des connaissances.
22
2.2.1 Stockage des données RDF
Avec l’énorme volume des données à sauvegarder, les fichiers (ceux qui stockent les re-
présentations textuelles des données) deviennent vite illisibles pour les utilisateurs et diffici-
lement exploitables. C’est dans ce cadre que les bases de données RDF (BD-RDF), ou
Triple-Stores, sont apparus.
Cette structure expressive polyvalente nous permet de modéliser tout sorte de scénarios, de
la construction d’une fusée spatiale à un système de routes, de la chaîne d’approvisionnement
ou de la provenance des aliments, à l’histoire médicale des populations, etc (e.g. les données
de Twitter sont facilement représentées en tant qu’un graphe). La figure 2.1 montre un petit
réseau des utilisateurs Twitter dont chaque nœud est étiqueté User, indiquant son rôle. Ces
nœuds sont alors connectés grâce à des relations, ce qui aide à établir, davantage, le contexte
sémantique : à savoir que Billy FOLLOWS Harry et que Harry, à son tour, FOLLOWS Billy,
etc.
23
. Modèle graphique étiqueté par des propriétés (i.e. Labeled Property Graph
Model) (figure 2.2) 1 , est le plus populaire des modèles. Il suit les caractéristiques suivantes
[Barrasa, 2017] :
- Il contient des nœuds et des relations (dont chaque nœud possède un ID unique) ;
- Les nœuds contiennent des propriétés (des paires clé-valeur) ;
- Les nœuds peuvent être étiquetés par un ou plusieurs labels (ces labels caractérisent les
différents rôles d’un domaine) ;
- Les relations sont nommées et orientées, et toujours, possèdent un nœud de début et un
autre de fin ;
- Les relations peuvent aussi contenir des propriétés.
Ce modèle a été développé par un groupe suédois, dont leur principale motivation ne se
basait pas essentiellement sur l’échange et la publication de données, mais plutôt sur un
stockage efficace de ces données connectées afin d’assurer une interrogation et un parcours
rapides du graphe.
Pour comparer un modèle RDF simple et un modèle graphique étiqueté par des propriétés,
nous pouvons dire que le premier est conçu spécialement pour l’échange des données, alors
que le deuxième est conçu principalement pour le stockage et l’interrogation [Barrasa, 2017].
Pour le modèle RDF simple, un sommet est soit un sujet soit un objet, ainsi qu’un arc
décrit le prédicat qui les relie. Ce modèle ne possède pas une structure interne (i.e. un en-
semble de propriétés), comme l’indique la figure 2.3 2 .
24
Figure 2.3 – Modèle RDF simple
En 2008, Angles et Gutierrez ont réalisé une enquête sur l’historique des modèles de bases
de données graphiques [et Claudio Gutierrez, 2008].
Dans une première approche, Roussopoulos et Mylopoulos (1975), face à l’échec des systèmes
de cette époque à prendre en compte la sémantique des bases de données, ont proposé un
réseau sémantique pour le stockage des données. Une structure implicite des graphes pour les
données elles-mêmes, a été présentée dans le modèle de données fonctionnelles par Shipman
(1981), dont le but était de fournir une interface de base de données « conceptuellement
naturelle ».
Une approche différente décrit le modèle logique de données (MLD) (Kuper et Vardi (1984)),
où un modèle explicite de base de données graphique avait pour but de généraliser les mo-
dèles relationnels, hiérarchiques et de réseau. Plus tard, Kunii (1987) a proposé un modèle
de base de données graphiques appelé G-Base permettant de représenter des structures de
connaissances complexes.
Lécluse et al. (1988) ont présenté O2 qui est un modèle de base de données orientées objet,
basé sur une structure de graphe. Dans le même contexte, GOOD (Gyssens et al. (1990))
est un modèle d’objet orienté graphe, destiné à devenir une base théorique pour les systèmes
dans lesquels la manipulation ainsi que la représentation sont basées sur des graphes trans-
parents.
Guting (1994) a proposé GraphDB, destiné à modéliser et interroger des graphes dans des
bases de données orientées objet, et motivé par la gestion de l’information dans les réseaux
de transport.
Silberschatz et al. (1996) a défini un modèle de base données (db-model ) comme "une col-
lection d’outils conceptuels utilisés pour modéliser des représentations des entités du monde
25
réel, ainsi que les relations entre elles". Pour les BD graphiques, les outils conceptuels qui
font un db.model, doivent au moins s’adresser à la structuration des données, la description,
la maintenance et la manière avec laquelle s’effectue la récupération ou l’interrogation des
données.
Le projet GRAS (Kiesel et al (1996)) utilise les graphes attribués afin de modéliser des in-
formations complexes à partir de projets d’ingénierie logicielle. L’OEM (Papakonstantinou
et al. (1995)) vise à fournir un accès intégré à des sources d’information hétérogènes, en
mettant l’accent sur l’échange des informations.
Newman (2003) [et Claudio Gutierrez, 2008] a divisé les bases de données graphiques en
quatre catégories :
- Réseaux sociaux : où les nœuds sont des personnes ou des groupes, tandis que les liens
représentent les relations ou les flux entre les nœuds (e.g. l’amitié, les relations d’affaires, les
réseaux de recherche, etc).
- Réseaux d’information : où les relations représentent le flux d’information, comme les
citations entre les papiers académiques, les relations entre les classes de mot dans un thésau-
rus, etc.
- Réseaux technologiques : dont les aspects géographiques et spatiaux de la structure sont
les plus importants, e.g. Internet (comme un réseau d’ordinateurs), réseaux téléphoniques,
réseau de livraison (bureau de poste), etc.
- Réseaux biologiques : représentent des informations biologiques dont le volume, la gestion
et l’analyse sont devenus un problème, en raison de l’automatisation du processus de collecte
de données (e.g. réseaux alimentaires, réseaux de neurones, etc).
Un Triple Store est considéré comme un système de gestion de base de données RDF, dont
une de ses caractéristiques clés est sa capacité de mener des inférences. Les Triples Stores
(encore non pas tous) offrent, en plus du chargement et du stockage de données, la possibilité
de traiter l’occurrence, la sécurité, la récupération, les mises à jour, etc.
Les systèmes de gestion de données RDF peuvent être divisés en deux catégories en fonc-
26
tion de leur capacité à être conformes au modèle RDF : les natives (resp. non natives) qui
sont (resp. ne sont pas) conformes à un modèle RDF. Nous allons détailler ces deux types de
BD-RDF en indiquant leurs différences dans ce qui suit.
- Représentation verticale
Les données sont stockées dans une unique table de trois colonnes qui correspond chacune
au sujet, prédicat, ou objet, respectivement.
Alors, afin d’interroger ces données, les requêtes doivent être traduites en SQL. Pour amé-
liorer la traduction d’un langage d’interrogation RDF (tel que SPARQL ; section 2.2.3, page
31) vers le langage SQL, il est possible de créer d’autres tables auxiliaires.
Ce type de BD-RDF emploient également des outils d’optimisation de requête, e.g. les vues
matérialisées et les indexs, afin de précipiter l’exécution des requêtes SQL. Parmi les BD-
RDF utilisant cette représentation, nous citons 3Store, RDFStore, etc.
Inconvénient : cette représentation est coûteuse pour l’interrogation des bases de données,
vu le besoin d’effectuer un grand nombre d’auto-jointures. De même, les mises à jour néces-
sitent, dans la majorité du temps, la modification de l’ensemble de triplets.
- Représentation binaire
Cette représentation fait correspondre chaque prédicat à une table de deux colonnes (sujet,
objet), contenant les sujets possédant au moins une valeur pour ce prédicat, ainsi que pour
chaque sujet, le ou les objets correspondants pour ce prédicat. Alors, une table est créée pour
chaque propriété. Parmi les BD-RDF qui utilisent cette représentation, nous pouvons citer
4Store et JenaSDB (qui peut être couplé avec PostgreSQL et MySQL).
- Représentation horizontale
Permet de créer une table à chaque classe, possédant pour colonnes les propriétés de la classe.
Elle utilise le constructeur rdfs :Class afin de construire les tables associées aux différentes
classes (e.g. ontoDB ). Afin d’identifier les propriétés des classes, nous utilisons le construc-
teur rdfs :Domain.
⇒ Pour conclure, les relations dans les BDR existent seulement pour la modélisation
du temps comme un moyen de joindre des tables. Cependant, nous avons besoin souvent
de désambiguïser la sémantique des relations qui relient les entités. Et comme les données
27
aberrantes se multiplient et que la structure globale de l’ensemble de données devient plus
complexe et moins uniforme, la connectivité également se traduit, dans le monde relationnel,
par des jointures accrues. Tous cela influence les performances et rend difficile l’évolution
d’une base de données existante (en réponse à l’évolution des besoins). De même, la plupart
des BD NoSQL (i.e. clé-valeur, de document ou de colonnes) stockent des ensembles de
documents/valeurs/colonnes, déconnectés. Cela rend difficile leur utilisation pour des données
et des graphes connectés.
DEX (2007) : son objectif est d’assurer de bonne performance dans la gestion de très
grands graphes. Elle permet même l’intégration de diverses sources de données. Elle a un
bon modèle d’intégrité pour la gestion de graphes temporaires et persistants. Les opérations
comme l’analyse des liens, l’analyse du réseau social, la reconnaissance des patrons et la re-
cherche par mots-clés, peuvent être réalisées grâce à son API Java.
Neo4j (2007 ) : est une BD graphique open source, implémentée en Java. Elle est intégrée
et basée sur disque. Elle est capable de représenter les données d’une manière facilement
accessible. Dans Neo4j, un graphe peut être considéré comme une structure richement inter-
connectée.
La puissance des bases de données graphiques (i.e. BD-RDF natives) [PELAP, 2016] :
• Performance : les performances des BD graphiques restent relativement constantes,
même lorsque l’ensemble de données augmente. C’est parce que les requêtes sont localisées
sur une partie du graphe. Par conséquent, le temps d’exécution pour chaque requête est pro-
portionnel uniquement à la taille de la partie du graphe traversée pour traiter cette requête,
et non pas à la taille du graphe global.
• Flexibilité : les graphes sont de nature additifs, ce qui signifie que nous pouvons
ajouter de nouveaux types de relations, de nouveaux nœuds, de nouvelles étiquettes et de
nouveaux sous-graphes à une structure existante, sans perturber les fonctionnalités d’une
28
application. Nous n’avons pas à modéliser notre domaine de manière exhaustive à l’avance.
La flexibilité du modèle graphique signifie également que nous pouvons effectuer moins de
migrations, ce qui réduit alors les risques et les frais généraux de maintenance.
La description de données dans les BD-RDF natives, différencie d’une BD-RDF à une
autre. En effet, la représentation de données est interne et propre à chaque DB-RDF native.
Nous pouvons ainsi distinguer les BD-RDF à partir des structures de données utilisées.
- Les bases de données graphiques sont plus polyvalentes avec les langages d’interrogation ;
- Les bases de données graphiques peuvent stocker divers types de graphes, notamment les
graphes non orientés, les hypergraphes, etc. Par contre, les Triples Stores se concentrent uni-
quement sur le stockage de rangées de triplets RDF. Ils ont pour but de stocker des données
RDF qui représentent un type particulier de graphes : graphe étiqueté orienté ;
- Les bases de données graphiques sont basées sur les nœuds et les propriétés alors que les
Triples Stores sont centrés arcs ;
- Les Triples Stores fournissent également des inférences sur les données tandis que les bases
de données orientées graphe ne le font pas ;
- Les bases de données graphiques peuvent assurer une très haute performance au niveau de
l’accessibilité et la navigation (e.g. la récupération du chemin le plus court entre deux nœuds,
ou bien la détermination de la manière dont n’importe quels deux nœuds sont connectés).
D’après [Angles, 2012] et en considérant le niveau de maturité des bases de données gra-
phiques en termes d’équipements offerts par le système de gestion de base de données, il
existe deux types de développements :
- Bases de données graphiques : elles doivent fournir les composants majeurs d’un système
de gestion de base de données ;
- Magasins graphiques (graph stores) : regroupe des implémentations offrant des fonctionna-
lités de base pour stocker et interroger des graphes.
Puisque RDFS permet de raisonner sur les données RDF, quelques BD-RDF utilisent
un moteur de raisonnement. Nous allons voir dans la sous-section suivante, les techniques
existantes destinées à réaliser des raisonnements sur les BD-RDF.
29
2.2.2 Moteurs de raisonnement et saturation de données
Appelés également moteurs d’inférence ou raisonneurs, ils permettent d’effectuer des in-
férences sur un ensemble de données RDF. Leur principal rôle est de générer de nouvelles
données sous forme de triplets, ou également de vérifier la validité de l’ensemble de données,
tout cela en appliquant des règles d’inférences. La plupart des BD-RDF possèdent un rai-
sonneur (e.g. Hermit, Pellet, Racer, etc).
Les moteurs d’inférence procèdent avec deux principales techniques : le chaînage avant et
le chaînage arrière. Ces dernières sont très coûteuses en termes du temps par rapport aux
règles d’inférence utilisées et à la taille des données à inférer. Par conséquent, ce raisonnement
peut être effectué avant l’exécution des requêtes, on appelle cela saturation des données, ou
bien lors de l’interrogation de données, c’est la reformulation des requêtes [PELAP, 2016].
Pendant la saturation, chaque triplet inféré peut participer à l’inférence d’autres triplets
jusqu’à ce qu’un point fixe soit atteint (i.e. pas de nouveaux faits peuvent être inférés).
Ensuite, la réponse à la requête est réduite à une simple évaluation de la requête sur cet
ensemble de données saturé.
Par conséquent, la saturation fournit un support efficace pour le traitement de requêtes.
Cependant, elle nécessite beaucoup du temps pour qu’elle soit calculée, et beaucoup d’espace
de stockage pour le sauvegarde des données inférées, également un effort important pour le
maintien ou le re-calcul de la fermeture après les mises à jour.
De même, toute modification des données RDF nécessite de refaire la saturation (car du
moment où l’ensemble de données est saturé, aucun nouveau triplet ne peut être inféré
avec une ou plusieurs règles d’inférence). Afin de résoudre ce problème, en particulier si les
données RDF sont dynamiques, quelques BD-RDF proposent la technique de reformulation
de requêtes.
30
2.2.2.2 Reformulation des requêtes
C’est une alternative à la technique de saturation de données et consiste à réécrire la
requête (au moment de son exécution) en prenant en considération un ensemble de règles
d’inférence. Le langage d’interrogation SPARQL (section 2.2.3) dispose de beaucoup de ré-
gimes d’inférence sous lesquels une requête peut être exécutée. Parmi les régimes d’inférence
de SPARQL, nous pouvons citer le régime d’inférence RDFS.
De même, pour les utilisateurs et les systèmes qui désirent définir eux-mêmes leurs règles
d’inférences, le langage d’interrogation SPARQL propose un régime d’inférence RIF (Rules
Interchanged Format) permettant de représenter et prendre en considération des règles d’in-
férence non prédéfinies dans SPARQL.
Le principal inconvénient de la reformulation réside dans le fait que les requêtes refor-
mulées ont tendance à être syntaxiquement complexes. Cela augmente généralement et de
manière significative, le coût de l’évaluation.
Afin d’exploiter les données RDF stockées dans les BD-RDF, qu’elles sont saturées ou
non, des langages d’interrogation ont été proposés. Ces derniers sont de différents types.
Nous pouvons citer, par exemple, la catégorie de langages qui traitent les données sous forme
de triplets sans prendre en compte la sémantique (qui est associée aux éléments des triplets),
e.g. le langage SPARQL, RDQL, SquishQL, etc. Dans une autre catégorie de langages, la
séparation entre le schéma de données et de l’ontologie est bien mentionnée au moment
de l’interrogation (e.g. le langage RQL, SeRQL et OntoQL). Il existe également une autre
famille de langages qui sont inspirés de XPath ou XQuery afin d’interroger des données et
des ontologies (e.g. RDF-Path et Versa).
SPARQL, est l’acronyme de Simple Protocol And RDF Query Language, est une recom-
mandation du W3C depuis 15 janvier 2008. Il joue le rôle d’un pont entre les technologies
du Web sémantique (dont RDF ), et les plateformes Web déjà existantes. Il est une API
universelle d’accès aux données.
SPARQL est, d’une part, un protocole et un langage de requête permettant l’accès aux don-
nées RDF. Il est aussi un protocole d’accès comme un service Web (SOAP : Simple Object
Access Protocol), et également, un langage de présentation des résultats (XML).
Il ne prend pas en charge l’inférence en elle-même. Il ne fait rien de plus que de prendre les
descriptions de ce que l’application veut, sous la forme d’une requête, et renvoie le résultat
31
sous forme de graphe RDF. Par ailleurs, SPARQL peut être utiliser afin d’exprimer des re-
quêtes sur différentes sources de données.
Modification : La norme SPARQL 1.1 introduit, entre autres, les requêtes SPARQL
d’ajout ou de suppression de triplets dans une base de données RDF grâce aux clauses
INSERT et DELETE. Ces requêtes permettent de créer de nouveaux triplets suivant un
patron de graphe (i.e. TP, section 2.2.3.1). Elles peuvent utiliser une clause WHERE afin
d’insérer des données qui sont générées à partir des données existantes.
32
le modèle qu’il définit, ce processus est appelé matching.
Dans un patron de graphe (BGP ), les variables qui sont partagées par au moins deux
patrons de triplets (TP ), sont nommées variables de jointures. Ainsi, interroger un graphe
RDF avec un BGP, revient à chercher des valeurs pour chacune des variables du patron de
graphe pour que le graphe RDF obtenu (en remplaçant les variables par ces valeurs) soit un
sous-graphe du graphe RDF global.
⊕ Avec SPARQL, nous n’avons pas besoin de connaître à l’avance la structure et le contenu
des informations afin de pouvoir les récupérer. En fait, SPARQL permet d’interroger n’im-
porte quel constituant d’un triplet admettant la forme Sujet-Prédicat->Objet.
⊕ Une base de données graphique, qui peut être interrogée par des requêtes SPARQL via
Internet, propose un point d’accès, appelé endpoint SPARQL, où l’envoie de requêtes se fait
via HTTP (i.e. Hyper Text Transfer Protocol).
33
langages d’interrogation stables et établis, à l’instar de SQL ou XQuery. La liste suivante
présente les caractéristiques manquantes dans SPARQL.
Négation : SPARQL ne supporte pas bien la "négation", e.g. trouver toutes les per-
sonnes qui sont les amis de Bob mais qui ne connaissent pas Alice ;
Les prédicats ne peuvent pas avoir des propriétés : Cela peut être une limitation
RDF héritée par SPARQL, puisque RDF représente tout dans des triplets. Il est facile d’im-
plémenter les propriétés d’un nœud en utilisant des triplets supplémentaires. En revanche, il
est très difficile d’implémenter des propriétés dans des arcs. Dans SPARQL, il n’existe aucun
moyen d’attacher une propriété à un prédicat, e.g. Bob connaît Peter depuis 5 ans ;
Support des correspondances floues avec des résultats classés : SPARQL est
basé sur un modèle de requête booléen conçu pour une correspondance exacte. Exprimer une
correspondance floue avec un résultat classé, est très difficile. Par exemple, retrouvez les 20
premiers postes "similaires" à ce poste et classés par degré de similarité ;
Vues : dans les langages d’interrogation traditionnels tels que SQL, des vues logiques sur
les données jouent un rôle considérable. Ils sont indispensables pour la conception de base de
données et pour la gestion de l’accessibilité. SPARQL ne prend en ce moment pas en charge
la spécification de vues logiques sur les données ;
En somme, les ontologies et les technologies liées à ces dernières, telles que le langage
SPARQL, sont encore inconnues ou peu maîtrisées par des utilisateurs non-experts. Ces
utilisateurs peuvent alors avoir besoin d’un appui ou d’une assistance lors de l’exploitation de
ces données. Par ailleurs, les ontologies contiennent des données hétérogènes et dynamiques,
pouvant rapidement évoluer avec le temps et rendre, par la suite, les connaissances des usagers
obsolètes pour l’exploitation de ces données RDF. Ce manque de connaissance des utilisateurs
sur les données des RDF, est l’un des causes des formulations incomplètes ou incorrectes
des requêtes qui renverront, par conséquent, des réponses insatisfaisantes aux utilisateurs.
34
Pour éviter cela, les usagers ont besoin d’être accompagnés et soutenus dans la construction
des requêtes et/ou dans le traitement de ces dernières. Pour palier ce problème, plusieurs
approches coopératives ont ainsi été développées afin de proposer des solutions alternatives
aux utilisateurs.
Stegmaier et al. en 2009 ont évalué les bases de données RDF existantes à ce moment-là,
et qui supportent le langage d’interrogation SPARQL, tout en se basant sur quelques critères
[Stegmaier et al., 2009] :
- L’extensibilité : ce qui permet l’intégration de nouvelles fonctionnalités ;
- Aperçu architectural ;
- Disponibilité de langages d’interrogation (i.e. si elles supportent d’autres langages d’inter-
rogation) ;
- Interprétation des formats de données RDF ;
- L’expressivité de SPARQL et la performance des frameworks/applications.
En 2011, Morsey et al. ont proposé une méthodologie de création de Benchmark SPARQL
générique appelée DBPSB (i.e. DBPedia SPARQL Benchmark), afin d’évaluer la perfor-
mance et la capacité des Triples Stores les plus populaires : Virtuoso, Sesame, Jena-TDB
et BigOWLIM [Morsey et al., 2011]. Pour ce faire, ils ont utilisé 24 modèles de requête
SPARQL, couvrant les caractéristiques de SPARQL les plus couramment utilisées, et conte-
35
nant toutes les fonctionnalités de ce dernier (e.g. FILTER, REGEX, etc.)
Leur méthodologie suit les quatre exigences clés pour les Benchmarks spécifiques au domaine :
- Pertinence : le test des opérations typiques dans un domaine spécifique ;
- Portabilité : le Benchmark doit être exécutable sur différentes plateformes ;
- Évolution : il est possible d’évaluer ce Benchmark sur de petits et de très grands ensembles
de données ;
- Compréhensible.
Virtuoso était clairement le plus rapide, suivi par BigOWLIM, Sesame et JenaTDB. Il y
avait en moyenne une baisse linéaire de la performance de la requête avec l’augmentation de
la taille de l’ensemble de données. Virtuoso a été le seul qui a répondu à toutes les requêtes
à temps, et celui qui a pu évoluer sur le DBPSB.
D’après Angles (2012) dans [Angles, 2012], une base de données graphique doit fournir :
- Des interfaces externes (interfaces utilisateur ou API ) ;
- Des langages de base de données (pour la définition, la manipulation et l’interrogation de
données) ;
- Un optimiseur de requêtes ;
- Un moteur de base de données (modèle de niveau intermédiaire) ;
- Un moteur de stockage (modèle de bas niveau) ;
- Un moteur de transaction ;
- Des fonctionnalités d’opération et de gestion (pour le réglage, la sauvegarde, la récupéra-
tion, etc).
Parmi les BD graphiques qui respectent ces conditions, il a cité, AllegroGraph, DEX, Hyper-
GraphDB, InifiniteGraph, Neo4j et Sones.
36
Figure 2.4 – Fonctionnalités du stockage des données RDF (Angles (2012))
Du point de vue fonctionnement et manipulation des données (figure 2.5), il a évalué si une
base de données graphique implémente des langages de base de données, des interfaces de
programmation d’application (API) et des interfaces graphiques utilisateur (GUI). Il a consi-
déré trois langages de base de données :
- Le langage de définition de données (Data Definition Language), qui permet de modifier
le schéma de la base de données en ajoutant, modifiant ou supprimant ses objets ;
- Le langage de manipulation de données (Data Manipulation Language), qui permet d’in-
sérer, de supprimer et de mettre à jour des données dans la BD ;
- Le langage d’interrogation (Query Language), qui permet d’extraire des données.
Il a constaté, également, que les contraintes d’intégrité sont mal étudiées par les BD gra-
phiques. Il a, entre autres, considéré plusieurs contraintes d’intégrité :
- La vérification des types, pour tester la cohérence d’une instance par rapport aux définitions
dans le schéma ;
37
- L’identité de nœud / de relation, pour vérifier qu’une entité ou une relation peut être iden-
tifiée par une valeur (e.g. un nom ou un ID) ou par les valeurs de ses attributs (e.g. une
identification de voisinage) ;
- L’intégrité référentielle, pour vérifier que seules les entités existantes sont référencées ;
- Vérification de cardinalité, pour vérifier l’unicité des propriétés ou des relations ;
- Dépendance fonctionnelle, pour tester qu’un élément du graphe détermine la valeur d’un
autre ;
- Contraintes du patron graphique pour vérifier une restriction structurelle (e.g. des contraintes
de chemin).
Il a finalement conclu que la prise en charge des schémas évolutifs est la caractéristique des
bases de données graphiques couramment utilisées pour justifier l’absence de contraintes d’in-
tégrité. Cela n’est pas un argument valide, sachant que que la cohérence des données, dans
une base de données, est égale ou même plus importante qu’un schéma flexible.
Il a testé la puissance des bases de données graphiques à résoudre plusieurs types requêtes,
qui peuvent être considérées essentielles (figure 2.6).
Figure 2.6 – BD graphiques actuelles et leur support pour des requêtes essentielles (Angles
(2012))
1. Requêtes d’adjacence :
Deux nœuds sont adjacents (voisins), s’il existe un arc qui les relie. De même, deux arcs
sont dits adjacents s’ils relient un nœud en commun. Quelques requêtes typiques dans ce
groupe sont, l’adjacence de nœud/arc de base, afin de tester si deux nœuds sont adjacents,
de calculer les k-voisins d’un nœud, de lister tous les voisins d’un nœud, etc.
38
2. Requêtes d’accessibilité :
Ce type de requêtes est caractérisé par les problèmes de chemin et de parcours. Il a considéré
deux types de chemins :
4. Requêtes de synthèse :
Ces requêtes ne sont pas censées consulter la structure du graphe. Cependant, elles sont ba-
sées sur des fonctions spéciales qui permettent de résumer ou d’opérer sur les résultats de
la requête, renvoyant normalement une seule valeur. Les fonctions agrégées (e.g. moyenne,
count, maximum, etc) sont incluses dans ce groupe.
De plus, Angles a considéré des fonctions pour calculer certaines propriétés d’un graphe ainsi
que ses éléments. Par exemple :
Sachant que la plupart des bases de données graphiques implémentent une API au lieu d’un
langage d’interrogation, il a, ainsi, évalué si une API peut répondre à une requête essentielle.
D’un autre côté, et puisque il n’existe pas de langages standards pour l’interrogation de
graphes RDF (l’absence d’un langage d’interrogation standard est un inconvénient des bases
de données graphiques actuelles), en 2012 Mike Buerli a divisé les modèles de bases de don-
nées graphiques par langage [Buerli and Obispo, 2012] :
- Bases de données graphiques ;
- BD graphiques distribuées (e.g. Horton (2010) créée par Microsoft, InfiniteGraph (2010)) ;
- Bases de données graphiques à clé-valeur (e.g. VertexDB (2009), CloudGraph (2010)) ;
- Bases de données de documents (e.g. Orientdb (2009), CouchDB) ;
- Bases de données graphiques SQL (e.g. Filament (2010), G-Store (2010)) ;
39
- Bases de données graphiques Map/Reduce (e.g. Pregel (2009), Phoebus (2010), Giraph
(2011)).
Dans un graphe, les arcs, définis entre les paires de sommets, forment la topologie de ce
dernier. Ainsi, une base de données graphique doit être efficace pour exploiter les informa-
tions topologiques. Elle doit fournir un moyen rapide et efficace pour traverser les graphes.
Lorsqu’on traite des problèmes de parcours du graphe, l’approche habituelle consiste à char-
ger les données du graphe dans la mémoire principale, et à effectuer la (les) opération (s) de
traversée, tout en gardant la structure entière dans la mémoire.
Cependant, cette approche impose une limite à la taille du graphe. Les solutions, pour par-
courir le graphe sur les supports persistants, ne sont pas courantes, car le coût des accès
aléatoires à un support persistant est problématique. C’est un grand défi pour les bases de
données graphiques, où un utilisateur s’attend à la persistance des données et à la prise en
charge des opérations de parcours rapides. C’est la caractéristique principale qui distingue
les bases de données graphiques des autres systèmes de gestion de données.
Du point de vue performance et capacité d’effectuer des opérations de parcours sur la struc-
ture graphique, Ciglan et al. (2012) dans [Ciglan et al., 2012], ont développé un benchmark de
parcours afin de tester la capacité des bases de données graphiques, Neo4J, DEX, OrientDB,
le référentiel RDF natif (NativeSail ) et le prototype de recherche SGDB8, à :
- Effectuer des traversées locales à partir d’un ou plusieurs sommets, et explorer leur voisinage
k-hop ;
- Effectuer des parcours de tout le graphe ;
- Tester les cas où le graphe entier ne peut pas être mis en cache dans la mémoire principale.
La conclusion des résultats préliminaires est que les traversées locales dans un grand réseau,
sont plus adaptées aux systèmes testés, que ceux nécessitant des traversées de toute la struc-
ture du graphe.
Jouili et al. (2013) ont évalué, dans leur travail [Jouili and Vansteenberghe, 2013], quatre
BD graphiques (Neo4j, Titan, OrientDB et DEX ). Ils ont mis l’accent sur l’utilisation des
Blueprints (une API Java générique pour les bases de données graphiques) dans les applica-
tions, ce qui permet de changer de base de données graphique sans des efforts d’adaptation.
Ils ont également utilisé, pour leur comparaison, GDB (i.e. Graph Database Benchmark) qui
est un cadre d’analyse comparative distribué, open-source sous Java. Son principal objectif
est de comparer les bases de données graphiques en utilisant des opérations graphiques ha-
bituelles telles que, l’exploration des voisins d’un nœud, la découverte du plus court chemin
entre deux nœuds, ou simplement l’obtention de tous les sommets qui partagent une propriété
spécifique.
Ils ont voulu aussi analyser l’impact de la taille d’un graphe sur les performances d’une base
de données, les parcours et les opérations intensives. Ils ont alors utilisé deux graphes : l’un
ayant 250 000 sommets (1 250 000 arcs), et l’autre ayant 500 000 sommets (2 500 000 arcs).
40
Lissandriniet et al. en 2017 [Lissandrini et al., 2017] ont fourni une évaluation systéma-
tique et complète des bases de données graphiques les plus modernes ArangoDB et BlazeGraph
(qui sont les BD graphiques les plus récentes), Neo4J, OrientDB, Sparksee (DEX) et Titan.
Leurs expérimentations ont été réalisées sur 28 millions nœuds et 31 millions arcs, par op-
position aux travaux existants (250 000 nœuds et 2.2 millions arcs). Ils ont utilisé plusieurs
bases de test telles que yeast, Frb-S, Mico et ldbc. Ils ont évalué pour chaque BD :
- Le chargement de données :
Le temps du chargement : pour tous les ensembles de données, ArangoBD avait le temps
le plus court, suivi par Neo4j. Sur l’ensemble de données le plus grand (Frb-L), ArangoDB
était encore une fois le plus rapide. Neo4j (v.3.0) est juste quelques minutes plus lent, suivi
par Neo4j (v.1.9).
L’espace du chargement : ils ont mesuré la taille du disque occupée par les données
pour chaque système.
- Taux d’achèvement : puisque les bases de données graphiques sont souvent utilisées pour
les applications en ligne, il est important de s’assurer que les requêtes s’exécutent dans un
délai raisonnable.
- Insertion, mis à jour et suppression : les tests montrent des performances extrêmement
rapides pour Sparksee, Neo4j (v.1.9) et ArangoDB.
- Les sélections générales : BlazeGraph est le plus lent, avec des performances autour de
500 ms pour la recherche des nœuds, et 4 secondes ou plus pour la recherche des arêtes. Neo4j
(v.1.9), OrientDB et Sparksee retournent un résultat dans environ 10 ms.
- Les performances globales : ils ont comparé le temps cumulé pris par chaque système
pour compléter l’ensemble des requêtes.
Ainsi, avoir des données sémantiques sur le Web et compréhensibles par les machines, ne
suffit pas. Il est nécessaire d’avoir des outils pour traiter les informations, les transformer et
faire des raisonnements au-dessus.
Le travail de Hartig et Heese (2007) dans [Hartig and Heese, 2007], est fondé sur un modèle
graphique de requête SPARQL, appelé SQGM (SPARQL Query Graph Model). Au-dessus
du SQGM, ils ont défini des règles de transformation afin de faciliter et de réécrire la requête
en une autre sémantiquement équivalente. Le SQGM est utilisé pour stocker les informations
sur la requête en cours de traitement.
41
Les éléments de base d’un SQGM sont les opérateurs et les flux de données. Un opérateur
traite les données, et un flux de données connecte l’entrée et la sortie de deux opérateurs. Un
SQGM peut être interprété comme étant un graphe étiqueté orienté avec des sommets et des
arcs représentant des opérateurs et des flux de données, respectivement. Les opérateurs ont
une tête, un corps et des annotations supplémentaires. Un arc symbolise le flux de données
entre deux opérateurs indiquant qu’un opérateur consomme la sortie d’un autre opérateur.
Un flux de données permet également de transférer les données fournies par l’un des opéra-
teurs et consommées par un autre.
Ils ont défini un ensemble de types d’opérateurs afin de pouvoir couvrir les structures du
langage SPARQL. Parmi ces opérateurs, il existe l’opérateur du patron graphique (BGP) qui
est définit dans la spécification SPARQL. Dans la représentation graphique d’un opérateur
du patron graphique, la tête liste les noms des variables liées par l’opérateur, alors que le
corps contient les propriétés de l’opérateur.
Une autre idée pour l’interrogation en utilisant SPARQL a été présentée dans le travail de
Quilitz et Leser (2008), où ils ont développé DARQ [Quilitz and Leser, 2008]. Ce système
fournit un accès de requête transparent à plusieurs services SPARQL, c’est-à-dire qu’il donne
à l’utilisateur l’impression d’interroger un seul graphe RDF malgré la distribution de données
sur le Web.
Le moteur de recherche décompose une requête en sous-requêtes, auxquelles chaque service
peut répondre. Un optimiseur de requêtes prend les sous-requêtes et construit un plan d’exé-
cution optimisé. Enfin, les sous-requêtes sont envoyées aux sources de données et les résultats
sont intégrés.
Les données RDF sont considérées comme un graphe orienté étiqueté, et le résumé du
graphe est représenté comme une structure d’index, où certains nœuds sont fusionnés tout en
conservant tous les arcs. Plus une requête est optimisée, moins il faut du temps pour trouver
une réponse correspondante. L’efficacité de la requête joue un rôle important lorsqu’il s’agit
de données à grande échelle.
Dans ce cadre, Nguyen et al., ont examiné les approches récentes pour l’évaluation des re-
quêtes [Nguyen et al., ]. La plupart de ces approches récupèrent des sous-graphes (i.e. des
données RDF) pour chaque patron de triplet dans la requête. Puis, les données RDF sont
jointes (fusionnées) pour trouver une réponse correspondante. Ainsi, le nombre des opéra-
tions de jointure augmente avec le nombre de patrons de triplets. Cette approche entraîne un
grand nombre de données intermédiaires inutiles pour chaque requête, et nécessite un temps
considérable pour générer et traiter des données qui ne contribueront pas aux résultats de
la requête. Lorsque l’ensemble de données RDF évolue, le volume de résultats intermédiaires
peut avoir un effet significatif sur les performances d’une requête.
Pour cette raison, ils ont adopté un nouvel index structurel permettant d’améliorer le sto-
ckage et la récupération des données pour le traitement des requêtes SPARQL.
42
l’étape du traitement des requêtes ;
- Query Optimizer : génère un plan d’exécution pour la requête. Les patrons de triplets sont
disposés dans un ordre, tel que le résultat de correspondance d’un patron sert d’entrée pour
le patron suivant dans le plan. Comme le résultat de chaque patron est vérifié pour sa validité
à chaque étape de traitement, le nombre de résultats intermédiaires est sensiblement réduit ;
- Query Processor : consiste à trouver les points de correspondance avec les variables de
la requête, à vérifier ces derniers et ensuite à les combiner pour retrouver l’ensemble de la
réponse pour toute la requête.
En 2009, Tzoganis et al. [Tzoganis et al., 2009] ont déployé une application orientée utili-
sateur pour l’interrogation des ontologies. L’utilisateur peut facilement charger une ontologie
existante et proposer des requêtes écrites en langage d’interrogation SPARQL-DL. Leur ap-
plication Web peut s’exécuter à partir de n’importe quel navigateur Web majeur. Elle a été
développée avec Google Web Toolkit (GWT).
Google Web Toolkit permet aux développeurs d’écrire une interface AJAX avec le langage
de programmation JAVA, puis de compiler ce code source JAVA en JavaScript. Il peut faci-
lement être combiné avec plusieurs outils de développement JAVA comme Eclipse. Ainsi, il
offre un environnement de développement facile à gérer qui facilite également de déboguer le
code JAVA.
AJAX est un ensemble de technologies existantes (e.g. HTML, CSS, JavaScript, XML, etc.)
qui viennent ensembles afin de construire des applications Web modernes.
La fonctionnalité de leur application devient disponible via son interface. Elle est très simple
et minimaliste. Elle se compose de deux parties principales, dont la 1ère prend l’entrée de
l’utilisateur (i.e. l’ontologie et la requête), ainsi que la 2ème (nommée « résultats ») affiche la
réponse à l’utilisateur.
Le moteur d’interrogation SPARQL-DL de Pellet (le raisonneur utilisé) effectue le pré-
traitement de la requête. Cela inclut la suppression des atomes redondants et l’élimination
des atomes « sameAs » avec les b-nœuds : « bnodes » (ils s’agissent des nœuds vides ou de
ressources anonymes ou bien ils peuvent être des nœuds dans un graphe RDF qui ne sont ni
identifiés par un URI ni ils sont des littéraux). L’étape du pré-traitement suivante consiste
à supprimer les atomes triviaux e.g. SubClassOf (C, C) et SubClassOf (C, owl :Thing). La
dernière étape du pré-traitement consiste à diviser la requête en composants connectés afin
d’éviter le calcul croisé de leurs résultats.
Dans la même année, Hartig et al. ont proposé une approche qui, durant l’exécution d’une
requête, permet de découvrir les sources de données qui peuvent être pertinentes pour ré-
pondre à cette requête [Hartig et al., 2009]. Parce que quelques requêtes ne peuvent pas être
répondues depuis un seul ensemble de données, le moteur d’interrogation exécute chaque
requête à partir d’un ensemble croissant de données pertinentes retrouvées du Web.
Cette approche a plusieurs limitations :
- Besoin des URIs initiaux dans les requêtes afin de pouvoir traverser les liens ;
- Découverte de liens infinis ;
- Dé-référencement d’URI qui est une tâche longue ;
43
- Les serveurs du Linked Data mettent des restrictions aux clients, comme ne servant qu’un
nombre limité de requêtes par seconde.
Une méthode qui a été déployée par Huang et al. en 2011 dans [Huang et al., 2011], four-
nit un système de BD-RDF en cluster, parce que vue la quantité de données RDF est en
augmentation permanente, il n’est plus possible de stocker ni d’accéder à toutes ces données
sur une seule machine tout en assurant des performances raisonnables. Par conséquent, au
lieu d’affecter aléatoirement les triplets aux partitions, ils ont utilisé un algorithme de parti-
tionnement de graphes qui permet aux triplets (qui sont proches dans le graphe RDF ) d’être
stockés sur la même partition, pour enfin paralléliser l’accès à ces machines au moment de
l’interrogation. Ils ont introduit une méthode automatique permettant la décomposition des
requêtes à des morceaux qui peuvent être exécutés indépendamment sans aucune communi-
cation réseau.
Kollia et al., en 2011, ont pensé à développer un nouvel algorithme [Kollia et al., 2011]
qui permet de :
- Répondre aux requêtes SPARQL sous OWL 2 (désormais SPARQL-OWL) ;
- Décrire une implémentation basée sur le raisonnement HermiT ;
- Utiliser cette implémentation pour étudier une gamme de techniques d’optimisation, amé-
liorant les performances de réponse aux requêtes SPARQL-OWL.
Ainsi, comme SPARQL est un langage d’interrogation RDF basé sur des triplets, ils ont
montré brièvement comment les objets OWL peuvent être mappés en des triplets RDF. La
figure 2.7 montre une représentation RDF des axiomes (1), (3) et (4) dans la syntaxe de
Turtle.
Les axiomes OWL qui utilisent uniquement l’expressivité du schéma RDF, par exemple les
restrictions de domaine et d’image, aboutissent généralement à une traduction directe. Par
exemple, l’axiome (3) est mappé au triplet (3’).
Les expressions complexes de classe, telles que la super-classe dans l’axiome (1), nécessitent
généralement des nœuds vides auxiliaires, e.g. le nœud vide auxiliaire - : x (axiome (1’)),
pour l’expression de la super-classe, qui est ensuite utilisé comme sujet des triplets suivants.
Dans la traduction de l’axiome (4), ils ont utilisé le constructeur de nœud vide de Turtle [ ]
et ( ) comme raccourci pour les listes dans RDF (axiome (4’)).
44
Figure 2.7 – Mapping des objets OWL en des triplets RDF (Kollia et al. (2011))
Ils ont utilisé la bibliothèque ARQ3 du Jena Semantic Web Toolkit pour analyser la requête et
pour les opérations d’algèbre SPARQL. Le BGP (basic graph pattern) est analysé et mappé
dans des modèles d’axiomes en utilisant l’extension OWL API. Les modèles d’axiomes résul-
tants sont ensuite transmis à un optimiseur de requête. Ce dernier applique la réécriture du
modèle d’axiome, puis recherche un bon plan d’exécution pour la requête, en se basant sur
les statistiques fournies par le raisonneur (figure 2.8).
Figure 2.8 – Les principales phases de traitement de requêtes (Kollia et al. (2011))
En effet, le défi principal est de développer des interfaces permettant d’exploiter l’expres-
sivité du modèle de données sous-jacent et du langage d’interrogation, tout en diminuant leur
complexité. Ainsi, il est indispensable d’avoir une approche pour la réponse aux questions
45
permettant aux utilisateurs d’exprimer, d’une manière arbitraire, leurs besoins en information
complexe en langage naturel sans les obliger à connaître le schéma sous-jacent, le vocabulaire
ou le langage d’interrogation.
Plusieurs systèmes de réponse aux questions pour les données RDF ont été proposés, e.g.
Aqualog, Power-Aqua, NLP-Reduce et FREyA. La plupart de ces systèmes permettent de
transformer la requête du langage naturel en une représentation à base de triplets. Ensuite,
avec l’application des métriques de similarité et des heuristiques de recherche, ils vont retrou-
ver les correspondances des sous-graphes à partir des référentiels RDF. Cependant, parfois la
structure sémantique originale de la question ne peut pas être fidèlement capturée en utilisant
des triplets.
C’est pour cette raison que Unger et al. (2012) dans [Unger et al., 2012], ont proposé une
nouvelle approche, qui permet de générer tous les modèles de requête SPARQL. Cela se fait
en capturant la structure sémantique du besoin en information de l’utilisateur ainsi qu’en
ne laissant ouverts que des emplacements spécifiques pour les ressources, les classes et les
propriétés. Ces emplacements doivent être déterminés par rapport à l’ensemble de données
sous-jacent (i.e. doivent être traités avec des URIs), en utilisant l’extension WordNet (figure
2.9).
Figure 2.9 – Le modèle basé sur la génération de requêtes SPARQL (Unger et al. (2012))
Ils ont essayé de générer tous les modèles possibles. Par la suite, ils ont sélectionné celui
qui capture le mieux la structure des données considérées. Pour ce faire, ils ont adopté le
46
mécanisme de l’analyse (parsing) et de la construction du sens du système de réponse aux
questions Pythia, car il s’adapte tout simplement avec leurs buts. Le processus du parsing
de Pythia repose sur un lexique qui spécifie, pour chaque expression, une représentation syn-
taxique et une sémantique.
Une fois une liste de requêtes SPARQL est disponible, ils doivent décider laquelle doit être
exécutée par rapport au Triple Store (TP). Cependant, cela ne garantit pas que la combi-
naison des patrons de triplets, dans une requête, est significative et mène à un résultat non
vide. Par conséquent, il est nécessaire d’exécuter et de tester les requêtes avant de retourner
un résultat à l’utilisateur. Leur système retourne la requête ayant le score le plus élevé avec
un résultat non vide.
Le principal obstacle que l’utilisateur rencontre, est quand il essaie de formuler une re-
quête, pourtant il n’a aucune information sur la structure sous-jacente et le vocabulaire de
données. Dans ce cadre, une méthode a été présentée dans le travail de Campinas et al. en
2012 [Campinas et al., 2012], basée sur un résumé du graphe de données et assiste l’utilisa-
teur pendant la formulation de sa requête, par la recommandation des éléments de requêtes
structurels possibles, tout en se basant sur l’état actuel de la requête. Ce modèle assure la
synthèse du graphe et contient trois couches :
- Une couche d’entité et une autre d’ensemble de données : elles représentent les ensembles
de données, les entités et leurs relations ;
- Une couche de collection de nœuds : représente les collections de nœuds et leurs relations.
Ils ont développé un éditeur SPARQL, qui est une application tirant partie du résumé du
graphe de données afin d’aider l’utilisateur dans la formulation efficace de requêtes SPARQL,
même sans une connaissance préalable de la structure et le vocabulaire des sources de données.
Cet éditeur supporte quatre types de recommandations : la classe, le prédicat, les relations
entre les variables, et les graphes nommées.
Pendant la formulation de la requête, cet éditeur fournit à l’utilisateur un parmi ces différents
types de recommandations en se basant sur l’état de la requête modifiée. L’état de la requête
modifiée est composé d’un patron graphique incomplet, ainsi que de la position du curseur.
Ils ont également développé un arbre de syntaxe abstrait (Abstract Syntax Tree : AST), qui
est une structure de données utilisée par le système, afin de traduire les besoins courants de
l’utilisateur en des recommandations possibles.
Makris et al. (2012) ont déployé SPARQL-RW [Makris et al., 2012], qui est un système
supportant l’interrogation transparente des ensembles de données, gérés par différentes or-
ganisations. En utilisant cette infrastructure, les utilisateurs peuvent exprimer des requêtes
SPARQL en se basant sur leur propre schéma RDF/S et accéder automatiquement aux don-
nées grâce à une fédération de ressources RDF dans le Web. Formellement, étant donné une
ontologie source (Os ), une autre cible (Or ), et un ensemble de correspondances M entre (Os )
et (Or ) ; SPARQL-RW, prend en entrée une requête SPARQL exprimée sur (Os ) et la réécrit
en une autre requête correspondante à elle sémantiquement exprimée sur (Or ), tout en res-
47
pectant M.
Yahya et al. (2012) [Yahya et al., 2012] ont développé DEANNA (DEep Answers for
maNy Natural Asked questions) qui est une méthode basée sur un programme linéaire entier
(ILP ), afin de résoudre plusieurs tâches de désambiguïsation. Cette méthode assure la seg-
mentation des questions du langage naturel en éléments, le mapping de ces éléments en des
entités, classes et relations sémantiques. Enfin, la construction des patrons de triplet (TP)
SPARQL.
L’ILP utilise la richesse des bases de connaissances larges comme Yago2, qui possède des
informations non seulement sur les entités et les relations, mais également sur les noms de
surface et les patrons textuels par lesquels les sources Web se réfèrent à eux (e.g. Yago2 sait
que « Casablanca » peut se référer à une ville ou à un film, et « joué dans » est un patron
qui peut désigner une relation).
Dans ce contexte, Zou et al. (2014) ont proposé de traiter la désambiguïsation, plutôt
au niveau de l’étape d’évaluation de la requête (i.e. 2ème étape) au lieu de la 1ère étape
[Zou et al., 2014]. Cela permet d’éviter le processus de désambiguïsation coûteux de l’étape
de la compréhension de la question, ainsi d’accélérer la totalité de la performance (i.e. la
précision et le temps de réponse). Plus précisément, ils ont permis que les termes (dans N )
puissent correspondre à plusieurs éléments sémantiques (i.e. sujets, objets et prédicats) dans
le graphe RDF G, au niveau de l’étape de la compréhension de la question.
48
lesquelles ils ont construit le graphe de requête sémantique Qs .
Intuitivement, une correspondance d’une question N à partir d’un graphe RDF, G, est une
correspondance du sous-graphe sémantique Qs avec G.
Plusieurs recherches et outils commerciaux offrent des gestionnaires de données RDF cen-
tralisés, tandis que l’accroissement des données exige des stockages distribués et de l’indexa-
tion. Dans ce cadre, Papailiou et al. (2014) ont développé H2RDF+ [Papailiou et al., 2014],
qui est un système de gestion de données RDF (s’applique sur une infrastructure Cloud),
open source, assurant une forte efficacité. Il utilise HBase pour l’indexation des triplets. Ils ont
permis aux utilisateurs de choisir un ensemble de données à charger et à indexer. Également,
ils ont permis aux utilisateurs d’écrire leur propre requête SPARQL ou bien de sélectionner
une prédéfinie.
En 2015, Hammoud et al., ont présenté DREAM (Distributed RDF Engine with Adaptive
Query Planner and Minimal Communication) qui est un moteur RDF distribué avec un pla-
nificateur de requêtes adaptatif et une communication minimale. Il conserve les avantages des
systèmes RDF centralisés et distribués, et évite leurs inconvénients [Hammoud et al., 2015].
DREAM stocke un ensemble de données intacte sur chaque machine du cluster, et utilise un
planificateur de requêtes qui partitionne efficacement n’importe quelle requête SPARQL. En
effet, le planificateur de requêtes transforme Q en un graphe G. Il décompose G en plusieurs
ensembles de sous-graphes, et mappe chaque ensemble sur une machine séparée. Ensuite,
toutes les machines traitent leurs ensembles de sous-graphes en parallèle et se coordonnent
les unes avec les autres pour produire le résultat final de la requête.
Allocca et al. (2016) ont développé un outil de recommandation de requête SPARQL, ap-
pelé SQUIRE [Allocca et al., 2016] qui, sur la base d’un ensemble de critères permettant de
mesurer la similarité entre la requête initiale et les recommandations, démontre la faisabilité
du processus de reformulation des requêtes sous-jacentes. SQUIRE classe les requêtes recom-
mandées et offre un support précieux pour les recommandations de requêtes sur un ensemble
de données RDF cible, inconnu et non mappé. Alors, non seulement il aide l’utilisateur à
apprendre le modèle de données et le contenu d’un ensemble de données RDF, mais aussi il
n’exige pas de l’utilisateur une connaissance intrinsèque des données.
Étant donné une requête SPARQL Qo , qui est satisfaisante avec un ensemble de données
RDF source (Ds ), SQUIRE fournit des recommandations de requête en reformulant auto-
matiquement Qo en d’autres Qr qui sont satisfaisantes avec un ensemble de données RDF
cible (Dt ).
SQUIRE permet aux utilisateurs de se référer à un ensemble de données RDF source, écrire
la requête Q, et spécifier l’ensemble de données RDF cible. Une fois l’utilisateur clique sur le
bouton « Recommend », SQUIRE retourne une liste de requêtes recommandées, classées de
haut en bas. Ces dernières, non seulement sont exprimées en termes de l’ensemble de données
49
cible, mais sont également garanties être satisfaisantes (i.e. l’ensemble de résultats n’est pas
vide).
Pour résumer, SQUIRE vise à recommander des requêtes dont les reformulations :
- Reflètent autant que possible la même signification, la même structure, le même type de
résultats et la même taille de résultat que la requête initiale et ;
- Ne nécessitent pas de faire la correspondance entre les deux ensembles de données.
La recherche facettée est devenue une approche de recherche exploratoire dans de nom-
breuses applications en ligne. Elle a été dernièrement proposée comme un paradigme appro-
prié pour l’interrogation des données RDF.
Pour cette raison, Arenas et al.(2016) ont proposé SemFacet qui est un cadre théorique
rigoureux pour la recherche facettée dans le contexte des graphes de connaissances basés sur
RDF [Arenas et al., 2016]. Ils ont développé une interface de requête simple et puissante pour
les non-experts. Cette interface permet la navigation à travers les collections inter-connectées
des entités, auxquelles ils ont défini une ontologie comme un ensemble fini de règles et de
faits et ils ont capturé les facettes qui sont pertinentes pour cette ontologie. Ils ont formalisé
leurs notions de « interface facettée » et « requête facettée », dont les requêtes à facettes sont
décrites par des « termes » de la logique du premier ordre et par des fragments du langage
de requête SPARQL. Cette requête est également guidée par les valeurs sélectionnées dans
l’interface.
Les méthodes existantes d’interrogation exigent, non seulement que l’utilisateur ait une
connaissance approfondie sur le schéma du graphe RDF, mais aussi se concentrent sur la
similarité structurelle du graphe et ne considèrent pas la similarité sémantique. Cependant,
nous pouvons trouver deux patrons de graphe (BGP ) qui possèdent une large différence
structurelle, mais qui ont une signification sémantique identique. C’est dans ce cadre que
Zheng et al. (2016) étaient les premiers à proposer une nouvelle mesure de similarité appe-
lée la distance d’édition du graphe sémantique. Cette mesure permet de mesurer la
similarité entre les graphes RDF (réellement entre le graphe G et la requête Q pour en-
fin renvoyer les "top-k" sous-graphes de G comme des candidats à Q). Ils ont également
conçu un nouvel index « résumé sémantique du graphe » permettant de résumer le graphe
de connaissances afin de réduire l’espace de recherche, ce qui améliore les performances de
l’interrogation [Zheng et al., 2016].
50
la traduction des mots-clés utilisateurs en des requêtes formelles.
Ils ont également adopté plusieurs mécanismes pour le classement des requêtes, car le pro-
cessus de construction de la requête peut aboutir à de nombreuses requêtes, i.e. les inter-
prétations possibles des mots-clés. Alors, un schéma de classement est bien nécessaire pour
envoyer les requêtes qui correspondent le plus à la signification voulue par l’utilisateur. Ce
classement prend en compte de nombreux facteurs pertinents, tels que la longueur de la re-
quête, la pertinence des éléments des ontologies.
Ils ont proposé un algorithme d’exploration et une nouvelle structure de données graphique
appelée RACK, qui ne représente qu’un résumé de l’ontologie ou des données RDF d’origine.
Cela réduit l’espace de données pertinent pour l’exploration.
La recherche par mot-clé offre l’avantage de la facilité d’utilisation, mais présente des défis
en raison de leur nature souvent laconique et ambigüe. Dans ce cas, chaque mot-clé doit être
interprété, et la requête entière doit être mappée à un ensemble d’expressions conditionnelles,
i.e. clause WHERE et clause RETURN. Cependant, il n’est pas toujours facile de trouver un
mappage unique. Alors, le problème devient celui d’identifier les K interprétations souhaitées
par l’utilisateur.
C’est dans ce cadre que Anyanwu et al., en 2011, ont abordé le problème de la génération
d’interprétations de requêtes (mots-clés) sur les BD-RDF, en utilisant des informations pro-
venant de l’historique des requêtes de l’utilisateur [Fu and Anyanwu, 2011]. Les utilisateurs
posent, souvent, une série de questions connexes, en particulier dans des scénarios explora-
toires. Dans ces scénarios, les informations sur les requêtes précédentes peuvent être utilisées
pour influencer l’interprétation d’une requête plus récente.
Ils ont fait face à deux principaux défis :
- Capturer et représenter efficacement l’historique des requêtes ;
- Exploiter efficacement l’historique des requêtes pendant l’interprétation de cette dernière.
51
En 2011, Elbassuoni et al., ont proposé un modèle d’interrogation utilisant des requêtes par
mot-clé sur les graphes RDF [Elbassuoni and Blanco, 2011]. Ce modèle récupère un ensemble
de sous-graphes correspondants aux mots-clés de la requête, ainsi qu’il les classe en se basant
sur le modèle du langage statistique (LMs). Leur base de connaissances est constituée d’un
ensemble de triplets S-P-O. Pour pouvoir traiter les requêtes par mot-clé, ils ont construit
un document virtuel pour chaque triplet ti , qu’ils l’ont appelé Di .
Di contient un ensemble de mots-clés qui sont extraits du sujet et de l’objet des triplets, et
des mots-clés représentatifs pour les prédicats.
Ils ont stocké tous les termes du document Di dans un index inversé. Alors, étant donnée
une requête par mot-clé, ils ont utilisé cet index inversé pour récupérer, pour chaque mot-clé
d’une requête, une liste de triplets correspondants. Ils ont rejoint ensuite les triplets à partir
des listes différentes en fonction de leurs sujets et objets pour récupérer des sous-graphes
avec un ou plusieurs triplets.
Afin d’éviter de récupérer des sous-graphes arbitrairement longs, ils ont limité les sous-graphes
récupérés pour avoir les deux propriétés suivantes :
- Les sous-graphes doivent être uniques et maximaux, i.e. chaque sous-graphe récupéré ne
doit pas être un sous-ensemble de tout autre sous-graphe récupéré ;
- Les sous-graphes doivent contenir des triplets correspondants à différents ensembles de
mots-clés. Autrement dit, aucun triplet, dans le même sous-graphe, ne correspond exacte-
ment au même ensemble de mots-clés. Si deux triplets correspondent au même ensemble de
mots-clés, alors ils font partie de deux différents résultats possibles de la requête utilisateur,
et doivent être considérés comme des parties de deux sous-graphes distincts.
C’est dans ce cadre qu’ils ont présenté SINA. Il est un système de recherche par mot-clé (ou
requête en LN) fournis par l’utilisateur, et traduits en requête SPARQL conjonctives, qui sont
exécutées sur un ensemble de sources de données inter-connectées. SINA utilise un modèle de
Markov caché pour déterminer les ressources les plus appropriées pour une requête, à partir
de différents ensembles de données.
SINA est capable également de construire des requêtes fédérées en exploitant les liens entre
les ressources.
Ce système a été évalué sur trois ensembles de données différents. Il a pu répondre exacte-
ment à 25 requêtes du QALD-1 (i.e. Question Answering over Linked Data). De même, ils
ont étudié l’exécution de Sina dans ses implémentations mono-cœurs et parallèles.
52
La plupart des approches disponibles, exploitent le parcours du graphe en temps réel afin
d’identifier les sous-graphes appropriés. Certaines d’entre elles fournissent des résultats ap-
proximatifs parce que le parcours des graphes RDF avec des millions ou des milliards de
données est très coûteux et prend beaucoup du temps. Par conséquent, il est nécessaire de
fournir des méthodes pouvant réduire la traversée du graphe, dans le temps de génération de
requête.
Dudhani et al. (2016) [Rashmi Dudhani, 2016] ont proposé une technique de « segmentation
profonde » pour l’interrogation par mots-clés, traitée sur des bases de données RDF. Cette
approche réalise un élagage agressif des interprétations non pertinentes à partir de l’espace
des interprétations considéré.
Ils ont conçu les premiers algorithmes efficaces permettant d’énumérer toutes les réponses
dans l’ordre, afin de calculer les "top-k" réponses (selon certains critères de classement), où
chaque réponse est une sous-structure du graphe contenant tous les mots-clés saisis.
Ils ont présenté également un schéma d’indexation pour RDF qui décrit les caractéristiques
structurelles du graphe, ses chemins et les informations sur l’accessibilité des nœuds, afin
d’accélérer la récupération des sous-structures représentant les résultats de la requête. En
outre, l’index permet de faciliter les opérations de maintenance au cas où l’ensemble de
données évolue.
D’autres travaux ont laissé la tâche d’écriture des requêtes SPARQL à l’utilisateur (même
pour les non-experts), mais en lui fournissant un appui et une assistance au moment de
l’écriture de ces dernières. Parmi les autres méthodes développées, nous trouvons celles qui
permettent d’optimiser les requêtes SPARQL (e.g. en éliminant les triplets redondants, en
réorganisant les clauses de la requête, en proposant un résumé du graphe RDF, etc).
53
D’autres approches se sont concentrées sur le stockage des données RDF dans des BD-
RDF, ou des Triples Stores, et ensuite ils ont fourni des méthodes et des algorithmes permet-
tant d’assurer une interrogation rapide et efficace de ces données, en utilisant des requêtes
SPARQL. Entre autres, la plupart des méthodes existantes s’appuient sur des applications
Web (interface depuis un point d’accès : endpoint : permet d’effectuer des requêtes SPARQL
sur une base de connaissances. Une manière de transfert des requêtes SPARQL des clients
à un service Web capable de les exécuter et de renvoyer les résultats via HTTP). Alors, ils
n’assurent pas une gestion persistante des données RDF, permettant de stocker et d’accéder
aux données graphiques sur un support persistant.
Les solutions pour parcourir un graphe RDF sur les supports persistants, ne sont pas cou-
rantes car le coût des accès aléatoires à un support persistant est problématique. C’est un
grand défi pour les BD graphiques, où l’utilisateur s’attend à la persistance des données et à
la prise en charge des opérations de parcours rapides.
Certaines méthodes existantes, non seulement elles exigent que l’utilisateur ait une connais-
sance approfondie sur le schéma du graphe RDF, mais aussi, l’utilisateur ne peut interroger
qu’une seule ontologie, à la fois, stockée dans une BD-RDF.
D’autres approches se sont concentrées sur l’indexation des données RDF, et comme le
stockage et l’interrogation des données fortement indexées peuvent être efficaces et faisables
pour des requêtes simples, ils sont, par contre, pas conseillés et difficiles à manipuler en exé-
cutant des requêtes compliquées.
En outre, le problème de passage à l’échelle est parmi les causes des limites de perfor-
mance des systèmes réalisant les travaux d’interrogation. En effet, les solutions offertes par
les Triples Stores dépassent leur capacité de stockage. Ceci donne l’opportunité d’améliorer
les capacités des algorithmes d’interrogation et de recherche.
2.6 Conclusion
RDF et RDFS utilisent, pour décrire des connaissances, une structure particulière (i.e.
graphe), dans laquelle les nœuds sont des concepts représentés par des propriétés et les arcs
sont des prédicats décrivant les relations entre ces concepts. Ils permettent également de
formuler des règles de raisonnement qui peuvent être employées afin d’inférer de nouvelles
connaissances. Dans ce chapitre nous avons expliqué le stockage et l’interrogation des connais-
sances à partir des BD-RDF. Certaines sont dites non-natives (i.e. s’appuient sur les SGBDR)
alors que d’autres sont natives et elles utilisent la structure en graphe pour la représentation
des connaissances. Certaines BD-RDF se chargent, dans leur système, d’un moteur de raison-
54
nement qui est capable de fonctionner sous deux modes différents, la saturation des données
et la reformulation des requêtes. Les requêtes exprimées sur ces connaissances sont représen-
tées grâce aux langages d’interrogation adaptés, dont le plus utilisé est SPARQL. Nous avons
effectué une étude d’art sur quelques méthodes de stockage des données RDF existantes,
ainsi que sur les différentes approches qui visent à générer, d’une manière automatique ou
semi-automatique, des requêtes formelles à partir de mots-clés ou de phrases exprimés par
l’utilisateur en langage naturel.
55
Chapitre 3
3.1 Introduction
La récupération des données de la gigantesque masse disponible, devient de plus en plus
difficile dans le cadre du Web sémantique, ainsi que l’accès aux données représente, de plus
en plus, un réel besoin pour les utilisateurs. Comme il est très difficile pour un utilisateur
final de surmonter et maîtriser la complexité des langages et des schémas des connaissances,
la mise à disposition des interfaces des moteurs SPARQL, est devenue une nécessité : afin
de pouvoir former une requête valide sur les bases de connaissances du Web sémantique,
l’utilisateur doit avoir une idée sur le langage SPARQL, les ontologies employées, ainsi que,
la forme ou la structure des graphes RDF considérés.
Pour simplifier le processus d’interrogation, une solution envisageable est la génération auto-
matique de requêtes SPARQL basée sur les mots-clés fournis par l’utilisateur. Notre travail
se place dans ce contexte de recherche, i.e. comment pouvons-nous interpréter et élucider
une requête en langage naturel et la traduire en une requête SPARQL ?
56
- La barrière adaptative et qui fait que les interfaces assurant de bonnes performances de
recherche, ne sont malheureusement pas très portables : la plupart du temps, ces systèmes
sont dépendants du domaine et par conséquent, difficiles à adapter à d’autres contextes ;
- Le problème de l’habitabilité : lorsqu’on donne trop de liberté à l’utilisateur pour exprimer
ses requêtes, il peut les exprimer au-delà des capacités du système. Par conséquent, une inter-
face doit exiger des structures à l’utilisateur pour l’aider pendant le processus de formulation
de sa requête ;
Un autre problème qui nous intéresse est celui du passage à l’échelle des méthodes de stockage
et d’interrogation des données RDF.
Système de fichiers : est une zone de mémoire libre, ou RAM, qui n’a été allouée à aucun
processus. Lorsqu’un processus demande un fichier ou une partie d’un fichier, ce fichier est
chargé en mémoire dans la cache dy système de fichiers.
Cache d’objet : parce que Neo4j s’exécute dans une JVM, il gère les nœuds et les rela-
tions en tant que objets Java en mémoire.
⊕ Choix des APIs : nous avons accès à toute la gamme d’API s pour créer et interroger des
données ;
⊕ Transactions explicites : grâce au Core API (section 3.3.1.2.b, page 60), nous pouvons
contrôler le cycle de vie transactionnel en exécutant une séquence de commandes arbitraire-
ment complexes sur la BD dans le contexte d’une transaction unique, etc.
⇔ Lors de l’exécution en mode intégré, nous devons garder à l’esprit ce qui suit :
- JVM (Java Virtuel machine) : uniquement Neo4j est une BD JVM. Beaucoup de ses APIs
sont, alors, accessibles uniquement à partir d’un langage basé sur JVM. Puisque Neo4j est
écrit en Java, et comme toutes autres applications écrites en Java, nous devons configurer la
JVM pour avoir des performances optimales ;
- Le comportement du GC (Garbage Collector) : lors de l’exécution en mode intégré, Neo4j
57
est soumis au comportement de récupération de place (GC) de l’application hôte. Les longues
pauses GC peuvent affecter le temps d’interrogation ;
∗ Cycle de vie de la BD : l’application est responsable du contrôle du cycle de vie de la BD,
ce qui inclut le démarrage et la fermeture en toute sécurité.
• Neo4j embedded peut être mis en cluster pour une haute disponibilité ainsi
qu’une mise à l’échelle horizontale.
Comme le montre la figure 3.1, Neo4j stocke les données graphiques dans un certain
nombre de différents fichiers de stockage. Chaque fichier de stockage contient les données
d’une partie spécifique d’un graphe. La répartition des responsabilités de stockage facilite les
parcours performants de graphes. Cela signifie que la vue de l’utilisateur sur le graphe et les
enregistrements sur le disque, sont structurellement dissemblables.
58
des nœuds, les relations entre eux et les propriétés, forment un espace de nœuds (i.e. un
réseau cohérent représentant les données du graphe (Neo Technology 2006 )).
La figure 3.2 montre les composants d’un graphe de propriété simple. Neo4j utilise, égale-
ment, ce modèle pour le stockage des données, dont tous les nœuds ont des identifiants (ID)
et toutes les relations sont dirigées et ont un type (e.g. records, have, etc).
La figure 3.3 décrit comment créer un petit graphe, sous Java, composé de deux nœuds
connectés avec une relation et quelques propriétés.
59
les BD graphiques n’ont pas forcément le même nombre de couches, ni nécessairement les
couches qui se comportent et interagissent exactement de la même manière.
3.3.1.2.d Cypher
Il est un langage d’interrogation déclaratif, inspiré de SQL et SPARQL. Il assure une
interrogation et une mise à jour efficaces du Triples Store. Neo4j prend en charge aussi le
langage d’interrogation impératif Gremlin (il était au départ le langage par défaut de Neo4j,
mais Neo Technology a décidé de créer Cypher pour faciliter la mise en main, la lecture et
l’écriture des requêtes).
60
Les requêtes Cypher suivent une certaine syntaxe, et les clauses les plus importantes sont :
En outre, Neo4j prend en charge des indexs en utilisant Apache Lucene. Un index porte sur
l’attribut d’un nœud et permet de parcourir aisément les nœuds d’un graphe afin d’appliquer
des requêtes efficaces avec le langage Cypher.
61
dans l’algorithme 1. Il prend en entrée une ontologie ou plusieurs (section 3.5.2.3, page 87),
et retourne une réponse à une requête utilisateur écrite en langage naturel. Dans ce qui suit,
nous allons décrire chaque phase séparément.
1
2 Entrée : Une ontologie, O.
3 Sortie : Une réponse à une requête (mots-clés) utilisateur en LN, Q.
1: Analyse de l’ontologie O en des ensembles d’entités ;
2: Extraction des triplets RDF (S,P,O) à partir de ces ensembles d’entités ;
3: Chargement des triplets RDF dans Neo4j ;
4: Interrogation de la base de données graphique Neo4j ;
Algorithme 1 : Algorithme récapitulatif des différentes phases de notre processus
Le parsing en détail :
• On parse les classes de(des) l’ontologie(s) d’entrée et on extrait pour chaque classe
ses annotations (ses labels, ses commentaires), ses sous-classes, ses classes équivalentes, et
disjointes ;
• On parse les propriétés d’objet/ de type de données de(s) l’ontologie(s) d’entrée et
on extrait pour chaque propriété ses annotations, ses sous-propriétés, ses super-propriétés,
ses domaines, ses images, ses propriétés inverses (seulement pour les propriétés d’objet),
équivalentes, disjointes, et son type (fonctionnelle, symétrique, etc) ;
• On parse les instances et on extrait pour chacune ses annotations, ses classes qui
l’instancient, ses "Same" et "Different" instances.
⇔ Pour le parsing, nous avons choisi d’utiliser OWL API qui est une API performante,
reconnue et professionnelle. Nous avons utilisé également le raisonneur Hermit, qui est un
raisonneur d’ontologies écrites en OWL, et dont son utilisation n’est pas obligatoire, car
OWL API a aussi un raisonneur par défaut. Hermit permet de déterminer si l’ontologie est
cohérente, identifier les relations de subsomption entre les classes, déduire des inférences, etc.
62
Nous avons choisi d’effectuer le raisonnement pendant le parsing de l’ontologie, et donc
avant l’exécution des requêtes, en appliquant la technique de la saturation de données.
63
- Le sujet est une propriété ;
- L’objet est une propriété, un label ou un commentaire ;
- Le prédicat peut être de divers types : Type-Property, Sub-Property, Equivalent-Property,
Disjoint-Property, Inverse-Of, Has-Label, Has-Comment.
Il existe en OWL deux types de propriétés : les propriétés d’objet et celles de types de
données.
Une propriété d’objet qui définit une relation entre deux individus d’une classe ou de plu-
sieurs classes, et aussi, une propriété de type de données qui est une relation entre un individu
d’une classe et une valeur ou une donnée. Les propriétés d’objet et de type de données, dé-
finies par l’utilisateur, sont toutes (respectivement) des enfants de ”owl :TopObjectProperty”
et ”owl :TopDataProperty”, et des parents des sous-propriétés ”owl :BottomObjectProperty”
et ”owl :BottomDataProperty”. Les propriétés d’annotation telles que « owl :versionInfo »,
« rdfs :label », « rdfs :comment », « rdfs :seeAlso », « owl :priorVersion », etc. sont des
constructeurs intégrés dans OWL.
Les propriétés peuvent aussi être organisées hiérarchiquement et liées par des relations concep-
tuelles prédéfinies, telles que l’équivalence, la disjonction et beaucoup d’autres.
64
Une instance est un objet particulier instancié par les classes à l’aide de la relation prédé-
finie "Instance-Of".
Un individu peut ne pas avoir de classe(s) qui l’instancie(nt), dans ce cas, il sera implicitement
une instance de la classe « owl :Thing ».
- Nous avons déterminé les propriétés d’objet définies pour chaque classe, puis les images de
chacune de ces propriétés (si elles existent).
- Pour les propriétés de type de données, nous avons extrait pour chaque instance (i.e. do-
maine), sa valeur de données qui est un littéral (i.e. co-domaine).
Nous pouvons trouver un domaine relié à plusieurs images à travers différentes propriétés
(figure 3.8). En outre, un domaine dans un triplet peut être une image dans un autre triplet.
65
Figure 3.8 – Domaines et Images
Cette phase s’effectue au fur et à mesure avec le parsing de l’ontologie (figure 3.9).
66
Figure 3.9 – Parsing de l’ontologie, génération et chargement du graphe RDF dans Neo4j
67
Figure 3.10 – Processus d’interrogation de la BD Neo4j
Il arrive que l’utilisateur ne saisit pas le nom de l’entité mais plutôt son synonyme, son
hyperonyme et/ou son hyponyme. Par conséquent, nous avons eu recours à la base de don-
nées lexicale WordNet, avec laquelle, et dans le cadre de ce travail, nous avons utilisé juste
les synonymes, car ils sont au même niveau, dans l’ontologie, que l’entité saisie. Cependant
les hyperonymes et les hyponymes sont de niveau supérieur et inférieur, respectivement. Cela
68
veut dire que l’hyperonyme est considéré comme la super-entité de l’entité saisie, ainsi que
l’hyponyme est sa sous-entité. Ce qui signifie qu’ils ne possèdent pas forcément les mêmes
informations (cette étape reste à améliorer en prenant également en considération les hyper-
onymes et les hyponymes).
La requête d’entrée passe par trois étapes de pré-traitement, et c’est WordNet qui assure ces
étapes :
- Tokenization ;
- Suppression des mots vides ;
- Lemmatisation du mot : déterminer le lemme des mots-clés restants.
Alors, après avoir terminé le pré-traitement de la requête en LN, il faut préciser et dé-
terminer si les mots-clés saisis sont les noms prédéfinis des entités, ou bien ils se référent à
leurs synonymes. Pour ce faire, et au moment du chargement dans la phase précédente, des
triplets RDF (dans lesquels le sujet est soit une classe, une propriété ou une instance), nous
avons stocké également tous les synonymes de chaque sujet. Nous avons, au même temps, relié
chaque synonyme d’un sujet à tous les objets de ce sujet par le biais des mêmes relations (e.g.
Sub-Class-Of, hasIngredientOf, etc), afin de former un sorte de graphe de synonymes. Réel-
lement, nous avons considéré les synonymes comme étant les noms des entités eux-mêmes.
Par exemple, nous supposons que l’utilisateur a saisi " What are FishTopping and thermal ?",
tel que "FishTopping" est le nom d’une classe, ainsi que thermal est le synonyme de la classe
"Hot" ; ces deux classes font parties de l’ontologie Pizza. Notre système va devoir répondre
à cette requête.
Cependant, la majorité des noms des entités dans les ontologies que nous avons utilisées, se
composent de deux parties ou voire plus (e.g. VegetableTopping, ThinandCrispyPizza, etc).
Dans ce cas, le moteur de WordNet segmente ces noms (e.g. il va segmenter "VegetableTop-
ping" en Vegetable et Topping), puis il détermine les synonymes de chaque partie du nom,
à part. Cependant, nous pouvons trouver deux noms de deux entités différentes qui se com-
posent de quelques parties similaires, tels que "OliveTopping" et "VegetableTopping". Ainsi,
nous allons stocker les synonymes de Vegetable reliés à tous les objets de VegetableTopping,
et de même pour Topping, nous allons charger tous ses synonymes associés à tous les objets
de VegetableToping.
Dans ce cas, si jamais l’utilisateur saisit un synonyme de Topping, le système va lui retourner
des informations sur les deux classes OliveTopping et VegetableTopping. Cela veut dire que
notre système va comprendre que ces deux entités partagent des informations en commun
et par conséquent, il va stocker pour chaque nœud (correspondant à une entité) quelques
informations de l’autre entité.
En somme, ces informations stockées ne sont pas forcément correctes sémantiquement.
D’autre part, nous pouvons trouver des ontologies dans lesquelles les noms des entités
peuvent contenir des chiffres et des symboles. Ces noms n’ont pas de synonymes dans Word-
Net, par exemple, MA-0001480, MA-0001435, etc, de l’ontologie Mouse.
Dans ce cas, nous avons proposé d’utiliser les labels des entités au lieu de leurs noms (i.e.
l’utilisateur pourra saisir le synonyme du label d’une entité). cependant, les entités ne pos-
69
sèdent pas toutes des labels. En gros, ce deux points restent à améliorer.
Ainsi, si nous exécutons directement les requêtes SPARQL-DL générées, les résultats se-
raient retournés à partir de l’ontologie. Cependant, notre but est d’interroger la BD Neo4j.
70
3.4.4.3 Étape de transformation/équivalence des requêtes SPARQL-DL en des
requêtes Cypher
En effet, l’utilisateur va fournir une requête en langage naturel et il n’a pas à se soucier
et ne lui intéresse pas réellement d’où vient le résultat à sa requête. Il saisit ses mots-clés
décrivant son besoin en information et il attend un résultat qui lui satisfait en un temps court.
Alors pourquoi faire une équivalence (une sorte de transformation) entre les deux langages ?
Tout d’abord, parce que notre but dès le départ est d’interroger un graphe RDF stocké
dans une BD graphique, alors que nous pouvons pas accéder aux graphes RDF avec le langage
SPARQL-DL. En outre et ce qui est le plus important, cela nous permettrait de changer de
BD-RDF tout en gardant le travail de la génération des requêtes SPARQL-DL à partir des
mots-clés, intacte. Cela veut dire que l’avantage de cette équivalence est qu’elle nous permet
d’implémenter l’architecture de notre système au-dessus d’une grande variété de BD-RDF
implémentant leurs langages d’interrogation, sans changer aucun des autres composants du
système. Alors, en changeant de BD-RDF, il suffirait juste de stocker les triplets existants
(déjà). Ensuite, il faut changer les requêtes du langage Cypher par des requêtes écrites en
langage propre à la nouvelle BD-RDF utilisée. Ainsi, l’équivalence reste applicable entre
SPARQL-DL et le nouveau langage.
⇒ Comparer les résultats de ces derniers : il faut absolument trouver les mêmes
résultats. Cela signifie que le passage d’une ontologie à un graphe RDF n’influence pas la
précision des résultats, et que les données d’une ontologie sont converties convenablement
et proprement vers un graphe RDF. Ces données reflètent fidèlement la sémantique décrite
dans l’ontologie.
71
Figure 3.11 – Architecture générale de notre système
Alors, après avoir modélisé les requêtes SPARQL-DL d’une requête initialement formulée
par l’utilisateur, il faut maintenant passer à la phase de réécriture afin d’avoir des requêtes
Cypher. Les requêtes SPARQL-DL seront transformées en d’autres équivalentes à elles sé-
mantiquement afin de pouvoir accéder à Neo4j. Il est nécessaire, pour la réécriture de la
requête, que l’application de la transformation n’influence pas le résultat final de la requête.
Notre système vise à réécrire les requêtes SPARQL-DL (en d’autres Cypher ) en s’assurant
que les reformulations reflètent autant que possible la même signification, la même structure,
le même type de résultats et la même taille de résultat que les requêtes SPARQL-DL initiales.
72
parties similaires syntaxiquement des deux requêtes et nous avons écrasé les autres parties
(différentes) des requêtes SPARQL-DL et les fait remplacer par leurs correspondantes du
langage Cypher. Les figures 3.12 et 3.13 montrent des exemples de requête SPARQL-DL et
Cypher ayant pour but de déterminer les sous-classes d’une classe donnée. En analysant ces
deux requêtes, on constate que les deux langages sont presque totalement différents syntaxi-
quement, et par conséquent, il n’y avait pas de grandes équivalences dégagées.
Toutes les variables qui apparaissent dans les TP de la requête SPARQL-DL, apparaissent
également dans la requête Cypher.
Dans les requêtes SPARQL et SPARQL-DL, nous utilisons le mécanisme des espaces de
noms pour définir les préfixes afin de rendre les requêtes plus lisibles. Un IRI (Internationalised
Resource Identifier) d’une entité, est composé d’un "IRI de préfixe" suivi du symbole "#"
puis du "nom" de l’entité. En général, la partie "IRI de préfixe" de l’entité, est exactement
l’IRI de l’ontologie.
73
appartenant aux ontologies considérées. L’utilisateur doit saisir des noms valides et la zone du
texte ne doit pas rester vide, sinon un message d’erreur s’affiche. Une fois le bouton "Search"
soit cliqué, le résultat s’affiche dans la zone du texte en lecture seule "The Answer is".
Parce que N est une donnée non structurée et G est un graphe contenant des données
structurées, nous avons dû combler l’écart entre deux types de données pour avoir une repré-
sentation graphique de N. Pour ce faire, il faut tout d’abord extraire les relations sémantiques
(i.e. les propriétés) impliquées de la question N ; dont chaque relation sémantique est un tri-
plet (arg1 , rel, arg2 ) où rel est la relation, arg1 , arg2 sont les éléments reliés par rel.
En effet, nous avons étudié le cas de un à trois mots-clés maximums, sinon ça va être
beaucoup de combinaisons à déterminer. Au delà de 3 mots-clés, notre système retourne les
74
informations de chaque entité à part sans effectuer des combinaisons sémantiques entre elles.
Au moment où l’utilisateur saisit un (ou plusieurs) mot-clé, toutes les informations pri-
mitives de l’entité saisie (Sub-Class-Of, Equivalent-Property, etc.), en plus, les résultats des
combinaisons des mots-clés vont être affichés.
L’utilisateur saisit le nom (ou bien le synonyme du nom) d’une entité appartenant à l’on-
tologie en question (ou bien au graphe RDF de cette ontologie et qui est stocké dans Neo4j)
et il ne précise pas l’information qu’il veut avoir en retour. Ce mot-clé entré va être compa-
rer à toutes les structures existantes afin de déterminer sa nature (i.e. classe, propriété ou
instance). Ensuite, le système lui retourne toutes les informations liées à l’entité fournie.
Le saisi d’une seule entité signifie que deux composants du triplet RDF sont vides. Les
informations qui s’afficheront à l’utilisateur sont les résultats des requêtes SPARQL-DL (sur
l’ontologie) et ceux des requêtes Cypher par équivalence (sur le graphe RDF).
Un mot-clé est valide et pertinent, s’il peut être mis dans un patron de triplet (respec-
tivement, dans une requête Cypher) et que ce dernier soit un sous-ensemble de l’ontologie
considérée (respectivement, un sous-graphe du graphe RDF généré), ainsi qu’il retourne un
résultat. Même une valeur de 0 est prise en considération car cela peut signifier que la clause
WHERE de la requête SPARQL-DL et de la requête Cypher, ne produit aucune correspon-
dance ni dans l’ontologie ni dans le graphe RDF.
75
Mot-clé Résultats attendus
∗ Ses classes équivalentes ;
Classe ∗ Ses classes disjointes ;
∗ Ses sous-classes ;
∗ Ses instances (s’il y en a) ;
∗ Son label et son commentaire.
∗ Ses propriétés équivalentes ;
Propriété ∗ Ses propriétés disjointes ;
∗ Ses sous-propriétés ;
∗ Ses propriétés inverses (que pour les propriétés d’objet) ;
∗ Son label et son commentaire ;
∗ Son domaine (classe source) ;
∗ Son image (classe cible).
⇒ qui sont reliés par la propriété donnée :
? → propriété X → ?
∗ Ses instances équivalentes
Instance ∗ Ses instances différentes
∗ Son label et son commentaire
∗ Déterminer la classe à laquelle l’instance (saisie) appartient,
via la relation Instance-Of :
Instance → Instance-Of → ?
Par exemple, si les deux entités saisies sont des classes, alors le problème devient celui de
déterminer une relation qui peut relier ces deux classes. Cette relation est le prédicat, qui
peut être de type primitive OWL (i.e. Sub-Class-Of, Equivalent-Class-Of, etc), ou bien une
propriété d’objet.
Le système retourne également toutes les informations (citées dans le cas précédent) de ces
deux classes.
Le cas le plus compliqué est quand l’utilisateur fournit deux arguments dont l’un est une
classe et l’autre est une propriété. Tout d’abord, le système considère la classe saisie comme
étant le domaine (le sujet du triplet) et il détermine alors son (ses) co-domaine(s) tout en
considérant la propriété fournie comme un prédicat. Ensuite, cette fois le système met la classe
76
à la place de l’objet du triplet RDF (i.e. comme étant une image), et alors il doit déterminer
son (ses) domaine(s) par le biais de la propriété initialement fournie par l’utilisateur.
Les informations de chacune de ces entités à part, s’afficheront également à l’utilisateur.
Les mots-clés saisis doivent être regroupés ensembles en des segments. Pour chaque seg-
ment, des informations appropriées sont alors déterminées. Un segment valide est un segment
pour lequel au moins une information peut être trouvée dans le graphe RDF sous-jacent. Notre
algorithme montre une approche naïve pour trouver tous les segments valides, en considérant
l’ordre des mots-clés. Il commence par le 1er mot-clé dans la requête donnée en tant que 1er
segment, puis ajoute le mot-clé suivant au segment en cours et vérifie si cet ajout rendrait
le nouveau segment invalide. Ce processus est répété jusqu’à ce qu’il atteigne la fin de la
requête (i.e. toutes les combinaisons possibles).
77
Mots-clés Résultats attendus
Trois classes ∗ Déterminer leurs informations respectivement.
Trois propriétés ∗ Déterminer leurs informations, ainsi que leurs
domaines et leurs images :
? → propriété X → ?.
Trois instances ∗ Déterminer leurs informations et à quelle(s)
classe(s) elles appartiennent.
∗ Les informations des entités saisies +
Deux classes-Une propriété ∗ Domaine(s) et image(s) de la propriété saisie +
∗ Image(s) de chacune des classes via la propriété
saisie +
∗ Domaine(s) de chacune des classes via
la propriété saisie.
∗ Les informations de chacune des entités saisies +
Deux classes-Une instance ∗ A quelle classe appartient l’instance saisie +
∗ Déterminer si l’une des classes (entrées) contient
l’instance donnée.
∗ L’ensemble des informations des entités saisies +
Deux propriétés-Une classe ∗ Domaine(s) et image(s) de chacune des propriétés +
∗ Domaine(s) de la classe saisie via les deux propriétés
données (une par une)
? → P1 → C
? → P2 → C
∗ Image(s) de la classe saisie via les
deux propriétés données.
C → P1 → ?
C → P2 → ?
2 propriétés-Une instance ∗ Juste affichage des informations de chaque entité
entrée.
∗ Informations de ces entités +
Deux instances-Une classe ∗ Déterminer la(les) classe(s) auxquelles les instances
saisies appartiennent.
2 instances-Une propriété ∗ Détermination des informations de chaque entité
entrée.
1 instance- 1 propriété- 1 classe ∗ Détermination des informations de chaque entité.
78
Exemple d’exécution
On suppose que l’utilisateur a saisi la requête en LN (dans la figure 3.15) qui comporte
un nom d’une classe et un nom d’une propriété ⇒ le résultat va contenir les informations
de type primitives OWL de ces entités, de plus, les résultats des combinaisons de ces deux
mots-clés, i.e. :
- Les informations de la classe et de la propriété saisies +
- Le domaine et l’image de la propriété saisie +
- L’image (respectivement le domaine) de la classe saisie tout en considérant à chaque fois la
propriété fournie comme étant le prédicat.
Dans cet exemple, nous travaillions sur l’ontologie Pizza (nous allons définir cette ontologie
dans le chapitre suivant). Après la décomposition de la requête, nous saisissons que l’utilisa-
teur a fourni deux noms de deux entités : « Country » qui est une classe et « hasBase » qui
représente une propriété d’objet. Nous supposons que l’utilisateur ne connait ni la nature des
entités saisies ni la structure du graphe interrogé.
(Remarque : nous avons utilisé l’ontologie Pizza dans cet exemple parce qu’elle est riche
en informations. Elle comporte des classes, des propriétés d’objet et de type de données ainsi
que des instances. Alors, elle nous permet d’évaluer l’exhaustivité de notre travail.)
79
Les figures 3.15, 3.16, 3.17, 3.18 et 3.19 présentent les résultats de cette requête utilisateur
en exécutant (tout d’abord) des requêtes SPARQL-DL sur l’ontologie.
La figure 3.16 montre les sous-classes et les classes équivalentes de celle saisie par l’utili-
sateur, tout en précisant le type de l’entité Country. Nous constatons la présence du préfixe
qu’on en a déjà parlé (pour les requêtes SPARQL-DL, le préfixe est une chose indispensable
dans l’écriture de la requête puisqu’il permet de déterminer l’IRI de l’ontologie cible à in-
terroger et ce qui est logique vu qu’on interroge l’ontologie directement, ainsi qu’il s’affiche
également dans les résultats, mais cela ne change rien).
La classe "Nothing" est la sous-classe de toutes les classes dans l’ontologie, c’est pour
cette raison qu’on remarque sa présence à chaque fois qu’on demande les sous-classes d’une
certaine classe.
De même, nous constatons que le moteur d’interrogation de SPARQL-DL suppose toujours
qu’une classe est équivalente sémantiquement à elle-même (i.e. la classe Country possède
qu’une seule classe équivalente, qui est Country elle-même). Dans ce contexte, la règle dit
qu’un axiome EquivalentClasses (C1 C2 ) entre 2 entités est formellement équivalent à 2
axiomes de subsomption réciproques :
- SubClassOf (C1 C2 ) ;
- SubClassOf (C2 C1 ).
Cela veut dire que, puisque Country est équivalente à elle-même alors elle est, suivant la
règle, une sous-classe à elle-même. Ces informations sont inférées par le raisonneur et elles
me semblaient triviales que je ne les ai pas stocké dans Neo4j, c’est pour cette raison qu’elles
ne sont pas affichées en appliquant les requêtes Cypher par équivalence (figure 3.20, page 84).
80
Figure 3.16 – Résultats de la requête en LN en utilisant SPARQL-DL (1)
Ensuite, l’annotation (le label ainsi que le commentaire) de la classe saisie et ses instances,
sont présentés dans la figure 3.17.
81
Figure 3.17 – Résultats de la requête en LN en utiliant SPARQL-DL (2)
Après avoir affiché toutes les informations de la classe saisie, il faut maintenant afficher
celles de la propriété. La figure 3.18 montre les sous-propriétés et les propriétés équivalentes
de « hasBase ». Finalement, cette propriété ne possède pas d’annotation comme le montre
la figure 3.19.
De même, la propriété d’objet hasBase ne possède qu’une seule propriété équivalente, qui
est hasBase elle-même. Par conséquent, hasBase est une sous-propriété à elle-même (suivant
la règle précédemment définie).
La sous-propriété BottomObjectProperty est la sous-propriété d’objet de toutes les propriétés
d’objet de l’ontologie.
82
Figure 3.18 – Résultats de la requête en LN en utilisant SPARQL-DL (3)
83
Maintenant, nous devons afficher à l’utilisateur, également, les résultats de sa requête (en
LN) en utilisant Cypher (en passant par l’équivalence définie auparavant). La figure 3.20
présente les sous-classes, classes équivalentes, annotation et instances de la classe « Country
» saisie. On constate l’absence du préfixe dans les résultats et c’est parce que nous les avons
enlevé lors du chargement dans la BD.
La figure 3.21 indique les domaines et les co-domaines de la propriété « hasBase », ainsi
que ses propriétés équivalentes, ses sous-propriétés et ses annotations (qu’elle ne les possède
pas).
Dans la figure 3.22, nous constatons que notre système a affiché les résultats des combinaisons
entre les entités saisies. Dans notre exemple, il nous a renvoyé l’image (respectivement, le
domaine) de la classe « Country » via la propriété « hasBase » (i.e. il a considéré hasBase
comme un prédicat).
84
Figure 3.21 – Résultats de la requête en utilisant Cypher (par équivalence) (2)
85
Nous avons obtenu les mêmes résultats que ce soit en utilisant SPARQL-DL tout court ou
bien en appliquant Cypher (tout en passant par SPARQL-DL). Les mêmes résultats s’af-
fichent également dans l’interface, cependant nous avons choisi de faire des imprimes d’écran
du console pour réduire le nombre de captures.
Cette technique s’avère bonne pour des requêtes simples mais ce n’est pas le cas pour
des requêtes plus compliquées, car le système doit parcourir les données sur tout le graphe
RDF (respectivement, les données de l’ontologie) au moment de l’interrogation, afin de le
faire correspondre aux requêtes Cypher complexes (respectivement, aux patrons SPARQL-
DL complexes).
86
En saisissant ses mots-clés et en cliquant sur le bouton « Search », une 2ème interface
(figure 3.23) s’affiche à l’utilisateur contenant les différents choix possibles. Cette interface
marque le début du processus de navigation. L’utilisateur peut sélectionner alors son besoin
en information et le système réagit à ces actions en mettant à jour les résultats de la re-
cherche. Nous avons capturé les facettes qui sont pertinentes pour chaque entité.
Une fois l’utilisateur fait son choix (parmi ces choix, nous trouvons le bouton « ALL »
qui nous permet d’afficher toutes les informations sur les entités saisies), une 3ème interface
(figure 3.24) s’affiche indiquant à l’utilisateur qu’il peut choisir avec quel langage il préfère
avoir les résultats.
Avec cette méthode qui assure la navigation à travers les collections inter-connectées des
entités, les utilisateurs peuvent diminuer les résultats de recherche. Nous devons alors tra-
duire les mots-clés et les choix de l’utilisateur en un ensemble de Triples Pattern (requête
SPARQL-DL).
87
Alors, un défi, est que l’information permettant de répondre à une certaine question, puisse
exister entre différents graphes RDF. Afin de répondre à ce défi, notre approche ressemble à
une recherche horizontale, où chaque composant d’une requête d’entrée est comparé à tous
les ensembles de données disponibles afin de déterminer à quelle ontologie il appartient.
Alors, après avoir parsé les ontologies, extrait les triplets RDF et les stocké dans Neo4j
(figure 3.25), on aura la possibilité d’interroger, au même temps, soit ces ontologies direc-
tement (en utilisant SPARQL-DL), soit leurs graphes RDF à partir de Neo4j (en utilisant
Cypher par équivalence), tout en donnant, à l’utilisateur, l’impression d’interroger un seul
graphe RDF (i.e. l’utilisateur peut saisir, à la fois, N entités de N ontologies différentes).
Exemple :
La question d’entrée formulée par l’utilisateur en LN (e.g. figure 3.26), est d’abord traitée et
analysée. L’étape suivante consiste à identifier la nature des entités décomposées, afin de les
placer dans les partons de triplet (TP) SPARQL-DL correspondants (respectivement, dans
88
les requêtes Cypher correspondantes). Ces patrons de requêtes contiennent des emplacements
vides (pour les préfixes, puisque nous ne pouvons interroger une ontologie, avec le langage
SPARQL-DL, que si en indiquant son IRI, et vu que nous sommes en train d’interroger plu-
sieurs ontologies en même temps, ces emplacements restent vides jusqu’à la détermination
des ontologies qui contiennent les différentes entités saisies).
En somme, ces emplacements, qui sont des éléments manquants de la requête, doivent être
traités par des IRIs par rapport aux ontologies interrogées.
Après que le système décompose la requête, nous obtenons trois noms d’entités qui sont :
- TomatoTopping ;
- MA-0001480 ;
- hasIngredient.
Le système doit déterminer d’abord à quelles ontologies appartienne chacune de ces entités.
Cela se fait en comparant chacune d’elles avec les listes stockant les noms des classes, proprié-
tés d’objet, propriétés de type de données et instances, respectivement. Ces listes stockent
juste les noms des différentes entités de chaque ontologie, et ont pour intérêt d’aider à la
découverte de l’appartenance de chaque entité fournie. Par exemple, dans notre cas, notre
algorithme va déterminer que TomatoTopping et hasIngredient appartiennent à l’ontologie
Pizza, ainsi que MA-0001480 appartient à l’ontologie Mouse.
89
Une fois cette étape soit terminée, nous devons maintenant reconnaître la nature de chaque
entité saisie pour savoir quelles requêtes devons nous exécuter.
Revenons à notre exemple, le système va reconnaître que TomatoTopping et MA-0001480
sont des classes, ainsi que hasIngredient est une propriété d’objet.
Enfin, les emplacements vides vont être remplis par les préfixes (IRIs) des deux ontologies en
question, et les requêtes SPARQL-DL vont être exécutées, générant par la suite des requêtes
Cypher.
La figure 3.27 indique les résultats correspondants à la classe TomatoTopping. Ces résultats
sont retournés suite à l’exécution des requêtes Cypher sur le graphe RDF de l’ontologie Pizza.
La figure 3.28 affiche les informations de la propriété d’objet fournie (hasIngredient), suite
à l’exécution des requêtes Cypher par équivalence sur le graphe RDF de l’ontologie Pizza.
90
Figure 3.28 – Résultats des requêtes Cypher (2)
91
Figure 3.29 – Résultats des requêtes Cypher (3)
3.6 Conclusion
En somme, les Triples Stores constituent de plus en plus la base de plusieurs applications.
Il est alors très important que, pendant l’implémentation de n’importe quelle application,
d’avoir une idée claire sur les forces et les faiblesses des implémentations des TS actuels.
L’efficacité de données joue un rôle important lorsqu’il s’agit de données à grande échelle. En
outre, c’est évident qu’il est difficile pour les utilisateurs (même pour les professionnels) de
concevoir des requêtes SPARQL compliquées.
Dans ce contexte, notre application fournit un outil pratique permettant de récupérer des
données à partir des graphes RDF. Notre interface de recherche rend la procédure d’inter-
rogation d’un graphe RDF suffisamment conviviale. Nous avons utilisé SPARQL-DL comme
langage d’interrogation, qui est conforme aux recommandations du W3C et qui s’avère être
un langage de requête pouvant soutenir l’expressivité avancée d’OWL 2. Hermit lui-même
s’avère être efficace pour soutenir cette expressivité. Sans oublier Neo4j qui offre un accès
et une gestion de données performants, ainsi qu’une fluidité de représentation guidée par le
besoin.
Notre application effectue une récupération de données RDF de manière efficace avec des
temps d’exécution encourageants.
92
Chapitre 4
4.1 Introduction
Le chapitre précédent a fait l’objet d’une description détaillée de notre méthode d’inter-
rogation de la BD Neo4j. Dans ce chapitre, nous allons mettre l’accent sur l’évaluation et
l’expérimentation de notre approche. Notre méthode est réalisée en utilisant un ensemble de
métriques d’évaluation. Ces dernières permettent d’estimer la qualité des résultats de l’inter-
rogation. L’expérimentation a été effectuée sur plusieurs types d’ontologies.
Ce chapitre est organisé comme suit : la première partie décrit l’environnement d’expéri-
mentation et les outils utilisés afin d’implémenter notre méthode. La deuxième partie présente
les métriques d’évaluation permettant d’estimer l’efficacité de notre approche. Par la suite,
une évaluation sur différentes ontologies de différentes tailles, ainsi qu’une discussion, on été
présentées.
Notre algorithme a été implémenté en langage Java en utilisant l’OWL API 3.4.8. Afin
d’ajouter de l’intelligence aux données, il faut passer par une phase d’enrichissement de
connaissances dans laquelle une ontologie joue un rôle fondamental. Grâce à ces données
intelligentes, n’importe quel système peut réaliser des déductions, qui ne semblent pas évi-
dentes pour un être humain (e.g. extraction de résumés, recommandations, détection de
conflits, etc). C’est dans ce cadre que OWL API a été développée. Il s’agit d’un ensemble
d’interfaces riches en fonctionnalité, assurant une manipulation flexible des ontologies. Elle
nous a permis de parser (analyser) les ontologies d’entrée ainsi d’identifier leurs différentes
entités.
93
L’environnement Eclipse garantie la réutilisation ou la modification de quelques modules fai-
sant partie de notre méthode.
Pour le raisonnement sur les ontologies, nous avons utilisé la dernière version officielle,
stable et la plus récente Hermit 1.3.8. Concernant l’interrogation de l’ontologie directement,
avons avons travaillé avec la version 1.0.0 de SPARQL-DL.
Nous avons également eu recours à la version 3.1.2 de la BD graphique Neo4j, afin de stocker
les triplets RDF (graphe RDF). Il suffit de l’intégrer en Java sous forme d’une bibliothèque
(library).
L’ensemble de tests a été réalisé sur un PC doté d’un système d’exploitation Windows 7
professionnel muni d’un processeur Intel Core i3, avec une horloge ayant une fréquence 2.30
GHz et 6 Go de RAM.
Nous avons intégré la version 2.0 de la base de données lexicale WordNet pour le traitement
des requêtes en langage naturel des utilisateurs.
- Le temps du parsing : c’est le temps nécessaire pour que toutes les informations de
l’ontologie soient analysées et parsées ;
- Le temps du stockage : c’est le temps nécessaire pour générer tous les triplets RDF à
partir de l’ensemble d’entités résultant de l’étape du parsing, ainsi pour les sauvegarder dans
la base de données graphique Neo4j.
Le stockage se fait au fur et à mesure avec le parsing, alors nous allons les fusionner en une
seule mesure : temps du parsing et du chargement ;
- Le temps de réponse : c’est le temps nécessaire pour que notre système réponde à
une requête utilisateur formulée en langage naturel.
94
Dans tous les cas de mesures, nous allons évaluer la performance de notre méthode en
utilisant Hermit et sans l’utilisation de Hermit (i.e. raisonnement par défaut de OWL API) ;
avec des requêtes simples et d’autres compliquées ; avec SPARQL-DL tout court et avec
Cypher (tout en passant par l’équivalence décrite dans le précédent chapitre). Enfin, nous
allons analyser l’impact de la taille du graphe sur les performances de la BD graphique Neo4j,
en particulier sur le temps du parsing (de l’ontologie) et du chargement (du graphe RDF),
ainsi que sur le temps de réponse à une requête utilisateur.
95
de milliers de concepts (classes), tableau 4.2.
La base LargeBio se catégorise en trois classes de taille croissante :
- FMA-NCI small overlapping ;
- FMA-NCI extended (medium) overlapping ;
- FMA-NCI whole overlapping (la catégorie la plus complète).
Nous allons, dans ce qui suit, utiliser les ontologies selon ces numérotations. Nous les avons
numéroté par ordre croissant :
1) Oei-FMA-small-overlapping-nci.owl (3696 classes) ;
2) Oei-NCI-small-overlapping-fma.owl (6488 classes) ;
3) SNOMED-small-overlapping-fma.owl (13 412 classes) ;
4) Oei-FMA-small-overlapping-snomed.owl (10 157 classes) ;
5) Oei-NCI-small-overlapping-snomed.owl (23 958 classes) ;
6) Oei-SNOMED-small-overlapping-nci.owl (51 128 classes) ;
7) Oei-FMA-whole-ontology.owl (78 988 classes) ;
96
Temps parsing et stockage Temps de réponse
Ontologie No exé avec Hermit sans Hermit avec SPARQL-DL avec Cypher
Table 4.3 – Temps d’exécution de Pizza et de la base « Anatomy » avec retour de toutes
les informations
97
Temps parsing et stockage Temps de réponse
Ontologie No exé avec Hermit sans Hermit avec SPARQL-DL avec Cypher
Table 4.4 – Temps d’exécution de la base « LargeBio(small) » avec retour de toutes les
informations
98
99
Les valeurs en gras représentent les mesures minimales de tous les temps des cinq exécu-
tions.
Pour les ontologies de petites à moyennes tailles (Pizza, Human et Mouse), le temps du
parsing et du chargement avec le raisonneur par défaut, est visiblement plus petit, dans
tous les essais d’exécution, que celui en utilisant le raisonneur Hermit. Le temps du parsing
et du chargement sont différents (par rapport au raisonneur) dus aux résultats du parsing
différents. Nous constatons que Hermit est un raisonneur très performant qui donne des ré-
sultats inférés, pour laquelle il prend largement du temps (il déduit des connaissances, i.e.
la hiérarchie inférée de l’ontologie, les classes équivalentes, etc). Par contre, le raisonneur
hiérarchique d’OWL API est beaucoup plus rapide car il donne des résultats non inférés, i.e.
des résultats en se basant uniquement sur les assertions écrites dans l’ontologie et il déduit
juste la hiérarchie de l’ontologie telle qu’elle est définie.
Nous pouvons dire aussi que le temps du chargement dans Neo4j dépend du nombre de
triplets chargés (i.e. la taille du graphe RDF à stocker), comme le prouve l’ontologie no 7 et
l’ontologie no 8, qui contiennent 78 988 et 66 724 concepts (respectivement), et qui ont pris
le plus du temps pour le parsing et le chargement, comme l’indique plus clairement la figure
4.1 (tableau 4.6, page 104). Cela est probablement lié à la réorganisation des données sur
disque, qui commence à un moment spécifique lors du chargement de l’ensemble de triplets
RDF.
100
Temps parsing et stockage Temps de réponse
Ontologie No exé avec Hermit sans Hermit avec SPARQL-DL avec Cypher
Table 4.5 – Temps d’exécution de la base « LargeBio(medium) » avec retour de toutes les
informations
101
Il y a une autre ontologie qu’on n’a pas mentionné ici (nommée oaei-SNOMED-extended-
overlapping-fma.owl ), elle contient 122 464 concepts et elle est la plus grande de toutes les
ontologies de la base "LargeBio", et qu’on n’a pas parvenu à l’exécuter. Nous avons estimé
que Neo4j demande plus de heap space afin de fonctionner sur de grands ensembles de don-
nées (i.e. Neo4j n’arrive pas à charger tous les triplets). Plusieurs réglages ont été faits sur
les options de JVM afin d’allouer plus de heap space. Cette allocation a permis Neo4j de
fonctionner au moins aussi longtemps avant de s’arrêter en raison d’une erreur de mémoire
insuffisante.
En fait, Noe4j stocke les données en mémoire, mais au cas où la mémoire est insuffisante,
Neo4j fera de son mieux pour charger les données (qui sont fréquemment consultées) en mé-
moire et le reste sur disque. En outre, puisque Neo4j est écrit en Java, et comme toutes les
autres applications écrites en Java, nous devons configurer la JVM pour assurer des perfor-
mances optimales.
Remarque : fournir trop de mémoire pour la JVM peut impliquer des dégradations de
performances qui sont dus aux pauses causées par les longs cycles du GC. Cela se produit
également avec un espace mémoire trop petit. Plus le heap space est grand, plus le GC pren-
dra du temps pour s’exécuter.
En somme, nous pouvons conclure que l’inférence augmente, le plus souvent, le temps du
parsing. La taille du graphe a un impact sur les performances de la BD graphique Neo4j
(elle fonctionne bien avec des données de petites quantités, mais elle reste restreinte avec
des données de grandes tailles). L’inférence est un support efficace pour le traitement des
requêtes, mais elle nécessite beaucoup d’espace de stockage pour le sauvegarde des données
inférées.
Nous remarquons également que la performance ne dégrade pas toujours par rapport à la
taille du graphe interrogé parce que, pour l’ontologie no 5, le temps de réponse à des requêtes
Cypher, est plus grand que celui des ontologies no 6, no 7 et no 8, qui sont plus grandes qu’elle
(figure 4.2). Alors, nous pouvons dire que peut être la performance d’une requête Cypher
dépend de la façon dont elle est formulée. Cela peut être due, également, au fait que les
requêtes Cypher prennent du temps à choisir un plan d’exécution favorable.
102
Figure 4.2 – Temps de réponse aux requêtes Cypher (par équivalence)
Pour toutes les ontologies, nous avons utilisé le raisonneur Hermit, sauf pour les ontologies
no 6,no 7 et no 8, parce qu’elles nous posaient des problèmes de mémoire durant le stockage,
vu que le raisonneur infère beaucoup de nouvelles données. Cela peut expliquer les valeurs
retrouvées des temps de réponse en utilisant Cypher de ces ontologies, qui sont très courtes
en les comparant à des valeurs d’autres ontologies plus petites.
103
Temps parsing et stockage Temps de réponse
Ontologie No exé avec Hermit sans Hermit avec SPARQL-DL avec Cypher
Table 4.6 – Temps d’exécution de la base « LargeBio(whole) » avec retour de toutes les
informations
Nous n’avons pas recalculé les temps du parsing et du chargement parce qu’ils restent les
mêmes (que ce soit avec ou sans raisonneur). La seule chose qui diffère ici, c’est le temps de
réponse. L’utilisateur peut interagir avec le système, sans connaître la façon / le schéma dont
les données sont stockées dans la BD graphique Neo4j, il peut réduire l’espace de recherche.
Au lieu d’exécuter toutes les requêtes, ce qui entraîne le parcours d’une grande partie du
graphe RDF, l’utilisateur et en choisissant son besoin en informations, peut réduire la tra-
versée du graphe et donc le temps de réponse.
Ceci explique les mesures trouvées et qui ne diffèrent pas trop de celles de la première
104
version. Cependant, cela n’empêche qu’il y a une amélioration, comme par exemple le temps
de réponse à des requêtes Cypher à partir du graphe RDF de l’ontologie no 5 (NCI-medium),
a réduit de 16 803 ms à 9107 ms, et c’est parce que le moteur d’interrogation ne traverse
que la partie du graphe contenant le choix de l’utilisateur et non pas tout le graphe ni une
grande partie de ce dernier.
105
```
``` ms / min
```
avec SPARQL-DL avec Cypher
ontologie ```
```
63 ms 2169 ms
Pizza
0.001 min 0.036 min
31 ms 2341 ms
Human
0.0005 min 0.039 min
47 ms 2216 ms
Mouse
0.0007 min 0.036 min
48 ms 2376 ms
1. FMA-small
0.0008 min 0.039 min
25 ms 3798 ms
2. NCI-small
0.0004 min 0.063 min
47 ms 2591 ms
3. SNOMED-small
0.0007 min 0.043 min
16 ms 2514 ms
4. FMA-medium
0.0002 min 0.041 min
78 ms 9107 ms
5. NCI-medium
0.0013 min 0.151 min
94 ms 2745 ms
6. SNOMED-medium
0.0015 min 0.045 min
48 ms 3090 ms
7. FMA-whole
0.0008 min 0.051 min
79 ms 7488 ms
8. NCI-whole
0.0013 min 0.124 min
106
LargeBio, prennent plus du temps. Cela est visiblement dû au fait que FMA-small est une
ontologie plus grande que Mouse, et peut être qu’elle demande plus d’inférence.
Ces mesures ont été prises suite à l’exécution de la requête en langage naturel suivante :
"What are Sacrum MA-0001480 and Lobe-of-prostate" ; dont MA-0001480 appartient à l’on-
tologie Mouse, ainsi que Lobe-of-prostate et Sacrum sont deux entités qui appartiennent à
l’ontologie FMA-small.
D’un autre côté, le temps de génération de graphe RDF diffère d’une ontologie à une autre.
Du coup, nous pouvons trouver deux ontologies qui ont la même taille mais il y a une qui
nécessite plus du temps pour la génération de son graphe RDF. C’est parce que la première
contient, par exemple, des classes qui utilisent plusieurs propriétés d’objet et la deuxième
contient des classes qui utilisent que quelques propriétés d’objet. La génération des triplets
de la première demande forcément plus du temps que la deuxième. Cela a un impact sur le
temps global du parsing et du chargement.
Pour l’interrogation, et en comparant les temps de réponse, nous trouvons que la réponse
à partir du premier graphe (contenant les données RDF de l’ontologie FMA-small ) prend
plus du temps par rapport à la réponse à partir du deuxième graphe (contenant les triplets de
Mouse). Cela est apparemment dû au fait que le premier graphe nécessite plus de parcours,
vu qu’il est plus grand.
107
Temps Parsing et stockage Temps de réponse
```
```Ontologie
```
o FMA-small Mouse Graphe 1 Graphe 2
N éxecution ```
`` `
Table 4.8 – Temps minimums de l’interrogation des deux ontologies Mouse et «FMA-small»
- Notre framework est automatique tel qu’il prend en entrée n’importe quelle ontologie, avec
laquelle il produira son graphe RDF et le stocke dans Neo4j. Le graphe RDF résultant est
complet et reflète fidèlement la sémantique décrite dans l’ontologie.
- Notre méthode est solide et exhaustive, dans le sens qu’elle est complète car elle retourne
toutes les réponses correctes à une requête en langage naturel, et elle est également saine
108
parce qu’elle ne retourne que des réponses correctes à une requête utilisateur.
- Nous donnons la possibilité aux développeurs de pouvoir changer de base de données. Ceci
se fait grâce à l’équivalence qui nous permet d’implémenter l’architecture de notre système
au-dessus d’une grande variété de BD-RDF implémentant leurs langages d’interrogation, sans
changer aucun des autres composants du système.
- Nous avons étudié sur les interprétations possibles et souhaitées de la requête utilisateur,
afin de mieux le satisfaire. Cela se fait en effectuant toutes les différentes liaisons possibles
entre les entités initialement fournies par l’utilisateur.
4.6 Conclusion
Dans ce chapitre, nous avons décrit une étude expérimentale menée avec notre méthode
proposée pour l’interrogation des graphes RDF. La solution proposée cherche à contourner
le problème de la taille des ensembles de concepts pris comme une entrée pour l’outil d’inter-
rogation. La solution offerte par Neo4j dépasse parfois sa capacité de stockage. Les mesures
des temps d’exécution prouvent l’efficacité de notre méthode et l’exactitude des résultats
retournés.
109
Conclusion Générale
Une revue sur quelques méthodes existantes, nous a permis de mettre en relief les exigences
des utilisateurs non-experts en termes de stockage et de formulation de requêtes significatives
avec des langages d’interrogation hautement spécifiques tels que SPARQL.
Dans ce contexte, nous avons développé une méthode pour un stockage et une interroga-
tion efficaces des données RDF. Cette approche permet aux utilisateurs finaux d’interroger
des bases de connaissances et des graphes RDF. L’approche guide l’interprétation de la ques-
tion utilisateur formulée en langage naturel, ainsi que sa traduction en langage formel.
Le but des travaux, qui ont été réalisés dans le cadre de ce mémoire, est de proposer une
nouvelle approche d’interrogation d’ontologies (qui sont elle-mêmes stockées sous forme de
graphes RDF, dans la base de données graphique Neo4j ). Cette méthode devrait surpas-
ser certains handicaps tels que le volume de données, la langue naturelle, l’hétérogénéité qui
explique que les informations et les connaissances peuvent provenir de sources différentes, etc.
L’utilisation de bases de données graphiques montre plusieurs avantages, tels qu’elles im-
plémentent leurs langages d’interrogation, des interfaces de programmation (API), etc. Elles
fournissent également un moyen efficace permettant de représenter des informations inter-
connectées ainsi de décrire des structures de données complexes.
Nous avons mené une étude expérimentale afin de démontrer la pertinence et l’efficacité
de notre approche en termes du temps d’exécution et d’exactitude de résultats.
Perspectives :
- Bien que les résultats expérimentaux soient très encourageants, le problème du passage à
l’échelle a un impact sur la performance des systèmes qui réalisent les travaux de stockage et
d’interrogation, en particulier Neo4j. De même, puisque la quantité de données RDF continue
à augmenter, il n’est plus possible de stocker ni d’accéder à toutes ces données sur une seule
110
machine, tout en assurant des performances raisonnables. Alors, il est nécessaire d’améliorer
les capacités de notre algorithme de stockage et d’interrogation, par l’adoption de paradigmes
de distribution (Spark Streaming).
- Améliorer la phase d’intégration de WordNet par l’ajout des hyperonymes et des hypo-
nymes.
111
Bibliographie
[Allani et al., 2016] Allani, S., Yeferny, T., Chbeir, R., and Ben Yahia, S. (2016). Dpms :
A swift data dissemination protocol based on map splitting. In 2016 IEEE 40th Annual
Computer Software and Applications Conference (COMPSAC), volume 1, pages 817–822.
IEEE.
[Allocca et al., 2016] Allocca, C., Adamou, A., d’Aquin, M., and Motta, E. (2016). Sparql
query recommendations by example. In International Semantic Web Conference, pages
128–133. Springer.
[Angles, 2012] Angles, R. (2012). A comparison of current graph database models. In Data
Engineering Workshops (ICDEW), 2012 IEEE 28th International Conference on, pages
171–177. IEEE.
[Arenas et al., 2016] Arenas, M., Grau, B. C., Kharlamov, E., Marciuška, Š., and Zheleznya-
kov, D. (2016). Faceted search over rdf-based knowledge graphs. Web Semantics : Science,
Services and Agents on the World Wide Web, 37 :55–74.
[Ayouni et al., 2011] Ayouni, S., Ben Yahia, S., and Laurent, A. (2011). Extracting compact
and information lossless sets of fuzzy association rules. Fuzzy Sets and Systems, 183(1) :1–
25.
[Baas, 2012] Baas, B. (2012). Nosql spatial. Master’s thesis, Universiteit Utrecht.
[Barrasa, 2017] Barrasa, J. (2017). Rdf triple stores vs. labeled property graphs.
[Ben Yahia and Jaoua, 2000] Ben Yahia, S. and Jaoua, A. (2000). A top-down approach for
mining fuzzy association rules. In Proc. 8th Int. Conf. Information Processing Management
of Uncertainty Knowledge-Based Systems, pages 952–959.
[Brahmi et al., 2012] Brahmi, H., Brahmi, I., and Ben Yahia, S. (2012). Omc-ids : at the
cross-roads of olap mining and intrusion detection. In Pacific-Asia Conference on Know-
ledge Discovery and Data Mining, pages 13–24. Springer.
[Buerli and Obispo, 2012] Buerli, M. and Obispo, C. (2012). The current state of graph
databases. Department of Computer Science, Cal Poly San Luis Obispo, mbuerli@ calpoly.
edu, 32(3) :67–83.
[Campinas et al., 2012] Campinas, S., Perry, T. E., Ceccarelli, D., Delbru, R., and Tum-
marello, G. (2012). Introducing rdf graph summary with application to assisted sparql
formulation. In Database and Expert Systems Applications (DEXA), 2012 23rd Interna-
tional Workshop on, pages 261–266. IEEE.
112
[Ciglan et al., 2012] Ciglan, M., Averbuch, A., and Hluchy, L. (2012). Benchmarking traversal
operations over graph databases. In Data Engineering Workshops (ICDEW), 2012 IEEE
28th International Conference on, pages 186–189. IEEE.
[Corcho, 2004] Corcho, O. (2004). A Layered Declarative Approach to Ontology Translation
with Knwoledge Preservation. PhD thesis.
[Djeddi et al., 2014] Djeddi, W. E., Khadir, M. T., and Ben Yahia, S. (2014). Xmap++ :
results for oaei 2014. In OM, pages 163–169. Citeseer.
[Elbassuoni and Blanco, 2011] Elbassuoni, S. and Blanco, R. (2011). Keyword search over
rdf graphs. In Proceedings of the 20th ACM international conference on Information and
knowledge management, pages 237–242. ACM.
[et Claudio Gutierrez, 2008] et Claudio Gutierrez, R. A. (2008). Survey of graph database
models. ACM Computing Surveys (CSUR).
[Fu and Anyanwu, 2011] Fu, H. and Anyanwu, K. (2011). Effectively interpreting keyword
queries on rdf databases with a rear view. The Semantic Web–ISWC 2011, pages 193–208.
[Gasmi et al., 2006] Gasmi, G., Ben Yahia, S., Nguifo, E. M., and Slimani, Y. (2006). Igb :
une nouvelle base générique informative des regles d’association. Revue I3 (Information-
Interaction-Intelligence), 6(1) :31–67.
[Guarino et al., 2009] Guarino, N., Oberle, D., and Staab, S. (2009). What is an ontology ?
In Handbook on ontologies, pages 1–17. Springer.
[Hamdi et al., 2013] Hamdi, S., Bouzeghoub, A., Gancarski, A. L., and Ben Yahia, S. (2013).
Trust inference computation for online social networks. In 2013 12th IEEE International
Conference on Trust, Security and Privacy in Computing and Communications, pages
210–217. IEEE.
[Hamdi et al., 2012] Hamdi, S., Gancarski, A. L., Bouzeghoub, A., and Ben Yahia, S. (2012).
Iris : A novel method of direct trust computation for generating trusted social networks.
In 2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing
and Communications, pages 616–623. IEEE.
[Hamdi et al., 2016] Hamdi, S., Gancarski, A. L., Bouzeghoub, A., and Ben Yahia, S. (2016).
Tison : Trust inference in trust-oriented social networks. ACM Transactions on Information
Systems (TOIS), 34(3) :1–32.
[Hammoud et al., 2015] Hammoud, M., Rabbou, D. A., Nouri, R., Beheshti, S.-M.-R., and
Sakr, S. (2015). Dream : distributed rdf engine with adaptive query planner and minimal
communication. Proceedings of the VLDB Endowment, 8(6) :654–665.
[Hamrouni et al., 2006] Hamrouni, T., Ben Yahia, S., and Nguifo, E. M. (2006). Succinct
system of minimal generators : A thorough study, limitations and new definitions. In In-
ternational Conference on Concept Lattices and Their Applications, pages 80–95. Springer.
[Hamrouni et al., 2010] Hamrouni, T., Ben Yahia, S., and Nguifo, E. M. (2010). Genera-
lization of association rules through disjunction. Annals of Mathematics and Artificial
Intelligence, 59(2) :201–222.
[Hamrouni et al., 2013] Hamrouni, T., Ben Yahia, S., and Nguifo, E. M. (2013). Looking
for a structural characterization of the sparseness measure of (frequent closed) itemset
contexts. Information Sciences, 222 :343–361.
113
[Hamrouni et al., 2005] Hamrouni, T., Ben Yahia, S., and Slimani, Y. (2005). Avoiding the
itemset closure computation “pitfall”. In CLA, volume 2005, pages 46–59.
[Hartig et al., 2009] Hartig, O., Bizer, C., and Freytag, J.-C. (2009). Executing sparql queries
over the web of linked data. The Semantic Web-ISWC 2009, pages 293–309.
[Hartig and Heese, 2007] Hartig, O. and Heese, R. (2007). The sparql query graph model for
query optimization. The Semantic Web : Research and Applications, pages 564–578.
[Huang et al., 2011] Huang, J., Abadi, D. J., and Ren, K. (2011). Scalable sparql querying
of large rdf graphs. Proceedings of the VLDB Endowment, 4(11) :1123–1134.
[Jelassi et al., 2014] Jelassi, M. N., Largeron, C., and Ben Yahia, S. (2014). Efficient unveiling
of multi-members in a social network. Journal of Systems and Software, 94 :30–38.
[Jouili and Vansteenberghe, 2013] Jouili, S. and Vansteenberghe, V. (2013). An empirical
comparison of graph databases. In Social Computing (SocialCom), 2013 International
Conference on, pages 708–715. IEEE.
[Jridi, 2014] Jridi, M. A. (2014). Proposition d’une nouvelle méthode d’alignement d’onto-
logies distribué. Master’s thesis, Faculté des sciences de Tunis.
[Kachroudi et al., 2017] Kachroudi, M., Diallo, G., and Ben Yahia, S. (2017). Oaei 2017
results of KEPLER. In OM@ ISWC, pages 138–145.
[Kachroudi et al., 2011] Kachroudi, M., Moussa, E. B., Zghal, S., and Ben Yahia, S. (2011).
Ldoa results for oaei 2011. In Proceedings of the 6th International Conference on Ontology
Matching-Volume 814, pages 148–155. CEUR-WS. org.
[Kollia et al., 2011] Kollia, I., Glimm, B., and Horrocks, I. (2011). Sparql query answering
over owl ontologies. The Semantic Web : Research and Applications, pages 382–396.
[Lacot, 2005] Lacot, X. (2005). Introduction à owl, un langage xml d’ontologies web.
[Lissandrini et al., 2017] Lissandrini, M., Brugnara, M., and Velegrakis, Y. (2017). An eva-
luation methodology and experimental comparison of graph databases.
[MAILLOT, 2015] MAILLOT, P. (2015). Nouvelles méthodes pour l’évaluation, l’évolution
et l’interrogation des bases du Web des données. PhD thesis, Université de Nantes Angers
Le Mans.
[Makris et al., 2012] Makris, K., Bikakis, N., Gioldasis, N., and Christodoulakis, S. (2012).
Sparql-rw : transparent query access over mapped rdf data sources. In Proceedings of the
15th International Conference on Extending Database Technology, pages 610–613. ACM.
[Morsey et al., 2011] Morsey, M., Lehmann, J., Auer, S., and Ngomo, A.-C. N. (2011). Db-
pedia sparql benchmark–performance assessment with real queries on real data. In Inter-
national Semantic Web Conference, pages 454–469. Springer.
[Mouakher and Ben Yahia, 2016] Mouakher, A. and Ben Yahia, S. (2016). Qualitycover : Ef-
ficient binary relation coverage guided by induced knowledge quality. Information Sciences,
355 :58–73.
[Nguyen et al., ] Nguyen, M. D., Lee, M. S., Oh, S., and Fox, G. C. Sparql query optimization
for structural indexed rdf data.
114
[Papailiou et al., 2014] Papailiou, N., Tsoumakos, D., Konstantinou, I., Karras, P., and Ko-
ziris, N. (2014). H 2 rdf+ : an efficient data management system for big rdf graphs. In
Proceedings of the 2014 ACM SIGMOD international conference on Management of data,
pages 909–912. ACM.
[PELAP, 2016] PELAP, G. F. (2016). Conception d’un framework pour la relaxation des re-
quêtes SPARQL. PhD thesis, École Nationale Supérieure de mécanique et d’aérotechnique.
[Pradel et al., 2013] Pradel, C., Haemmerlé, O., and Hernandez, N. (2013). Passage de la
langue naturelle à une requête sparql dans le système swip. In IC-24èmes Journées fran-
cophones d’Ingénierie des Connaissances.
[Quilitz and Leser, 2008] Quilitz, B. and Leser, U. (2008). Querying distributed rdf data
sources with sparql. In European Semantic Web Conference, pages 524–538. Springer.
[Rashmi Dudhani, 2016] Rashmi Dudhani, C. K. (2016). A sparql query generation mecha-
nism on rdf. International Journal of Computer Science and Mobile Computing.
[Rohloff et al., 2007] Rohloff, K., Dean, M., Emmons, I., Ryder, D., and Sumner, J. (2007).
An evaluation of triple-store technologies for large data stores. In On the Move to Mea-
ningful Internet Systems 2007 : OTM 2007 Workshops, pages 1105–1114. Springer.
[Samet et al., 2014] Samet, A., Lefevre, E., and Ben Yahia, S. (2014). Mining frequent item-
sets in evidential database. In Knowledge and Systems Engineering, pages 377–388. Sprin-
ger.
[Samet et al., 2016] Samet, A., Lefèvre, E., and Ben Yahia, S. (2016). Evidential data
mining : precise support and confidence. Journal of Intelligent Information Systems,
47(1) :135–163.
[Sareh Aghaei and Farsani, 2012] Sareh Aghaei, M. A. N. and Farsani, H. K. (2012). EVO-
LUTION OF THE WORLD WIDE WEB : FROM WEB 1.0 TO WEB 4.0. International
Journal of Web and Semantic Technology (IJWesT) Vol.3, No.1.
[Shekarpour et al., 2015] Shekarpour, S., Marx, E., Ngomo, A.-C. N., and Auer, S. (2015).
Sina : Semantic interpretation of user queries for question answering on interlinked data.
Web Semantics : Science, Services and Agents on the World Wide Web, 30 :39–51.
[Stegmaier et al., 2009] Stegmaier, F., Gröbner, U., Döller, M., Kosch, H., and Baese, G.
(2009). Evaluation of current rdf database solutions. In Proceedings of the 10th In-
ternational Workshop on Semantic Multimedia Database Technologies (SeMuDaTe), 4th
International Conference on Semantics And Digital Media Technologies (SAMT), pages
39–55.
[Trabelsi et al., 2010] Trabelsi, C., Jrad, A. B., and Ben Yahia, S. (2010). Bridging folk-
sonomies and domain ontologies : Getting out non-taxonomic relations. In 2010 IEEE
International Conference on Data Mining Workshops, pages 369–379. IEEE.
[Tzoganis et al., 2009] Tzoganis, G., Koutsomitropoulos, D., and Papatheodorou, T. S.
(2009). Querying ontologies : Retrieving knowledge from semantic web documents. In
Proc. of the 3d Panhellenic Student Conference on Informatics, Related Technologies and
Applications.
115
[Unger et al., 2012] Unger, C., Bühmann, L., Lehmann, J., Ngonga Ngomo, A.-C., Gerber,
D., and Cimiano, P. (2012). Template-based question answering over rdf data. In Procee-
dings of the 21st international conference on World Wide Web, pages 639–648. ACM.
[Wang et al., 2008] Wang, H., Zhang, K., Liu, Q., Tran, T., and Yu, Y. (2008). Q2semantic :
A lightweight keyword interface to semantic search. The Semantic Web : Research and
Applications, pages 584–598.
[Yahya et al., 2012] Yahya, M., Berberich, K., Elbassuoni, S., Ramanath, M., Tresp, V., and
Weikum, G. (2012). Natural language questions for the web of data. In Proceedings
of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and
Computational Natural Language Learning, pages 379–390. Association for Computational
Linguistics.
[Younes et al., 2010] Younes, N. B., Hamrouni, T., and Ben Yahia, S. (2010). Bridging
conjunctive and disjunctive search spaces for mining a new concise and exact represen-
tation of correlated patterns. In International Conference on Discovery Science, pages
189–204. Springer.
[Zghal, 2010] Zghal, S. (2010). Contributions à l’alignement d’ontologies OWL par agrégation
de similarités. PhD thesis, ISG Tunis, Tunisie.
[Zghal et al., 2007a] Zghal, S., Ben Yahia, S., Nguifo, E. M., and Slimani, Y. (2007a). Soda :
an owl-dl based ontology matching system. In Proceedings of the 2nd International Confe-
rence on Ontology Matching-Volume 304, pages 261–267. CEUR-WS. org.
[Zghal et al., 2007b] Zghal, S., Ben Yahia, S., Nguifo, E. M., and Slimani, Y. (2007b). Soda :
Une approche structurelle pour l’alignement d’ontologies owl-dl. ZFO.
[Zheng et al., 2016] Zheng, W., Zou, L., Peng, W., Yan, X., Song, S., and Zhao, D. (2016).
Semantic sparql similarity search over rdf knowledge graphs. Proceedings of the VLDB
Endowment, 9(11) :840–851.
[Zou et al., 2014] Zou, L., Huang, R., Wang, H., Yu, J. X., He, W., and Zhao, D. (2014).
Natural language question answering over rdf : a graph data driven approach. In Procee-
dings of the 2014 ACM SIGMOD international conference on Management of data, pages
313–324. ACM.
116
Résumé :
Ce travail est accompli dans le cadre d’un projet de mémoire de recherche. L’objectif est
de générer des requêtes SPARQL en se basant sur des mots-clés fournis par l’utilisateur, afin
d’interroger des graphes RDF. Pour ce faire, nous avons, tout d’abord, transformé l’ontologie
d’entrée en un graphe RDF qui reflète la sémantique représentée dans l’ontologie. Par la suite,
nous avons stocké ce graphe RDF dans la base de données graphique Neo4j, afin d’assurer
une gestion efficace et persistante des données RDF. Au moment de l’interrogation, nous
avons étudié les différentes interprétations possibles et souhaitées de la requête initialement
formulée par l’utilisateur. Nous avons proposé également d’effectuer une sorte de transfor-
mation entre les deux langages d’interrogation SPARQL et Cypher, qui est propre à Neo4j.
Ceci nous permet d’implémenter l’architecture de notre système au-dessus d’une grande va-
riété de BD-RDF fournissant leurs langages d’interrogation, sans changer aucun des autres
composants du système. Enfin, nous avons testé et évalué notre outil à l’aide de différentes
bases de test, et il s’est avéré que notre outil est exhaustive, efficace, et assez performant.
Mot clés : Ontologie, Graphe RDF, Interrogation des ontologies, Interrogation des graphes
RDF, Langages d’interrogation, Bases de données graphiques, Génération de requêtes, Triples
Stores.
Abstract :
This work is done as part of a research master’s thesis project. The goal is to generate
SPARQL queries based on user-supplied keywords to query RDF graphs. To do this, we first
transformed the input ontology into an RDF graph that reflects the semantics represented
in the ontology. Subsequently, we stored this RDF graph in the Neo4j graphical database to
ensure efficient and persistent management of RDF data. At the time of the interrogation,
we studied the different possible and desired interpretations of the request originally made by
the user. We have also proposed to carry out a sort of transformation between the two query
languages SPARQL and Cypher, which is specific to Neo4j. This allows us to implement the
architecture of our system over a wide variety of BD-RDFs providing their query languages,
without changing any of the other components of the system. Finally, we tested and evaluated
our tool using different test bases, and it turned out that our tool is comprehensive, effective,
and powerful enough.
Keywords : Ontology, RDF Graph, Query ontologies, Query RDF Graphs, Query Lan-
guages, Graphical Databases, Query Generation, Triples Stores.