QueryGraph : Outil de création de requête à partir d’un graphe

a marqué ce sujet comme résolu.

Bonjour,

Je viens présenter QueryGraph qui est un outil web de création de requête en SPARQL, à partir de graphe. C’est en lien avec mon tutoriel sur le SPARQL.

Le principe est de dessiner un graphe composé de noeuds représentant une donnée et de liens représentant les liens entre ces données, à partir de cela le logiciel génère une requête SPARQL.

Le logiciel ne permet pour le moment que de faire des requêtes sur le Triplestore (base de données) de Wikidata mais à terme il est prévu de permettre d’exécuter des requêtes sur d’autres TripleStore de données RDF voir peut-être des bases de données relationnelles.

Requête permettant de récupérer les personnes dont les parents sont nées à Paris
Requête permettant de récupérer les personnes dont les parents sont nées à Paris

Composition des graphes

La création d’un graphe se compose de deux types de noeuds

  • Element : Noeud représentant une donnée variable avec un type de donnée prédéfinie.
  • Donnée : Noeud correspondant à une donnée fixe.
  • Filtre : Noeud permettant d’effectué des filtres sur les données de type nombre, texte et date.

Et de deux types des liens fixes ou variable.

Liens

Lien pour tester l’application

Le logiciel est sous licence MIT, vous pouvez retrouver son code source sur GitHub.

Exemple de requêtes

Personnes liée aux films réalisées par Charlie Chaplin
Personnes liée aux films réalisées par Charlie Chaplin
Fondateurs de musées en France
Fondateurs de musées en France

Fonctionnalités à venir

Le logiciel est encore en cours de développement, voici une petite liste des fonctionnalités qui vont être ajoutées prochainement :

  • Choix des éléments renvoyé par la requête
  • Adaptation à d’autres TripleStore (Base de données), par exemple celui de la BNF.
+4 -0

Bonjour,

Une nouvelle version est disponible, les principales améliorations sont :

  • Affichage des résultats sous forme de graphes
  • Système de requêtes présauvegardées permettant d’avoir des exemples de requêtes
  • Système de sauvegarde des requêtes en local sur votre navigateur web.
  • Récupération des labels des liens
Réseaux d'acteurs du film Fight Club
Réseaux d'acteurs du film Fight Club
Visualisation du résultat sous forme de graphe
Visualisation du résultat sous forme de graphe

N’hésiter par à faire des retour avec des remarques et idées d’améliorations ;)

Bonjour, pas mal du tout ton projet ! Même si ça nécessite quand même de trouver les bonnes références. Je pense que dans les données, ça gagnerai d’avoir une liste de suggestions en complément du champ de recherche.

Ensuite comment recherche t-on une date (de naissance) ? Sachant que la référence jour/mois/année est disponible mais qu’elle n’est pas renseigné en tant que telle dans l’entité.

Typiquement, j’ai voulu rechercher mon arrière-grand-père qui a sa page Wikipédia. Donc j’ai choisi son lieu de naissance (P19) qui est Anet (Q529402). Puis j’ai filtré par "sexe et genre" (P21) pour choisir un homme (Q6581097). Pour affiner les résultats, j’ai également voulu indiquer sa date de naissance (P569). Donc j’ai tenté 1914 (Q2083) ça ne fonctionne pas. J’ai essayé plus précisément en indiquant sa date de naissance complète 19 février 1914 (Q69259943). Toujours rien. Il est bien dans la banque de données mais je remarque que sa date de naissance n’est pas lié à une référence … alors comment fait-on ? Merci.

Merci de ton retour @Yarflam

Bonjour, pas mal du tout ton projet ! Même si ça nécessite quand même de trouver les bonnes références. Je pense que dans les données, ça gagnerai d’avoir une liste de suggestions en complément du champ de recherche.

J’ai pensé que ce n’était pas nécessaire mais je vais l’ajouter si ça peut aider les utilisateurs.

Ensuite comment recherche t-on une date (de naissance) ? Sachant que la référence jour/mois/année est disponible mais qu’elle n’est pas renseigné en tant que telle dans l’entité.

Typiquement, j’ai voulu rechercher mon arrière-grand-père qui a sa page Wikipédia. Donc j’ai choisi son lieu de naissance (P19) qui est Anet (Q529402). Puis j’ai filtré par "sexe et genre" (P21) pour choisir un homme (Q6581097). Pour affiner les résultats, j’ai également voulu indiquer sa date de naissance (P569). Donc j’ai tenté 1914 (Q2083) ça ne fonctionne pas. J’ai essayé plus précisément en indiquant sa date de naissance complète 19 février 1914 (Q69259943). Toujours rien. Il est bien dans la banque de données mais je remarque que sa date de naissance n’est pas lié à une référence … alors comment fait-on ? Merci.

Yarflam

Les date de naissance ne peuvent pas être recherché pour le moment, car il s’agit de valeur en dur. Dans la prochaine version apparaitrons des filtres qui permettrons de traiter ces cas la, avec par exemple un filtre pour récupérer toutes les personnes nées avant une date choisie.

+0 -0

Bonjour Shevek,

Le lien vers le test semble mort. Je trouve ton projet vraiment très intéressant, et je me demande même si je ne l’utiliserais pas dans le mien… Tu vois, dans l’AtomSpace de OpenCog, les requêtes sont justement stockées dans le graph, et bien sûr dans mon petit projet d’IA amateur je voudrais faire pareil.

Ma question : est-ce que l’interface est découplée du générateur de requête ?

Bonjour Emollient,

En effet le site est hébergé chez moi et suite à mon déménagement je n’ai plus de connexion internet, ce sera de retour normalement mercredi prochain avec une nouvelle version. Tu peut tout de même tester si tu le souhaite en reprennent le code sur gitHub et en le plaçant sur un serveur local (par exemple wamp).

Même si le code est découpé en parties mais l’interface n’est pas totalement découplé de la génération de requête, le logiciel n’a pas été conçu pour être repris sous forme de parties séparées.

Si le but est de générer un graphe j’utilise la library VisNetwork qui simplifie grandement la tache, j’ai écrit il y a un ans un tuto dessus qui pourrait t’aider. Je pense que le mieux c’est de faire la génération de graphe par toi même ce qui te permettra de mieux le personnaliser. Tu peut également pour t’aider t’inspirer du code de QueryGraph. Si tu as des question sur VisNetwork et sur mon code n’hésite pas à m’envoyé un MP.

Une nouvelle version est disponible, la principale évolution est le portage du logiciel à d’autres TripleStores, l’autre fonctionnalité importante et la possibilité de voir la requête envoyé et de trier les résultats.

Lien pour tester avec Wikidata :

Lien pour tester avec DataBNF : (données de la Bibliothèque National de France)

Lien pour tester avec OpenArchaeo : (Plateforme web sémantique pour l’archéologie)

Bonjour Shevek,

Content de savoir que le projet est toujours en développement. Surtout, continue ! Je pense que travailler sur le lien entre une représentation visuelle et un encodage formel des connaissances est, à notre époque, d’une importance majeure, et ce non seulement à cause du potentiel crowd-sourcing que ce lien permet, mais aussi parce qu’il nous invite à explorer la nature même de l’organisation du savoir dans l’esprit humain, dont j’ai tendance à nier la complexité.

Nan je déconne, en fait ton projet il est juste trop cool ;-)

Bonjour,

Une nouvelle version est disponible avec comme nouveautés :

  • La possibilité de masqué certain résultats et de trier l’ordre des résultats.
  • Ajout d’icônes pour certains types de nœuds prédéfinis afin de rendre le visuel plus sympathique.
  • Système de récupération automatique des labels pour les autres TripleStore que Wikidata.
  • Adaptation pour le Triplestore de Persée (collection de revues scientifiques axé SHS) à tester ici.

Vue graphe des collaboration de Pierre Bourdieu
Vue graphe des collaboration de Pierre Bourdieu

Si vous avez des idées d’améliorations pour les prochaines versions, je suis preneur.

+0 -0

Salut @shevek,

J’ai découvert récemment le web sémantique et je dois dire que ton projet est génial ! Très pratique pour un débutant comme moi !

Si ce n’est pas indiscret, qu’est-ce qui te pousses à développer un tel outil ? Tu as un projet en lien avec le RDF ?

Sinon je pense que ton outil pourrait être davantage connu en travaillant ton repo GitHub (avec un README plus détaillé, des mots clés pour le moteur de recherche etc). Cela pourrait attirer d’autres utilisateurs et potentiellement des contributeurs !

Salut @Nostalgique, merci de tes remarques.

Tu as raison le repo GitHub à été fait un peu à l’arrache, je le retravaillerait prochainement.

Je me suis intéresser à la base au web sémantique car ça me permettait d’avoir des données pour faire de la représentation de données, aillant un interêt pour les représentation sous forme de graphes j’ai penser qu’utiliser cette forme de représentation pour créer des requête pourrait simplifier la création de requête et comme j’était content du résultat j’ai continuer à l’améliorer.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte