01
📖 Qu'est-ce qu'une ontologie ?
Une ontologie est une spécification formelle et explicite d'une conceptualisation d'un domaine. Dans le web sémantique, une ontologie définit :
- ✅ Les classes (types d'entités) du domaine
- ✅ Les propriétés (attributs et relations)
- ✅ Les règles et contraintes qui les régissent
- ✅ Les axiomes permettant des inférences logiques
💡 Analogie : Si RDF est le langage (les mots), l'ontologie est la grammaire qui donne les règles. Sans ontologie, les données RDF existent mais sans signification partagée.
Les deux standards principaux pour les ontologies sont :
- RDFS (RDF Schema) : le socle de base
- OWL (Web Ontology Language) : le langage avancé
02
📐 RDFS : les premières briques
RDFS (RDF Schema) est le langage de base pour créer des ontologies. Il permet de définir des classes et des propriétés, ainsi que leurs hiérarchies.
Classes et hiérarchie
@prefix rdfs: .
@prefix ex: .
ex:Personne a rdfs:Class .
ex:Orateur a rdfs:Class ;
rdfs:subClassOf ex:Personne .
ex:Discours a rdfs:Class .
📊 Hiérarchie des classes :
└── Personne
└── Orateur
└── Auditeur
└── Discours
Propriétés et domaines
ex:aPrononce a rdf:Property ;
rdfs:domain ex:Orateur ;
rdfs:range ex:Discours .
ex:nom a rdf:Property ;
rdfs:domain ex:Personne ;
rdfs:range xsd:string .
📝 Explication : La propriété aPrononce ne peut s'appliquer qu'à un Orateur (domaine) et sa valeur doit être un Discours (range).
03
🦉 OWL : raisonnement avancé
OWL (Web Ontology Language) est un langage beaucoup plus expressif que RDFS. Il permet des définitions complexes et des inférences puissantes.
Niveaux d'expressivité OWL
| Niveau | Description | Usage |
| OWL-Lite | Expressivité limitée, calculs rapides | Classifications simples |
| OWL-DL | Logique de description (DL) | Ontologies complexes |
| OWL-Full | Maximum d'expressivité | Recherche, métamodélisation |
Constructeurs OWL courants
@prefix owl: .
@prefix ex: .
# Équivalence entre classes
ex:President owl:equivalentClass ex:ChefDEtat .
# Disjonction (un Orateur ne peut pas être un Discours)
ex:Orateur owl:disjointWith ex:Discours .
# Cardinalité (un discours a exactement un auteur)
ex:Discours rdfs:subClassOf [
owl:onProperty ex:auteur ;
owl:cardinality 1
] .
💡 OWL-DL : C'est le niveau le plus utilisé en pratique. Il offre un bon équilibre entre expressivité et performance des inférences.
04
🧩 Éléments clés d'une ontologie
Classes (concepts)
Les classes représentent des ensembles d'entités partageant des caractéristiques communes.
ex:Orateur, ex:Discours, ex:Evenement, ex:Theme
Propriétés (relations)
Les propriétés relient des classes entre elles ou à des valeurs.
ex:aPrononce (Orateur → Discours)
ex:concerne (Discours → Theme)
ex:date (Discours → xsd:date)
Individus (instances)
Les individus sont les instances concrètes des classes.
ex:CharlesDeGaulle (instance de Orateur)
ex:Appel18Juin (instance de Discours)
Propriétés des propriétés
| Caractéristique | Description | Exemple |
| Transitive | Si A→B et B→C alors A→C | "est situé dans" |
| Symétrique | Si A→B alors B→A | "est ami avec" |
| Fonctionnelle | Une seule valeur possible | "a pour mère" |
| Inverse | Relation inverse | "a pour auteur" ↔ "est auteur de" |
05
⚙️ Inférence et raisonnement
L'inférence est la capacité à déduire de nouvelles connaissances à partir des faits existants et des règles définies dans l'ontologie.
Exemple d'inférence
# Données de base
ex:VictorHugo a ex:Orateur .
ex:LesMiserables a ex:Discours .
ex:VictorHugo ex:aEcrit ex:LesMiserables .
# Règle d'inférence (OWL)
ex:aEcrit rdfs:subPropertyOf ex:aCree .
# Résultat inféré (automatique)
ex:VictorHugo ex:aCree ex:LesMiserables .
Types d'inférences
- Subsomption : Si A est une sous-classe de B, alors toute instance de A est aussi instance de B
- Propriétés inverses : Si
a pour père est l'inverse de est père de, alors on peut déduire l'une de l'autre
- Disjonction : Une instance ne peut pas appartenir à deux classes disjointes
- Cardinalité : Vérifie que les contraintes de nombre sont respectées
⚠️ Note : L'inférence a un coût calculatoire. Pour les très grands graphes (milliards de triplets), on utilise souvent des inférences "à la demande" plutôt que matérielles.
06
🎯 Exemple concret : ontologie Le Monde Sémantique
Voici un extrait de l'ontologie que nous utilisons pour notre plateforme :
@prefix schema: .
@prefix ex: .
# Classes
ex:Orateur a rdfs:Class ;
rdfs:subClassOf schema:Person .
ex:Discours a rdfs:Class ;
rdfs:subClassOf schema:CreativeWork .
ex:Theme a rdfs:Class .
# Propriétés
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 .
ex:cite a rdf:Property ;
rdfs:domain ex:Discours ;
rdfs:range ex:Discours .
# Caractéristiques
ex:cite a owl:TransitiveProperty .
ex:aPrononce owl:inverseOf ex:estPrononcePar .
Ce que cette ontologie permet
- ✅ Un discours peut citer un autre discours (propriété transitive)
- ✅ Un orateur a prononcé un discours
- ✅ Un discours concerne un ou plusieurs thèmes
- ✅ On peut inférer des relations indirectes ("citations en chaîne")
🚀 Chez Le Monde Sémantique
Notre ontologie évolue avec nos besoins. Elle nous permet d'organiser plus de 50 orateurs et 100 discours avec des relations riches et interprétables.
Explorer le résultat →
07
🛠️ Outils de modélisation d'ontologies
| Outil | Description | Type |
| Protégé | Éditeur d'ontologies de Stanford (référence) | Gratuit / Open source |
| TopBraid Composer | Éditeur professionnel avec visualisation | Payant |
| WebVOWL | Visualisation interactive dans le navigateur | Gratuit |
| VocBench | Plateforme collaborative pour thésaurus | Gratuit |
💡 Bonne pratique : Commencez par modéliser un petit périmètre (20-30 classes, quelques propriétés). Validez avec des cas d'usage concrets avant d'étendre.
📚 Tutoriel Protégé : créer votre première ontologie →