Ontologies (OWL, RDFS)

Le cœur sémantique des graphes de connaissances : structurez, définissez et raisonnez sur vos données

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

NiveauDescriptionUsage
OWL-LiteExpressivité limitée, calculs rapidesClassifications simples
OWL-DLLogique de description (DL)Ontologies complexes
OWL-FullMaximum 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éristiqueDescriptionExemple
TransitiveSi A→B et B→C alors A→C"est situé dans"
SymétriqueSi A→B alors B→A"est ami avec"
FonctionnelleUne seule valeur possible"a pour mère"
InverseRelation 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

OutilDescriptionType
ProtégéÉditeur d'ontologies de Stanford (référence)Gratuit / Open source
TopBraid ComposerÉditeur professionnel avec visualisationPayant
WebVOWLVisualisation interactive dans le navigateurGratuit
VocBenchPlateforme collaborative pour thésaurusGratuit
💡 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 →