01
📖 Introduction
Ce tutoriel vous guide dans la création de votre première ontologie. Une ontologie est une représentation formelle des concepts d'un domaine et des relations entre eux. C'est le cœur du web sémantique et des graphes de connaissances.
💡 À retenir : Une ontologie est comme le plan d'architecte de vos données. Elle définit les types d'entités et comment elles se relient.
📝 Objectif du tutoriel :
Nous allons créer ensemble une ontologie simple pour un domaine de discours et orateurs.
02
🧠 Étape 1 : Comprendre les concepts fondamentaux
Avant de commencer, familiarisons-nous avec les concepts de base :
| Concept | Définition | Exemple |
| Classe
| Catégorie d'entités
| "Orateur", "Discours", "Événement"
|
| Propriété
| Relation entre classes ou attribut
| "a prononcé", "date", "titre"
|
| Individu
| Instance concrète d'une classe
| "Charles de Gaulle", "Appel du 18 juin"
|
| Axiome
| Règle ou contrainte
| "Un discours a exactement un auteur"
|
03
📝 Étape 2 : Identifier les concepts de son domaine
La première étape consiste à lister tous les concepts importants de votre domaine.
Exemple pour le domaine "Discours et Orateurs" :
- Concepts principaux : Orateur, Discours, Événement, Thème
- Attributs : Nom, Date, Lieu, Contenu
- Relations : "prononce", "concerne", "a lieu à", "cite"
💡 Conseil : Utilisez des post-it ou un tableau blanc pour organiser vos concepts visuellement.
04
🏷️ Étape 3 : Définir les classes
Une classe représente un type d'entité dans votre domaine. Commencez par les classes les plus générales.
@prefix rdfs: .
@prefix ex: .
# Définition des classes de base
ex:Orateur a rdfs:Class .
ex:Discours a rdfs:Class .
ex:Evenement a rdfs:Class .
ex:Theme a rdfs:Class .
📝 Question à se poser :
"Quelles sont les entités principales que je veux décrire ?"
05
🔗 Étape 4 : Définir les propriétés
Les propriétés relient les classes entre elles ou leur associent des valeurs.
# Propriétés d'objet (relient des classes)
ex:aPrononce a rdf:Property ;
rdfs:domain ex:Orateur ;
rdfs:range ex:Discours .
ex:concerne a rdf:Property ;
rdfs:domain ex:Discours ;
rdfs:range ex:Theme .
# Propriétés de données (attributs)
ex:date a rdf:Property ;
rdfs:domain ex:Discours ;
rdfs:range xsd:date .
💡 Domain et Range :
- domain : quelle classe peut utiliser cette propriété
- range : quel type de valeur ou classe est attendu
06
📊 Étape 5 : Créer la hiérarchie
Organisez vos classes en hiérarchie avec des sous-classes.
# Hiérarchie des classes
ex:Personne a rdfs:Class .
ex:Orateur a rdfs:Class ;
rdfs:subClassOf ex:Personne .
ex:Auditeur a rdfs:Class ;
rdfs:subClassOf ex:Personne .
# Hiérarchie des propriétés
ex:cite a rdf:Property ;
rdfs:subPropertyOf ex:reference .
📊 Visualisation de la hiérarchie :
Personne
├── Orateur
└── Auditeur
07
⚙️ Étape 6 : Ajouter des contraintes (optionnel)
Pour une ontologie plus précise, ajoutez des contraintes OWL.
@prefix owl: .
# Un discours a exactement un auteur
ex:Discours rdfs:subClassOf [
owl:onProperty ex:auteur ;
owl:cardinality 1
] .
# Un orateur et un discours sont disjoints
ex:Orateur owl:disjointWith ex:Discours .
⚠️ Attention : Les contraintes OWL sont puissantes mais augmentent la complexité. Commencez simple !
08
✅ Étape 7 : Valider et tester
Validation syntaxique
# Vérifier la syntaxe RDF
rapper -i turtle mon_ontologie.ttl -o dot 2>&1 | head -20
Test avec des individus
# Créer des instances de test
ex:CharlesDeGaulle a ex:Orateur ;
ex:nom "Charles de Gaulle" .
ex:Appel18Juin a ex:Discours ;
ex:titre "Appel du 18 juin" ;
ex:date "1940-06-18" ;
ex:auteur ex:CharlesDeGaulle .
💡 Outils recommandés :
- Protégé : Éditeur visuel d'ontologies
- RDF Validator : Vérification syntaxique en ligne
- SPARQL : Tester vos requêtes