Comment créer une ontologie avec Protégé : tutoriel pas à pas
Protégé est un éditeur d’ontologies permettant de construire des modèles fondés notamment sur OWL.
Il peut être utilisé pour définir :
- des classes ;
- des sous-classes ;
- des propriétés ;
- des relations ;
- des individus ;
- des restrictions ;
- des axiomes ;
- des annotations.
Dans ce tutoriel, nous allons créer une petite ontologie consacrée à la formation.
Elle permettra de représenter :
Participant
Formation
Compétence
Formateur
Session
Certification
Nous définirons ensuite des relations comme :
Une formation développe une compétence.
Une formation exige un prérequis.
Un formateur anime une session.
L’objectif n’est pas de construire une ontologie complète de la formation professionnelle, mais d’apprendre une méthode réutilisable.
Avant d’ouvrir Protégé
La première erreur consiste à commencer directement dans le logiciel.
Préparez d’abord le besoin.
Questions auxquelles répondre
Notre ontologie devra permettre de traiter les questions suivantes :
- Quelles compétences une formation développe-t-elle ?
- Quels prérequis exige-t-elle ?
- Quel formateur anime une session ?
- Quelle formation est mise en œuvre dans une session ?
- Quel participant possède le niveau requis ?
- Quelle certification valide une compétence ?
Ces questions guideront la construction.
Vocabulaire initial
Personne
Participant
Formateur
Formation
Session
Compétence
Niveau
Prérequis
Certification
Relations initiales
possèdeCompétence
développeCompétence
exigePrérequis
animeSession
metEnOeuvreFormation
valideCompétence
Étape 1 — Créer un nouveau projet
Après avoir lancé Protégé, créez une nouvelle ontologie.
Le logiciel vous demande généralement de définir un identifiant pour l’ontologie.
Exemple :
https://knowledge-engineering.fr/ontologies/formation
Cet identifiant sert à distinguer votre ontologie des autres modèles.
Il ne doit pas être confondu avec l’adresse d’une page destinée aux visiteurs.
Choisir un espace de noms
Les entités de l’ontologie pourront utiliser un préfixe.
Exemple :
form:
Ainsi :
form:Formation
form:Competence
form:developpeCompetence
représentent des entités appartenant au même vocabulaire.
Étape 2 — Ajouter les annotations générales
Documentez l’ontologie dès le départ.
Ajoutez notamment :
- un titre ;
- une description ;
- un auteur ;
- une version ;
- une date ;
- une langue ;
- une licence éventuelle.
Exemple :
Titre :
Ontologie de démonstration consacrée aux formations.
Description :
Modèle représentant les participants, formations, compétences, sessions et certifications.
Version :
0.1
Langue :
fr
Une ontologie non documentée devient difficile à reprendre.
Étape 3 — Créer les classes principales
Ouvrez la vue consacrée aux classes.
Créez les classes suivantes :
Personne
Formation
Session
Competence
Certification
Ces classes constituent les catégories générales du modèle.
Ajouter les sous-classes
Sous Personne, créez :
Participant
Formateur
Sous Formation, créez :
FormationDebutante
FormationIntermediaire
FormationAvancee
Sous Competence, créez :
CompetenceTechnique
CompetenceCommerciale
CompetenceManageriale
La hiérarchie devient :
Personne
├── Participant
└── Formateur
Formation
├── FormationDebutante
├── FormationIntermediaire
└── FormationAvancee
Competence
├── CompetenceTechnique
├── CompetenceCommerciale
└── CompetenceManageriale
Bien nommer les classes
Choisissez une convention cohérente.
Exemples possibles :
FormationAvancee
ou :
Formation_Advancee
Évitez de mélanger plusieurs conventions.
L’identifiant technique peut être compact, tandis qu’une annotation lisible fournit le libellé :
Identifiant :
FormationAvancee
Libellé français :
Formation avancée
Étape 4 — Ajouter les définitions
Chaque classe importante doit posséder une définition.
Formation
Programme pédagogique structuré visant le développement d’une ou plusieurs compétences.
Session
Événement daté mettant en œuvre une formation pour un groupe de participants.
Compétence
Capacité mobilisable pour réaliser une activité ou atteindre un résultat.
Certification
Dispositif attestant la validation d’une ou plusieurs compétences.
Ces définitions réduisent les ambiguïtés.
Étape 5 — Créer les propriétés d’objet
Une propriété d’objet relie deux individus.
Créez les relations suivantes :
possedeCompetence
developpeCompetence
exigePrerequis
anime
metEnOeuvre
valideCompetence
participeA
Définir le domaine et la portée
possedeCompetence
Domaine :
Participant
Portée :
Competence
La relation signifie :
Un participant possède une compétence.
developpeCompetence
Domaine :
Formation
Portée :
Competence
anime
Domaine :
Formateur
Portée :
Session
metEnOeuvre
Domaine :
Session
Portée :
Formation
valideCompetence
Domaine :
Certification
Portée :
Competence
Attention au domaine et à la portée
Ils ne servent pas uniquement à documenter la relation.
Selon la sémantique OWL, leur utilisation peut permettre au raisonneur de déduire le type des éléments reliés.
Si vous affirmez :
Marie anime SessionOctobre.
et si le domaine de anime est Formateur, le système peut déduire :
Marie est une Formatrice.
Il faut donc les utiliser avec précision.
Étape 6 — Créer les relations inverses
Certaines relations peuvent être lues dans les deux directions.
Relation directe
Formateur → anime → Session
Relation inverse
Session → estAnimeePar → Formateur
Autres exemples :
Formation → developpeCompetence → Competence
Inverse :
Competence → estDeveloppeePar → Formation
Les relations inverses facilitent les requêtes.
Étape 7 — Créer les propriétés de données
Les propriétés de données relient un individu à une valeur.
Pour Formation, créez :
titre
dureeHeures
prix
niveau
reference
Pour Session, créez :
dateDebut
dateFin
capaciteMaximale
Pour Personne, créez :
nom
adresseEmail
Types de valeurs
Exemples :
titre → texte
dureeHeures → nombre entier
prix → nombre décimal
dateDebut → date
capaciteMaximale → nombre entier
Choisir le bon type facilite la validation.
Étape 8 — Ajouter des restrictions
Une restriction décrit une condition associée à une classe.
Toute formation développe au moins une compétence
Pour la classe Formation, ajoutez une restriction correspondant à :
developpeCompetence au moins 1 Competence
Toute session met en œuvre exactement une formation
metEnOeuvre exactement 1 Formation
Toute session est animée par au moins un formateur
estAnimeePar au moins 1 Formateur
Une formation avancée possède un prérequis
exigePrerequis au moins 1 Competence
Ces contraintes donnent davantage de sens au modèle.
Étape 9 — Déclarer les classes disjointes
Deux classes disjointes ne peuvent pas partager le même individu.
Exemple :
Personne
et :
Formation
peuvent être déclarées disjointes.
Un même élément ne devrait pas être simultanément une personne et une formation.
Vous pouvez également déclarer disjointes :
Participant
Formateur
uniquement si une même personne ne peut jamais remplir les deux rôles dans votre domaine.
Dans de nombreuses organisations, une personne peut être à la fois participante et formatrice. Il ne faudrait alors pas déclarer ces classes disjointes.
Cette décision doit dépendre du domaine réel.
Étape 10 — Créer des individus
Ajoutez quelques instances pour tester l’ontologie.
Personnes
MarieDupont
PaulMartin
Types :
MarieDupont → Participant
PaulMartin → Formateur
Compétences
CompetenceSEODebutant
CompetenceSEOIntermediaire
CompetenceSEOAvance
Formations
FormationSEOIntermediaire
FormationSEOAvancee
Sessions
SessionSEOOctobre
Certification
CertificationSEO
Étape 11 — Ajouter les faits
Marie possède une compétence
MarieDupont → possedeCompetence → CompetenceSEODebutant
La formation intermédiaire développe une compétence
FormationSEOIntermediaire
→ developpeCompetence
→ CompetenceSEOIntermediaire
La formation avancée exige un prérequis
FormationSEOAvancee
→ exigePrerequis
→ CompetenceSEOIntermediaire
Paul anime une session
PaulMartin → anime → SessionSEOOctobre
La session met en œuvre une formation
SessionSEOOctobre
→ metEnOeuvre
→ FormationSEOIntermediaire
La certification valide une compétence
CertificationSEO
→ valideCompetence
→ CompetenceSEOAvance
Étape 12 — Ajouter les valeurs
Pour FormationSEOIntermediaire :
titre :
Formation SEO intermédiaire
dureeHeures :
14
niveau :
Intermédiaire
reference :
SEO-INT-01
Pour SessionSEOOctobre :
dateDebut :
2026-10-12
capaciteMaximale :
12
Étape 13 — Lancer un raisonneur
Un raisonneur peut analyser l’ontologie afin de :
- classer automatiquement certaines instances ;
- détecter des incohérences ;
- produire des relations implicites ;
- vérifier certaines restrictions.
Avant de le lancer, enregistrez le projet.
Examinez ensuite :
- les classes inférées ;
- les types ajoutés ;
- les incohérences éventuelles ;
- les classes impossibles à instancier.
Exemple d’inférence
Supposons que :
anime possède pour domaine Formateur.
et que :
PaulMartin anime SessionSEOOctobre.
Le raisonneur peut conclure :
PaulMartin est un Formateur.
Même si ce type n’avait pas été ajouté directement.
Exemple d’incohérence
Supposons que :
Personne et Formation sont disjointes.
et que :
MarieDupont est une Personne.
MarieDupont est une Formation.
Le raisonneur signale une incohérence.
Étape 14 — Tester avec les questions initiales
Question 1
Quelles formations développent la compétence SEO intermédiaire ?
Le modèle doit retrouver :
FormationSEOIntermediaire
Question 2
Quel prérequis exige la formation avancée ?
Réponse :
CompetenceSEOIntermediaire
Question 3
Qui anime la session d’octobre ?
Réponse :
PaulMartin
Question 4
Quelle formation cette session met-elle en œuvre ?
Réponse :
FormationSEOIntermediaire
Une ontologie utile doit répondre aux questions définies avant sa construction.
Étape 15 — Documenter les décisions de modélisation
Créez un document associé au projet.
Exemple :
Décision :
Participant et Formateur ne sont pas disjoints.
Justification :
Une même personne peut suivre une formation et en animer une autre.
Date :
12 juillet 2026.
Auteur :
Équipe Knowledge Engineering.
Cette documentation évite de rediscuter les mêmes choix plusieurs mois plus tard.
Étape 16 — Enregistrer et exporter
Conservez :
- le fichier de l’ontologie ;
- une version datée ;
- la documentation ;
- les exemples ;
- les questions de test ;
- le journal des modifications.
Formats possibles selon les besoins :
- RDF/XML ;
- Turtle ;
- OWL/XML ;
- autres sérialisations RDF compatibles.
Le format Turtle est souvent lisible pour une personne, tandis que les autres formats peuvent être privilégiés selon les outils.
Exemple simplifié en Turtle
@prefix form: <https://knowledge-engineering.fr/ontologies/formation#> .
form:MarieDupont a form:Participant ;
form:possedeCompetence form:CompetenceSEODebutant .
form:FormationSEOIntermediaire a form:FormationIntermediaire ;
form:developpeCompetence form:CompetenceSEOIntermediaire .
form:SessionSEOOctobre a form:Session ;
form:metEnOeuvre form:FormationSEOIntermediaire ;
form:estAnimeePar form:PaulMartin .
Organiser la maintenance
Définissez :
- qui peut ajouter une classe ;
- qui valide une nouvelle relation ;
- comment gérer les versions ;
- comment retirer une entité ;
- comment tester les modifications ;
- comment documenter les changements.
Cycle recommandé
Proposition
↓
Discussion
↓
Modélisation
↓
Test
↓
Validation métier
↓
Publication
Erreurs fréquentes
Créer trop de classes
Une classe doit répondre à une question ou à une règle utile.
Confondre classe et individu
Formation
est une classe.
Formation SEO intermédiaire
est un individu.
Utiliser des relations trop générales
Évitez :
estLieA
Préférez :
developpeCompetence
anime
exigePrerequis
Définir un domaine trop restrictif
Une mauvaise définition peut produire des inférences inattendues.
Déclarer des classes disjointes sans vérifier le domaine
Deux rôles apparemment différents peuvent être exercés par la même personne.
Ajouter des données avant le modèle
Commencez par les questions, les concepts et les relations.
Ne pas définir de libellés
Les identifiants techniques deviennent difficiles à lire.
Ne pas lancer le raisonneur
Certaines incohérences restent invisibles.
Construire une ontologie sans données de test
Un modèle abstrait peut sembler correct sans répondre aux questions réelles.
Checklist Protégé
- [ ] l’objectif de l’ontologie est défini ;
- [ ] les questions de compétence sont écrites ;
- [ ] les classes principales sont limitées ;
- [ ] les classes possèdent des définitions ;
- [ ] les propriétés d’objet sont précises ;
- [ ] les domaines et portées sont vérifiés ;
- [ ] les propriétés de données utilisent les bons types ;
- [ ] les restrictions correspondent aux règles métier ;
- [ ] les classes disjointes sont justifiées ;
- [ ] des individus de test sont ajoutés ;
- [ ] un raisonneur a été exécuté ;
- [ ] les résultats sont validés par un expert ;
- [ ] les choix de modélisation sont documentés.
À retenir
- Une ontologie commence par des questions, pas par le logiciel.
- Les classes représentent les catégories.
- Les individus représentent les éléments concrets.
- Les propriétés d’objet relient les individus.
- Les propriétés de données associent des valeurs.
- Les domaines et portées peuvent produire des inférences.
- Les restrictions expriment des contraintes.
- Les classes disjointes doivent être utilisées avec prudence.
- Les individus de test permettent de vérifier le modèle.
- Le raisonneur aide à détecter les incohérences.
- Les décisions de modélisation doivent être documentées.
- Une petite ontologie utile vaut mieux qu’un modèle immense et inexploitable.
Continuer
Comprendre ce qu’est une ontologie informatique