Débuter avec les ontologies

Guide pas à pas pour créer votre première ontologie

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 :

ConceptDéfinitionExemple
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