- Installation
- Lancement de l'Application
- Interface Utilisateur
- Charger des Données
- Visualiser le Graphe
- Interroger avec SPARQL
- Extraire des Connaissances depuis du Texte
- Raisonnement Automatisé
- Valider une Ontologie
- Gérer les Espaces de Noms
- Exporter les Données
- Paramètres et Personnalisation
- Exemples de Scénarios
- Dépannage
- Téléchargez le fichier
Knowledge_Graph_Manager_Setup.exedepuis le lien[Installateur](https://drive.google.com/file/d/1xb94AnZ67cGHQgXUKMIE9woHSfGFIg2k/view?usp=sharing). - Double-cliquez sur l'installateur et suivez les instructions.
- Lancez l'application depuis le raccourci créé sur le Bureau ou dans le menu Démarrer.
- Python 3.10+ (recommandé : Python 3.12)
- Java 8+ (nécessaire pour les raisonneurs HermiT et Pellet)
- Git (optionnel, pour cloner le projet)
# 1. Cloner le projet
git clone <url-du-repo>
cd knowledge-Graph-tools
# 2. Créer un environnement virtuel
python -m venv .venv
# 3. Activer l'environnement virtuel
# Windows :
.venv\Scripts\activate
# Linux/macOS :
source .venv/bin/activate
# 4. Installer les dépendances
pip install -r requirements.txt
# 5. Télécharger le modèle SpaCy
python -m spacy download en_core_web_sm
# 6. Configurer la clé API Gemini (optionnel)
# Créer un fichier .env à la racine du projet :
echo GEMINI_API_KEY=votre_clé_ici > .env
# 7. Lancer l'application
python app.pyRaccourci Windows : Vous pouvez aussi double-cliquer sur
run.batpour lancer l'application automatiquement.
Au lancement, l'application affiche la fenêtre principale avec :
- Un graphe vide (onglet "Graph Visualization")
- Un éditeur SPARQL (onglet "SPARQL Query")
- Un extracteur de texte (onglet "Text to RDF")
- Le panneau de hiérarchie ontologique (à gauche)
- Le panneau de statistiques (à droite)
L'interface est composée de 5 zones principales :
┌──────────────────────────────────────────────────────────────┐
│ Menu Bar : File | View | Reasoning | Tools │
├──────────────────────────────────────────────────────────────┤
│ Toolbar : [Reasoning Profile ▼] [Run Reasoner] │
├──────────┬───────────────────────────────────┬───────────────┤
│ │ │ │
│ Ontology │ Central Area (Tabs) │ Graph │
│ Hierarchy│ ├── Graph Visualization │ Statistics │
│ (Dock) │ ├── SPARQL Query │ (Dock) │
│ │ └── Text to RDF │ │
│ │ │ │
└──────────┴───────────────────────────────────┴───────────────┘
Les panneaux latéraux (Docks) sont redimensionnables et peuvent être détachés ou fermés.
- Allez dans File → Load RDF Graph.
- Sélectionnez un fichier RDF supporté :
- Turtle (
.ttl) - RDF/XML (
.xml,.rdf,.owl) - N-Triples (
.nt) - JSON-LD (
.jsonld) - TriG (
.trig) - N-Quads (
.nq)
- Turtle (
- Le graphe est chargé, visualisé, et les statistiques sont mises à jour.
Astuce : Vous pouvez charger plusieurs fichiers successivement — les données sont cumulées dans le même graphe.
- Allez dans File → Load Ontology.
- Sélectionnez un fichier ontologie (
.owl,.rdf,.xml,.ttl). - L'ontologie est chargée à la fois dans :
- Le panneau de hiérarchie (arbre de classes et propriétés)
- Le graphe RDF (pour la visualisation et les requêtes SPARQL)
- File → Reset/Clear Graph : Vide complètement le graphe en mémoire et réinitialise tous les panneaux.
L'onglet Graph Visualization affiche un graphe interactif :
| Action | Effet |
|---|---|
| Cliquer sur un nœud | Le sélectionne (affiché dans la barre d'état) |
| Double-cliquer sur un nœud HTTP | Ouvre l'URI dans le navigateur système |
| Glisser un nœud | Déplace le nœud |
| Molette | Zoom avant/arrière |
| Cliquer-glisser dans le vide | Déplace la vue d'ensemble |
Utilisez le sélecteur Layout en haut de l'onglet :
- Force Directed (défaut) : Les nœuds se repoussent naturellement, les arêtes agissent comme des ressorts. Idéal pour explorer la structure globale.
- Hierarchical : Affichage en arbre de haut en bas. Utile pour les ontologies avec une hiérarchie claire.
- Barnes Hut : Algorithme optimisé pour les grands graphes. Plus rapide que Force Directed pour beaucoup de nœuds.
- Cliquez sur un nœud pour le sélectionner.
- Cliquez sur le bouton "Remove Selected Node".
- Le nœud et tous les triplets qui le référencent (comme sujet ou objet) seront supprimés.
- Nœuds bleus (🔵
#97C2FC) : Sujets des triplets - Nœuds roses (🔴
#FB7E81) : Objets des triplets - Arêtes : Prédicats (labels affichés sur les arêtes)
Note : Pour les performances, seuls les 500 premiers triplets sont affichés dans le graphe.
L'onglet SPARQL Query offre un éditeur de requêtes complet.
L'éditeur fournit :
- Coloration syntaxique : Mots-clés en bleu, variables en vert, fonctions en violet, URIs en cyan, commentaires en gris.
- Auto-complétion : Commencez à taper et une liste de suggestions apparaît. Utilisez ↑/↓ pour naviguer et Tab/Entrée pour insérer.
# Exemple : Lister tous les triplets du graphe
SELECT * WHERE { ?s ?p ?o } LIMIT 10- Tapez votre requête dans l'éditeur.
- Cliquez sur "Execute Query".
- Les résultats apparaissent dans l'onglet Table (tableau) et Visualization (sous-graphe).
- La barre de statut affiche le nombre de résultats et le temps d'exécution.
# Exemple : Construire un sous-graphe des personnes
CONSTRUCT { ?person a foaf:Person . ?person foaf:name ?name }
WHERE { ?person a foaf:Person . ?person foaf:name ?name }Les résultats d'un CONSTRUCT sont affichés à la fois comme tableau et comme graphe visualisé.
# Exemple : Vérifier si un triplet existe
ASK WHERE { ?s a owl:Class }Le résultat est un simple True ou False.
# Exemple : Ajouter un triplet
PREFIX ex: <http://example.org/>
INSERT DATA {
ex:Alice a ex:Person .
}# Exemple : Supprimer un triplet
PREFIX ex: <http://example.org/>
DELETE DATA {
ex:Alice a ex:Person .
}- Tapez votre opération UPDATE.
- Cliquez sur "Execute UPDATE" (ou "Execute Query" — la détection est automatique).
- Un message confirme le nombre de triplets ajoutés/supprimés.
- Le graphe et les statistiques sont automatiquement mis à jour.
- Les requêtes exécutées sont automatiquement sauvegardées dans le panneau History (à droite de l'éditeur).
- Double-cliquez sur une requête dans l'historique pour la recharger dans l'éditeur.
- L'historique est persisté entre les sessions dans
settings.xml.
- Exécutez une requête.
- Cliquez sur "Export Results".
- Choisissez le format :
- JSON : Format structuré standard.
- CSV : Compatible avec Excel et tableurs.
- XML : Format SPARQL Results XML (standard W3C).
L'onglet Text to RDF permet de convertir du texte libre en triplets RDF.
- Sélectionnez l'onglet 🤖 Gemini AI.
- Configurez votre clé API :
- Collez votre clé Google Gemini dans le champ "API Key".
- La clé est automatiquement sauvegardée dans le fichier
.env.
- Choisissez un modèle :
- Par défaut :
gemini-2.0-flash(rapide et bon marché). - Cliquez sur "Fetch Models" pour voir tous les modèles disponibles.
- Par défaut :
- Entrez votre texte dans la zone de saisie.
- Cliquez sur "Generate RDF (Gemini)".
- Les triplets extraits apparaissent dans un tableau et un graphe de visualisation.
Exemple de texte :
Apple Inc. was founded by Steve Jobs and Steve Wozniak in April 1976.
The company is headquartered in Cupertino, California.
- Sélectionnez l'onglet 🧠 SpaCy NLP.
- Entrez votre texte dans la zone de saisie.
- Cliquez sur "Generate RDF (SpaCy)".
- Les triplets extraits sont affichés.
Conseil : SpaCy fonctionne mieux avec des phrases simples ayant une structure sujet-verbe-objet claire. Par exemple : « Alice lives in Paris. Bob works at Google. »
- "Merge to Main Graph" : Ajoute les triplets extraits au graphe principal. Le graphe et les statistiques sont automatiquement mis à jour.
- "Export RDF" : Exporte les triplets extraits dans un fichier séparé (Turtle, RDF/XML, ou N-Triples).
| Critère | SpaCy NLP | Gemini AI |
|---|---|---|
| Connexion Internet | ❌ Non requise | ✅ Requise |
| Coût | Gratuit | API payante (avec quota gratuit) |
| Qualité | Limitée aux structures S-V-O explicites | Comprend les relations implicites |
| Vitesse | Très rapide (local) | 1-5 secondes par requête |
| Vocabulaire | Basique (kb:, owl:, foaf:) | Riche (utilise rdfs:, schema:, etc.) |
Le raisonnement permet d'inférer de nouvelles connaissances à partir des données et de l'ontologie existante.
Dans la barre d'outils, sélectionnez un profil :
| Profil | Description |
|---|---|
| OWL DL (HermiT) | Raisonneur complet pour OWL DL. Détecte les sous-classes, l'appartenance de type, la transitivité, etc. |
| OWL DL (Pellet) | Alternative à HermiT. Supporte aussi l'inférence sur les propriétés de données. |
| RDFS (via OWL DL) | Mode simplifié utilisant uniquement les règles RDFS. |
Prérequis : Java doit être installé sur votre système pour que les raisonneurs fonctionnent.
- Chargez un graphe RDF ou une ontologie contenant des classes et des individus.
- Allez dans Reasoning → Run Reasoner (HermiT) ou Run Reasoner (Pellet), ou cliquez sur "Run Reasoner" dans la barre d'outils.
- L'application vous demande de sauvegarder le graphe en format OWL (nécessaire pour le raisonneur).
- Après le raisonnement, un dialogue affiche :
- Le temps d'exécution.
- Le nombre de nouveaux triplets inférés.
- Un tableau détaillé des triplets inférés.
- Vous pouvez exporter les triplets inférés séparément.
- Allez dans Reasoning → Enable Auto-Reasoning.
- Quand cette option est activée, le raisonnement s'exécute automatiquement à chaque fois que le graphe change (chargement de fichier, fusion de données, etc.).
Données initiales :
:Dog rdfs:subClassOf :Animal .
:Rex rdf:type :Dog .
Après raisonnement (triplet inféré) :
:Rex rdf:type :Animal .
Le raisonneur déduit que si Rex est un Chien et que Chien est une sous-classe d'Animal, alors Rex est aussi un Animal.
La validation vérifie la cohérence logique de votre ontologie.
- Chargez un graphe RDF ou une ontologie.
- Allez dans Tools → Validate Ontology.
- L'application vous demande de sauvegarder le graphe au format OWL.
- Un dialogue affiche les résultats classés par sévérité :
- ❌ Erreur : Classes insatisfiables, incohérences logiques.
⚠️ Avertissement : Propriétés sans domaine/portée, pas de classes définies.- ℹ️ Information : Statistiques, classes orphelines.
| Sévérité | Message |
|---|---|
| ℹ️ INFO | Found 5 class(es): Person, Organization, Place... |
| ℹ️ INFO | Found 3 property(ies). |
| Property 'hasChild' has no range defined. | |
| ℹ️ INFO | Consistency check passed: No unsatisfiable classes found. |
Les espaces de noms (namespaces) permettent d'utiliser des préfixes courts au lieu d'URIs complètes.
- Allez dans Tools → Manage Namespaces.
- Le dialogue affiche tous les préfixes liés au graphe.
- Remplissez les champs Prefix et URI.
- Exemple : Prefix =
ex, URI =http://example.org/
- Exemple : Prefix =
- Cliquez sur "Bind/Update".
- Le préfixe est maintenant utilisable dans les requêtes SPARQL.
- Sélectionnez une ligne dans le tableau.
- Cliquez sur "Remove Selected".
- Allez dans File → Export Graph.
- Choisissez le format :
- Turtle (
.ttl) : Format lisible et compact. - RDF/XML (
.rdf,.xml) : Format XML standard. - N-Triples (
.nt) : Format simple, un triplet par ligne.
- Turtle (
- Exécutez une requête dans l'onglet SPARQL.
- Cliquez sur "Export Results".
- Formats disponibles : JSON, CSV, XML.
Dans l'onglet "Text to RDF", cliquez sur "Export RDF" pour sauvegarder les triplets extraits dans un fichier séparé.
Après un raisonnement, dans le dialogue des résultats, cliquez sur "Export Inferred Triples".
- Allez dans View → Dark Theme pour activer/désactiver le thème sombre.
- La préférence est sauvegardée automatiquement.
- La clé est stockée dans le fichier
.env(sécurisé, exclu de Git). - Vous pouvez la modifier :
- Via l'interface (onglet Text to RDF → champ API Key).
- Manuellement dans le fichier
.env.
- Sélectionnable dans l'onglet Text to RDF.
- Cliquez sur "Fetch Models" pour voir les modèles disponibles avec votre clé API.
- Par défaut :
gemini-2.0-flash.
- Modifiable dans la barre d'outils ou via le menu Reasoning.
- Sauvegardé automatiquement dans
settings.xml.
- File → Load Ontology → Sélectionnez
data/examples/pizza.owl. - Observez la hiérarchie de classes dans le panneau gauche.
- Passez à l'onglet SPARQL Query et exécutez :
SELECT ?class WHERE { ?class a owl:Class } LIMIT 20
- Explorez le graphe dans l'onglet Graph Visualization.
- Allez dans l'onglet Text to RDF → 🤖 Gemini AI.
- Entrez le texte suivant :
Marie Curie was born in Warsaw, Poland. She discovered radium and polonium. She won two Nobel Prizes. - Cliquez sur "Generate RDF (Gemini)".
- Observez les triplets extraits.
- Cliquez sur "Merge to Main Graph" pour les ajouter au graphe principal.
- Passez à l'onglet Graph Visualization pour voir le résultat.
- File → Load RDF Graph → Sélectionnez
data/reasoners/famille_data.rdf. - Observez les données existantes avec :
SELECT * WHERE { ?s ?p ?o }
- Cliquez sur "Run Reasoner" dans la barre d'outils.
- Sauvegardez le graphe quand demandé.
- Observez les nouveaux triplets inférés dans le dialogue.
- Refaites la requête SPARQL : de nouveaux résultats apparaissent.
- Dans l'onglet SPARQL Query, exécutez :
PREFIX ex: <http://example.org/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> INSERT DATA { ex:Cat a owl:Class . ex:Animal a owl:Class . ex:Cat rdfs:subClassOf ex:Animal . ex:Felix a ex:Cat . }
- Vérifiez dans le graphe que les données sont ajoutées.
- Allez dans Tools → Validate Ontology pour vérifier la cohérence.
- Lancez le raisonnement pour vérifier que Felix est inféré comme Animal.
- Vérifiez que Python 3.10+ est installé :
python --version - Vérifiez l'environnement virtuel : Assurez-vous que
.venvexiste et est activé. - Réinstallez les dépendances :
pip install -r requirements.txt - Vérifiez PyQt6-WebEngine :
pip install PyQt6-WebEngine
- Le composant
QWebEngineViewnécessitePyQt6-WebEngine. Installez-le si nécessaire. - Sur certains systèmes, une variable d'environnement peut être nécessaire :
set QTWEBENGINE_CHROMIUM_FLAGS=--disable-gpu
- Vérifiez que Java est installé :
java -version - Assurez-vous que Java est dans le PATH.
- Le raisonneur HermiT et Pellet sont des programmes Java embarqués dans owlready2.
- Vérifiez votre clé API : Assurez-vous qu'elle est valide et non expirée.
- Vérifiez votre connexion Internet.
- Erreur 429 (quota) : Attendez quelques minutes et réessayez.
- Erreur 403 : Vérifiez que l'API Gemini est activée dans votre projet Google Cloud.
- Installez le modèle :
python -m spacy download en_core_web_sm - Si l'erreur persiste, essayez :
pip install spacy --upgrade
- L'installateur nécessite des droits administrateur (installation dans Program Files).
- Si l'exécutable crash, vérifiez que le fichier
.envet les données sont présents dans le dossier d'installation.
| Astuce | Détail |
|---|---|
| Chargement multiple | Chargez plusieurs fichiers RDF pour les combiner dans un seul graphe |
| Auto-complétion | Tapez 2+ caractères dans l'éditeur SPARQL pour voir les suggestions |
| Préfixes rapides | Tapez PREFIX dans l'éditeur pour voir les préfixes courants |
| Double-clic historique | Double-cliquez sur une requête dans l'historique pour la recharger |
| Double-clic URI | Double-cliquez sur un nœud HTTP dans le graphe pour l'ouvrir dans le navigateur |
| Panneaux flottants | Les docks latéraux peuvent être détachés et repositionnés |
| Thème pour les démos | Le thème sombre est recommandé pour les présentations |
