Logique de description 854079 28422191 2008-04-07T13:52:30Z Jmalki 382022 /* Définition des logiques de description */ Les '''logiques de description''' aussi appelé '''logiques descriptives''' (LDs) sont une famille de language de représentation de connaissance qui peuvent être utilisés pour représenter la connaissance terminologique d'un domaine d'application d'un manière formelle et structurée. Le nom de logique de description se rapporte, d'une part à la description de [[concept]]s utilisée pour décrire un domaine et d'autre part à la [[sémantique]] basée sur la logique qui peut être donnée par une transcription en logique des prédicats du premier ordre. La logique de description a été développée comme une extension des frames et des [[réseau sémantique|réseaux sémantique]], qui ne possédaient pas de sémantique formelle basée sur la logique. ==Origines et applications des logiques de description== Les logiques de description ont été conçues à partir des réseaux sémantiques de Quillian ([[#Références|ref]]) qui sont des graphes orientés étiquetés auxquels on associe des concepts aux nœuds et des relations aux arcs, et de la sémantique des cadres de Minsky ([[#Références|ref]]) où l'on a des concepts représentés par des cadres qui sont caractérisés par un certain nombre d'attributs (appelés aussi slots) qui contiennent de l'information sur leur contenu. Les logiques de description forment une famille de langages de représentation de connaissance qui peuvent être utilisées pour représenter la connaissance terminologique d'un domaine d'application d'une façon structurée et formelle. Le nom « logique de description » peut être interprété de deux manières. D'une part ces langages ont été élaborés pour écrire la « description » des concepts pertinents d'un domaine d'application. D'une autre part, une caractéristique cruciale de ces langages est qu'ils ont une sémantique formelle définie en logique du premier ordre (à la différence des propositions précédentes comme les cadres de Minsky). Dans ce sens, nous pouvons dire que les LDs ont une sémantique « descriptive » formelle. Les logiques de description sont utilisées pour de nombreuses applications (voir [http://dl.kr.org/dl2005/ International Workshop on Description Logics] et [http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-115/ Workshop on Applications of Description Logics]). Sans être exhaustif, nous pouvons dire que ces applications font partie des domaines suivants : * le [[web sémantique]] (e.g., représentation d'[[Ontologie (informatique)|ontologie]]s, et recherche d'information basée sur la logique) * médecine/bio-informatique (e.g., représenter et gérer des ontologies biomédicales) * [[traitement automatique des langues]] et représentation de la connaissance * Ingénierie de processus (e.g., représenter des descriptions de service) * [[Ingénierie de la connaissance]] (e.g., représenter des ontologies) * [[Ingénierie logicielle]] (e.g., représenter la sémantique des diagrammes de classe [[UML]]) ==Définition des logiques de description== La plupart des logiques de description divisent la connaissance en deux parties : * ''les informations terminologiques'': définition des notions basiques ou dérivées et de comment elles sont reliées entre elles. Ces informations sont "génériques" ou "globales", vraies dans tous les modèles et pour tous les individus. * ''les informations sur les assertions'': ces informations sont "spécifiques" ou "locales", vraies pour certains individus particuliers. Toutes les informations connues sont alors modélisées comme un couple <math>\langle T,A \rangle</math>, où <math>T</math> est un ensemble de formules relatives aux informations terminologiques (la T-Box) et <math>A</math> est un ensemble de formules relatives aux informations sur les assertions (la A-Box). Une autre manière de voir la séparation entre ces informations, est d'associer la T-Box aux règles qui régissent notre monde (e.g., la physique, la chimie, la biologie, ...), et d'associer les individus de notre monde à la A-Box (e.g., Jean, Marie, un chat, ...). ===La sémantique=== Les logiques de description utilisent les notions de ''concept'', de ''rôle'' et d'''individu''. Les concepts correspondent à des "classes d'éléments" et sont interprétés comme un ensemble dans un univers donné. Les rôles correspondent aux "liens entres les éléments" et sont interprétés comme des relations binaires sur un univers donné. Les individus correspondent aux éléments d'un univers donné. La sémantique des logiques de description est définie comme suit : '''Définition 1 :''' : Soit <math>CON = \lbrace C1,C2,\dots \rbrace</math> un ensemble fini de concepts atomiques, <math>ROL = \lbrace R1,R2,\dots \rbrace</math> un ensemble fini de rôles atomiques et <math>IND = \lbrace a1,a2,\dots \rbrace</math> un ensemble fini d'individus. Pour <math>CON</math>, <math>ROL</math>, <math>IND</math> disjoint deux à deux, <math>\mathcal{S} = \langle CON,ROL,IND \rangle</math> est une ''signature''. Une fois qu'une signature <math>\mathcal{S}</math> est fixée, une ''interprétation'' <math>\mathcal{I}</math> pour <math>\mathcal{S}</math> est un tuple <math>\mathcal{I} = \langle \Delta^\mathcal{I},\cdot^\mathcal{I} \rangle</math>, où : :* <math>\Delta^\mathcal{I}</math> est un ensemble non-vide. :* <math>\cdot^\mathcal{I}</math> est une fonction assignant : :** un élément <math>a_i^\mathcal{I} \in \Delta^\mathcal{I}</math> à chaque individu <math>a_i \in IND</math>; :** un sous-ensemble <math>C_i^\mathcal{I} \subseteq \Delta^\mathcal{I} </math> à chaque concept atomique <math>C_i \in CON</math>; :** et une relation <math>R_i^\mathcal{I} \subseteq \Delta^\mathcal{I} \times \Delta^\mathcal{I}</math> à chaque rôle atomique <math>R_i \in ROL</math>. En d'autres mots, une interprétation de la logique de description n'est rien de plus qu'un modèle pour un type particulier de signature du première ordre, où seulement les prédicats unaires et binaires sont autorisés et l'ensemble des symboles de fonctions est vide. ===La base de connaissance=== Typiquement, la base de connaissance standard utilisée par les logiques de description est définie de la manière suivante : '''Définition 2 :''' :Étant donné un langage de description <math>\mathcal{L}</math> et une signature <math>\mathcal{S}</math>, une base de connaissance <math>\Sigma</math> dans <math>\mathcal{L}</math> est une paire <math>\Sigma = \langle T,A \rangle</math> tel que : :* <math>T</math> est la T(erminologique)-Box, un ensemble fini, qui peut être vide, d'expressions appelées GCI (General Concept Inclusion) de la forme <math>C_1 \sqsubseteq C_2</math> où <math>C_1</math> et <math>C_2</math> sont des concepts sans restriction. <math>C_1 \dot{=} C_2</math> est une notation pour <math>C_1 \sqsubseteq C_2</math> et <math>C_2 \sqsubseteq C_1</math>. Les formules de <math>T</math> sont appelées des axiomes terminologiques. :* <math>A</math> est la A(ssertion)-Box, un ensemble fini, qui peut être vide, d'expressions de la forme <math>a : C</math> ou <math>(a,b) : R</math> où <math>C</math> est un concept sans restriction, <math>R</math> un rôle qui n'est pas forcément atomique et <math>a</math>,<math>b</math> appartiennent à <math>IND</math>. Les formules de <math>A</math> sont appelées des assertions. Les axiomes terminologiques ont été pensés à l'origine comme une définition, et nombre de conditions plus restrictives ont étés imposées. Les deux restrictions les plus importantes sont les suivantes : * ''axiome terminological simple'' : dans tous les axiomes terminologiques <math>C_1 \sqsubseteq C_2</math>, <math>C_1</math> est un concept atomique dans <math>CON</math>, et chaque concept atomique dans <math>CON</math> apparaît au plus une fois dans la partie gauche d'un axiome terminologique de la T-Box. * ''définition acyclique'' : le graphe obtenu en assignat un nœud <math>n_A</math> à chaque concept atomique <math>A</math> de la T-Box, et un arc orienté entre deux nœuds <math>n_A</math> et <math>n_B</math> s'il existe un axiome terminologique <math>C_1 \sqsubseteq C_2</math> dans <math>T</math> tel que <math>A</math> apparaît dans <math>C_1</math> et <math>B</math> dans <math>C_2</math>, ne contienne pas de cycles. Ces restrictions sont liées à l'idée de considérer les axiomes terminologiques comme des définitions de concepts. ===Les différentes logiques de description=== Les logiques de descriptions ont une base commune enrichie de différentes extensions (voir tableau ci-dessous). On peut dès lors avoir des concepts complexes composés de concepts atomiques, et de même pour les rôles. {| class="wikitable" ! Lettre !! Constructeur !! Syntaxe !! Sémantique |- | <math>\mathcal{AL}</math> || nom de concept || <math>C</math> || <math>C^\mathcal{I}</math> |-{{ligne grise}} | <math>\mathcal{AL}</math> || top || <math>\top</math> || <math>\Delta^\mathcal{I}</math> |- | <math>\mathcal{C}</math> || négation de concepts non nécessairement primitifs || <math>\neg C</math> || <math>\Delta^\mathcal{I} \setminus C^\mathcal{I}</math> |-{{ligne grise}} | <math>\mathcal{AL}</math> || conjonction || <math>C_1 \sqcap C_2</math> || <math>C_1^\mathcal{I} \cap C_2^\mathcal{I}</math> |- | <math>\mathcal{U}</math> || disjonction || <math>C_1 \sqcup C_2</math> || <math>C_1^\mathcal{I} \cup C_2^\mathcal{I}</math> |-{{ligne grise}} | <math>\mathcal{AL}</math> || quantificateur universel || <math>\forall R.C</math> || <math>\lbrace d_1\in\Delta^\mathcal{I} \mid \forall d_2 \in \Delta^\mathcal{I}.(R^\mathcal{I}(d_1,d_2) \rightarrow d_2 \in C^\mathcal{I}) \rbrace</math> |- | <math>\mathcal{E}</math> || quantificateur existentiel typé || <math>\exists R.C</math> || <math>\lbrace d_1\in\Delta^\mathcal{I} \mid \exists d_2 \in \Delta^\mathcal{I}.(R^\mathcal{I}(d_1,d_2) \wedge d_2 \in C^\mathcal{I}) \rbrace</math> |-{{ligne grise}} | <math>\mathcal{N}</math> || restriction de nombre || <math>(\geq n~R)</math> <br /> <math>(\leq n~R)</math> || <math>\lbrace d_1\in\Delta^\mathcal{I} \mid \lbrace d_2 \vert R^\mathcal{I}(d_1,d_2) \rbrace \vert \geq n \rbrace</math> <br /> <math>\lbrace d_1\in\Delta^\mathcal{I} \mid \lbrace d_2 \vert R^\mathcal{I}(d_1,d_2) \rbrace \vert \leq n \rbrace</math> |- | <math>\mathcal{Q}</math> || restriction de nombre qualifiée || <math>(\geq n~R.C)</math> <br /> <math>(\leq n~R.C)</math>|| <math>\lbrace d_1\in\Delta^\mathcal{I} \mid \lbrace d_2 \vert R^\mathcal{I}(d_1,d_2),d_2 \in C^\mathcal{I} \rbrace \vert \geq n \rbrace</math> <br /> <math>\lbrace d_1\in\Delta^\mathcal{I} \mid \lbrace d_2 \vert R^\mathcal{I}(d_1,d_2),d_2 \in C^\mathcal{I} \rbrace \vert \leq n \rbrace</math> |-{{ligne grise}} | <math>\mathcal{O}</math> || un-de || <math>\lbrace a_1,\dots,a_n \rbrace</math> || <math>\lbrace d \in\Delta^\mathcal{I}\mid d = a_i^\mathcal{I} \texttt{~pour~un~} a_i \rbrace</math> |- | <math>\mathcal{B}</math> || role filler || <math>\exists R.\lbrace a \rbrace</math> || <math>\lbrace d \in\Delta^\mathcal{I}\mid R^\mathcal{I}(d,a^\mathcal{I}) \rbrace</math> |-{{ligne grise}} | <math>\mathcal{AL}</math> || nom de rôle || <math>R</math> || <math>R^\mathcal{I}</math> |- | <math>\mathcal{R}</math> || conjonction de rôles || <math>R_1 \sqcap R_2</math> || <math>R_1^\mathcal{I} \cap R_2^\mathcal{I}</math> |-{{ligne grise}} | <math>\mathcal{I}</math> || rôles inverses || <math>R^{-1}</math> || <math>\lbrace (d_1,d_2)\in\Delta^\mathcal{I}\times\Delta^\mathcal{I} \mid R^\mathcal{I}(d_2,d_1) \rbrace</math> |- | <math>\mathcal{H}</math> || hiérarchie des rôles || <math>R_1\sqsubseteq R_2</math> || <math>R_1^\mathcal{I} \subseteq R_2^\mathcal{I}</math> |-{{ligne grise}} | <math>\mathcal{R^+}</math> || transitivité des rôles || <math>R^+</math> || Plus petite relation transitive contenant <math>R^\mathcal{I}</math> |} L'une des premières logiques de description est le langage <math>\mathcal{FL^-}</math> [Brachman and Levesque, 1984], qui est défini comme une logique de description permettant l'utilisation des quantificateurs universels, de la conjonction, et des quantificateurs existentiels de la forme <math>\exists R.\top</math>. Le langage <math>\mathcal{FL^-}</math> a été proposé comme un formalisme pour la sémantique des cadres de Minsky. La conjonction de concepts est implicite dans la structure d'un cadre, qui requiert un ensemble de conditions pour être satisfait. La quantification des rôles permet de caractériser les slots. La logique <math>\mathcal{AL}</math> [Schmidt-Schauss and smolka, 1991], a étendu la logique <math>\mathcal{FL^-}</math> en y ajoutant la négation des concepts atomiques. Cette logique peut-être considérée comme la logique de base des autres logiques de descriptions. Les logiques de description qui existent sont des combinaisons des différents éléments du tableau ci-dessus. Par exemple, si on rajoute la négation complète <math>\mathcal{C}</math> à la logique <math>\mathcal{AL}</math>, on obtient la logique <math>\mathcal{ALC}</math>. Certaines logiques sont équivalentes, notamment <math>\mathcal{ALC}</math> et <math>\mathcal{ALUE}</math>. Ces deux logiques augmentées par <math>\mathcal{R}^+</math>sont notées <math>\mathcal{S}</math>. Les langages utilisés par [[Web Ontology Language|OWL ]] en sont une extension, respectivement <math>\mathcal{SHIF}</math> pour OWL-Lite et <math>\mathcal{SHOIQ}</math> pour OWL-DL. ===Inférences=== En LD, la notion d'inférence est décrite comme ci-dessous: '''Définition 3 :''' :Soit <math>\mathcal{I}</math> une interprétation et <math>\varphi</math> un axiome terminologique ou une assertion. Alors <math>\mathcal{I}</math> modélise <math>\varphi</math> (notation <math>\mathcal{I} \models \varphi</math>) si : :* <math>\varphi = C_1 \sqsubseteq C_2</math> et <math>C_1^\mathcal{I} \subseteq C_2^\mathcal{I}</math>, ou :* <math>\varphi = a:C</math> et <math>a^\mathcal{I} \in C^\mathcal{I}</math>, ou :* <math>\varphi = (a,b):R</math> et <math>(a^\mathcal{I},b^\mathcal{I}) \in R^\mathcal{I}</math>. Soit <math>\Sigma = \langle T,A \rangle</math> une base de connaissance et <math>\mathcal{I}</math> une interprétation, alors <math>\mathcal{I}</math> est un modèle de <math>\Sigma</math> (notation, <math>\mathcal{I} \models \Sigma</math>) si pour tous <math>\varphi \in T \cup A, \mathcal{I} \models \varphi</math>. Nous disons dans ce cas que <math>\mathcal{I}</math> est un modèle de la base de connaissance <math>\Sigma</math>. Étant donné une base de connaissance <math>\Sigma</math> et un axiome terminologique ou une assertion <math>\varphi</math>, <math>\Sigma \models \varphi</math> si pour tout modèle <math>\mathcal{I}</math> de <math>\Sigma</math> nous avons <math>\mathcal{I} \models \varphi</math>. ==Les tâches de raisonnement== En LD, l'expression ''raisonnement sur la T-Box'' fait référence à la capacité de réaliser des inférences depuis une base de connaissance <math>\Sigma = \langle T,A \rangle</math> où <math>T</math> est non-vide, et similairement, ''raisonnement sur la A-Box'' est l'implication pour une A-Box non vide. '''Définition 4 :''' :Soit <math>\Sigma</math> une base de connaissances, <math>C_1,C_2 \in CON, R \in ROL</math> et <math>a,b \in IND</math>, nous définissons les tâches de déduction suivantes : :* ''Subsomption'', <math>\Sigma \models C_1 \sqsubseteq C_2</math> <br /> Vérifie si pour toutes les interprétations <math>\mathcal{I}</math> tel que <math>\mathcal{I} \models \Sigma</math>, nous avons <math>C_1^\mathcal{I} \subseteq C_2^\mathcal{I}</math>. :* ''Vérification d'instance'', <math>\Sigma \models a:C</math> <br /> Vérifie si pour toutes les interprétations <math>\mathcal{I}</math> tel que <math>\mathcal{I} \models \Sigma</math>, nous avons <math>a^\mathcal{I} \in C^\mathcal{I}</math>. :* ''Vérification de relations'' <math>\Sigma \models (a,b):R</math> <br /> Vérifie si pour toutes les interprétations <math>\mathcal{I}</math> tel que <math>\mathcal{I} \models \Sigma</math>, nous avons <math>(a^\mathcal{I},b^\mathcal{I}) \in R^\mathcal{I}</math>. :* ''Cohérence de concept'', <math>\Sigma \not \models C \dot{=} \bot</math> <br /> Vérifie si pour toutes les interprétations <math>\mathcal{I}</math> tel que <math>\mathcal{I} \models \Sigma</math>, nous avons <math>C^\mathcal{I} \not = \lbrace \rbrace</math>. :* ''Cohérence de la base de connaissances'', <math>\Sigma \not \models \bot</math> <br /> Vérifie s'il existe <math>\mathcal{I}</math> tel que, <math>\mathcal{I} \models \Sigma</math>. Les tâches de déduction de base, peuvent être utilisées pour définir des tâches plus complexes. En particuler: * ''Recherche'' : étant donné un concept, trouver les individus mentionnés dans la base de connaissance qui sont des instances de ce concept. * ''Réalisation'' : étant donné un individu mentionné dans la base de connaissance, trouver le concept le plus spécifique, en accord avec les relations de subsomption, duquel l'individu est une instance. La saturation de la A-Box sert à compléter les informations de la A-Box en accord avec les connaissances de la T-Box, on obtient donc: '''Définition 5 :''' :Étant donné une base de connaissance <math>\langle T,A \rangle</math>, nous disons que <math>A</math> est saturé si pour chaque individu <math>a \in IND</math>, concept atomique <math>C \in CON</math> et rôle <math>R \in REL</math>: :* l'assertion <math>a:C</math> si et seulement si <math>\langle T,A \rangle \models a:C</math> :* l'assertion <math>(a,b):R</math> si et seulement si <math>\langle T,A \rangle \models (a,b):R</math> '''Exemple''' :Soit <math>\Sigma</math> une base de connaissance <math>\langle T,A \rangle</math> où: :* <math>T = \lbrace \texttt{ETALON} \dot{=} \texttt{CHEVAL} \sqcap \forall \texttt{Sexe.MASCULIN} \rbrace</math> :* <math>A = \lbrace \texttt{shadowfax}:\texttt{ETALON} \rbrace</math> La formule de <math>T</math> dit que les chevaux de sexe masculin sont des étalons, et la formule de <math>A</math> dit que le cheval ''shadowfax'' est un étalon. La sémantique formelle que nous donnons dans la définition 3 nous permet de vérifier que <math>\Sigma</math> a au moins un modèle (i.e., il est cohérent). Et à partir de <math>\Sigma</math> nous pouvons déduire plusieurs informations comme, par exemple, que le concept <math>\texttt{CHEVAL}</math> est cohérent avec <math>\Sigma</math> (il existe une certaine interprétation satisfaisant <math>\Sigma</math> qui assigne une extension non-vide à <math>\texttt{CHEVAL}</math> : <center><math>\Sigma \not \models \texttt{CHEVAL} \dot{=} \bot</math></center> Notons qu'à cause des limitations syntaxiques dans la définition de base des assertions, il n'est pas possible de représenter les implications fortes (qui proviennent de <math>\langle T,A \rangle</math>) telle que par exemple le fait que dans tous les modèles de <math>\langle T,A \rangle</math>, l'extension de <math>\texttt{CHEVAL}</math> est non-vide: <center><math>\Sigma \models \neg (\texttt{CHEVAL} \dot{=} \bot</math>)</center> Avec <math>\Sigma = \langle T,A \rangle</math> comme connaissance de base on a la A-Box saturé : <center><math>A = \lbrace \texttt{shadowfax}:\texttt{ETALON} \sqcap \texttt{CHEVAL}\rbrace</math></center> == Références == * F. Baader, D. Calvanese, D. L. McGuiness, D. Nardi, P. F. Patel-Schneider: ''The Description Logic Handbook: Theory, Implementation, Applications''. Cambridge University Press, Cambridge, UK, 2003. ISBN 0-521-78176-0 * M.L. Minsky. ''A Framework for Representing Knowledge. Report'' A.I MEMO 306, Massachusetts Institute of Technology, A.I. Lab., Cambridge, Massachusetts, juin 1974. McGraw-Hil, P.H. Winston (Ed.), "Psychology of Computer Vision", 1975. == Voir aussi == * [[Web sémantique]] * [[Ontologie (informatique)]] * [[Web Ontology Language]] * [[Logique modale]] == Liens externes == * [http://dl.kr.org/ DESCRIPTION LOGICS] maintenu par Carsten Lutz * [http://www.inf.unibz.it/~franconi/dl/course/ 'Introduction to Description Logics DL course] par Enrico Franconi, Faculty of Computer Science, Free University of Bozen-Bolzano, Italy * [http://www.cs.man.ac.uk/~ezolin/dl/ Navigator on Description Logic Complexity] * [http://www.philippe-fournier-viger.com/description_logics/introduction_logiques_de_description.html Une introduction aux logiques de description] (français) [[Catégorie:Logique]] [[Catégorie:Informatique théorique]] [[da:Beskrivelseslogik]] [[de:Beschreibungslogik]] [[en:Description logic]] [[es:Lógica de descripción]] [[fa:منطق‌های توصیف]] [[it:Logica descrittiva]] [[vi:Logic mô tả]] [[zh:描述逻辑]]