Logiques de descriptions¶§
author: | Pierre-Antoine Champin |
---|
Historique¶§
Logique¶§
- Logique des propositions (Boole)
- Logique des prédicats (Frege, ...)
- Calculabilité, complexité (Turing-Church)
- Incomplétude (Gödel)
Règles¶§
Clauses de Horn
Systèmes experts (PROLOG)
cretois(minos) . menteur(X) :- cretois(X) . ?- menteur(minos) yes ?- menteur(M) M=minos
Difficulté à maintenir de grosses bases de règles
Syntaxe et sémantique¶§
Éléments de base¶§
L’univers du discours est constitué d’individus, appartenant à des concepts (ou classes), et reliés entre eux par des rôles (ou propriété).
LD | LPO |
---|---|
Individu | Terme |
Concept | Prédicat 1-aire |
Rôle | Prédicat 2-aire |
Exemples¶§
Concepts | Rôles | Individus |
---|---|---|
Homme | connait | john |
Voiture | (a pour) père | jane |
Rouge | mère | ab-123-cd |
Menteur | enfant | |
Ferrari | conduit |
Axiomes¶§
Syntaxe | Appellation | Sémantique |
---|---|---|
C ⊑ D | subsomption de concepts | ∀ x, C(x) → D(x) |
r ⊑ s | subsomption de rôles | ∀ x, y, r(x, y) → s(x, y) |
NB: l’équivalence peut s’exprimer par deux subsomptions symétriques : C ⊑ D et D ⊑ C
Concepts complexes : constructeurs ensemblistes¶§
Syntaxe | Appellation | Sémantique |
---|---|---|
⊤ | concept universel (top) | Δ |
⊥ | concept absurde (bottom) | ∅ |
¬C | complément | { x | ¬C(x) } |
C ⊔ D | union | { x | C(x) } ∪ { x | D(x) } |
C ⊓ D | intersection | { x | C(x) } ∩ { x | D(x) } |
{a} | extension | {a} |
Concepts complexes : restrictions¶§
Syntaxe | Appellation | Sémantique |
---|---|---|
∃ r C | qualificateur existentiel | { x | ∃ y, r(x, y) ∧ C(y) } |
∀ r C | qualificateur universel | { x | ∀ y, ¬r(x, y) ∨ C(y) } |
= n r C | quantificateur | { x | #{y | r(x, y) ∧ C(y)} = n } |
≤ n r C | quantificateur (max) | { x | #{y | r(x, y) ∧ C(y)} ≤ n } |
≥ n r C | quantificateur (min) | { x | #{y | r(x, y) ∧ C(y)} ≥ n } |
NB : on omet généralement C lorsqu’il s’agit de ⊤ ; e.g.
∃ r , ∀ r , = 1 r ...
Rôles complexes¶§
Syntaxe | Appellation | Sémantique |
---|---|---|
r⁻ | rôle inverse | { (x, y) | r(y, x) } |
r∘s | rôle composé | { (x, y) | ∃ z, r(x, z) ∧ s(z, y) } |
¬r | complément | { (x, y) | ¬r(x, y) } |
Raisonnement¶§
Rappels¶§
- Interprétation de F
- domaine du discours
- fonction d’interprétation
- Modèle
- axiomes → contraintes
- Implication
- F est satisfiable si elle a au moins un modèle
- F ⊧ G ssi tous les modèles de F sont des modèles de G
- ⇒ F ⊧ G ssi F ∧ ¬G est non satisfiable
Méthode des tableaux¶§
- Un tableau est un arbre, représentant une famille de modèles
- Application systématique de règles pour explorer tous les modèles possibles (non déterministe)
- Preuve par réfutation : concept non satisfiable
Enjeux¶§
- Décidable : dépend du type de LD choisie
- Correct/complet : ensemble de règles de transformation
- Complexe : optimiser l’ordre d’application des règles
- Problème des modèles infinis : exemple
- Entier ⊑ (= 1 suivant Entier) ⊓ (≤ 1 suivant⁻)
- {zero} ⊑ Entier ⊓ (= 0 suivant⁻)
Méta-modélisation¶§
- En théorie : séparation stricte entre les individus, les concepts et les rôles
- En pratique : pas d’ambiguïté syntaxique sur la nature d’un terme
- Punning (calembour) : autorisation d’utiliser le même terme pour des éléments de nature différente
- aucun lien sémantique entre eux
- mais intérêt pragmatique
- ⚠ pas très bien supporté par Protégé :-(
Annexe : Protég鶧
Syntaxe de Protég鶧
Protégé utilise une syntaxe alternative
- inspirée de la syntaxe Manchester
- n’utilisant que l’alphabet latin
- donnes des phrases en pseudo-anglais → lisibilité
Concepts complexes : constructeurs ensemblistes¶§
Protégé | LD |
---|---|
Thing | ⊤ |
Nothing | ⊥ |
C and D | C ⊓ D |
C or D | C ⊔ D |
not C | ¬C |
{a} | {a} |
Axiomes dans Protégé-OWL¶§
Protégé offre des axiomes « de haut niveau » qui visent à
- améliorer la lisibilité de la base de connaissance
- optimiser le raisonnement
- contraindre l’utilisation de certains constructeurs à certaines formes d’axiome selon les profils (e.g. Property Chain)
NB: ces axioms viennent en fait du langage OWL.
Sur les concepts¶§
Protégé | LD |
---|---|
Equivalent class(C,D) | C ⊑ D et D ⊑ C |
Super class(C,D) | C ⊑ D |
Member(C,a) | C(a) |
Disjoint class(C,D) | C ⊑ ¬D |