Ontologie ! Ontologie ! Est-ce que j’ai une gueule d’ontologie ?

Le mot qui fait buter

Les modèles utilisés par Semsimo, sont des modèles ontologiques formalisant une conceptualisation de la gouvernance des SI. Ils servent à assurer l’organisation des connaissances, en considérant les activités et l’existant d’une entreprise dans son ensemble, pour permettre d’optimiser au mieux, dans les choix d’évolutions du SI, l’équilibre entre les risques, la consommation des ressources, la création de valeur et l’alignement stratégique. Ils soutiennent donc une aide à la décision multicritère, entre autres pour la gestion des portefeuilles programmes et projets dans une organisation (PPPM). Je pourrais me contenter de dire cela, mais l’approche par ontologies suppose : d’une part, un engagement des parties prenantes dans la modélisation de cette gouvernance du SI, d’autre part, la compréhension du raisonnement utilisé dans cette approche d’aide à la décision multicritère.

Du coup, voilà, j’utilise un terme mal compris, ou décrié : ontologie. Qui plus est, formelle.

Un problème d’incompréhension

Hokusai – Le Fantôme d’Oiwa-san (la lanterne) – Photo de Jean-Pierre Dalbéra – licence cc by 2.0

Il y des cas où mes interlocuteurs croient que je souhaite engager une discussion philosophique sur le sens métaphysique d’un système d’information ; ou ceux où ils m’imaginent, avec effroi, capable de ratiociner pendant des heures sur la sémantique d’un mot pour créer un référentiel d’architecture d’entreprise absolument impossible à maintenir.

Ces premiers cas d’incompréhension sont relativement faciles à résoudre en expliquant, le plus clairement possible, ontologie formelle et ingénierie des connaissances. Explications auxquelles il faut rajouter une couche sur l’évolution qu’ont permis les standards du Web sémantique, tels que RDF, OWL et SPARQL pour alléger une démarche plutôt lourde et montrer la flexibilité des graphes de connaissance obtenus. Les cas secondaires, plus complexes, sont liés à des biais cognitifs où mes interlocuteurs appliquent leurs connaissances existantes. Par exemple, en interprétant le langage de formalisation d’ontologie, OWL, à travers le prisme du langage de modélisation Unifié, UML. Mais « penser ontologie » ce n’est pas « penser objet avec UML ».

Un domaine dont on ignore l’évolution

Enfin, il y a ceux qui évoquent tout de suite les systèmes experts. Je préfère à cette expression celle de « systèmes d’inférence à base de connaissances formalisées (ou SR&R : symbolic representation and Reasoning)». Ce qui n’arrange guère, en passant, la clarté de ma communication. Restent que pour ces cas là aussi, il m’arrive souvent de devoir préciser certaines choses. Entre autres, pourquoi le Machine Learning aussi a des limites de compréhension. Quand et en quoi la déduction peut apporter plus que la corrélation. Mais aussi que les approches ne sont en rien exclusives.

Sans compter toutes les évolutions en termes de puissance machine, d’avancées en termes de traitement des incohérences omniprésentes pour relier des ontologies, d’intégration de sources hétérogènes dans le cadre du Big Data, qui restent ignorées de beaucoup et qui ont quand même renouvelé pas mal le domaine des bases de connaissances formalisées.

Au commencement il y a … d’autres mots à comprendre derrière le mot ontologie

Dès lors, j’ai pensé qu’il pouvait y avoir un intérêt à une série d’articles pour dépoussiérer et démystifier le domaine. Au sens de le montrer tel qu’il est, c’est-à-dire une branche de l’Intelligence Artificielle. Laquelle, moins médiatisée que le Machine Learning, mérite autant d’être démystifiée, au vu des possibilités réelles.

A concept map created using protégé ontology editorJe vais donc commencer par le commencement. C’est-à-dire expliquer la notion d’ontologie formelle et en quoi elle aide à la déduction, et dès lors, à la décision.

Une ontologie en informatique est une modélisation d’un domaine de connaissance, avec quelques particularités. Dont la nécessité de comprendre la définition même d’ontologie informatique, pour pouvoir en construire des utiles. Certaines définitions très condensées méritent d’être expliquées, dont celle de Gruber « une spécification explicite d’une conceptualisation» (1993), ou celle de Borst «une spécification formelle d’une conceptualisation partagée» (1997).

Conceptualisation. Spécification. Explicite. Partagée. Formelle. Les cinq mots ont leur importance. Une ontologie cherche à capturer la connaissance d’un domaine, à travers un ensemble de concepts communicables. L’effort de conceptualisation doit aboutir à une définition explicite, précise, des concepts, en spécifiant ce qui les caractérise de façon spécifique (axiomes, relations logiques avec d’autres).

Cette spécification doit faire référence dans un domaine de connaissances. Elle doit être acceptée et partagé par une communauté qui peut juger de la validité de cette représentation des expertises. D’où la nécessité d’une méthode de réalisation favorisant ce consensus. En effet, le développement d’ontologies est bien souvent un travail coopératif qui implique plusieurs personnes.

Faire raisonner les machines

Le raisonnement machine ? (artificial intelligence 6eo tech – licence cc-by 2.0)

Enfin, la spécification doit être formelle, c’est-à-dire exploitable par un système informatique. Il ne s’agit pas seulement de définir des concepts pour que chacun soit d’accord sur les termes employés. Il s’agit de fournir un moyen à des agents logiciels pour comprendre, de façon autonome, ce qu’impliquent des informations grâce à la spécification des concepts auxquels elles sont liées.

Cette dernière notion est d’importance, car l’intérêt dès lors des ontologies n’est pas seulement de représenter les connaissances. Mais aussi de permettre à un programme informatique l’interprétation des relations entre les concepts de l’ontologie de manière à créer de nouvelles relations valides. C’est-à-dire raisonner sur des données. Par exemple, si John est le frère du père ou de la mère de Tim, déduire que John est son oncle. Sous réserve d’avoir défini explicitement le concept d’oncle dans une ontologie « famille ».
C’est une inférence. Une opération logique qui consiste à admettre une proposition en raison de son lien avec une ou des proposition(s) préalable(s) tenue(s) pour vraie(s).

Un raisonneur est un programme informatique capable de comprendre les ontologies et de réaliser les inférences. Les raisonneurs sont utilisés aussi pour contrôler la cohérence des ontologies, vérifier si certaines classes sont insatisfaisables (une classe insatisfaisable entraîne des faits contradictoires et une incohérence, ex une instance à la fois père et mère biologique pour un humain) et gérer la hiérarchie des classes et des relations. Avec un raisonneur on peut établir des classifications automatiques, fournir toutes les sous-classes d’une classe donnée, ou déduire des caractéristiques d’une instance qu’elle appartient logiquement à une classe.

Un programme raisonneur, est-ce raisonnable ?

Ce sont les propriétés concernant les concepts représentés et les relations entre ces concepts qui permettent aux raisonneurs tels que HermiT FaCT++, Pellet, d’inférer de nouvelles connaissances. Grâce aux règles entre les termes, groupes de termes et relations : équivalence, symétrie, contraire, cardinalité, transitivité… Si l’ontologie permet de représenter formellement les connaissances, c’est véritablement le raisonneur qui est capable d’en tirer le maximum. Il existe une multitude de raisonneurs qui ont chacun leurs propres spécificités notamment en termes de compatibilité, d’expressivité et de performance (voir cette liste tenue par l’université de Manchester datant de Juin 2018).

Keyboard with deduction key

Deduction – Photo by CreditDebitPro licence cc-by-2.0

Le choix d’un raisonneur doit se faire de manière réfléchie selon les fonctionnalités attendues. Les raisonneurs existants peuvent générer un modèle très grand par rapport à la taille de l’ontologie à vérifier. En effet, on ajoute de nouvelles relations valides avec les inférences.

Tout cela nous sert à créer des systèmes d’aide à la décision reposant sur des bases de connaissances (contenant ontologies et instances sous forme de données et métadonnées), et un moteur d’inférence qui est capable d’analyser les données et de les confronter aux connaissances afin d’aboutir à des conclusions. Ce principe de déduction est à la base de l’aide à la décision. Les champs d’applications sont multiples (hiérarchisation des alertes en télécardiologie, problématiques industrielles de diagnostic, etc.).

De la théorie à la pratique, il y a encore des choses à dire

Le Web sémantique a ajouté une nouvelle dimension à ce domaine, dont l’approche n’est pas si nouvelle. Avec de nouvelles problématiques, à l’échelle du Web, mais aussi beaucoup de progression en matière de solutions et de perspectives. OWL (Ontology Web Language) est le langage informatique standard du Web sémantique pour la représentation des ontologies en langage formel. En effet, pour écrire une ontologie interprétable sans ambiguïté et utilisable par des agents logiciels, nous avons besoin d’une syntaxe et d’une sémantique formelle. Grâce à OWL, en théorie, le Web sémantique apporte une promesse de meilleure intégration de ressources, évolutive et agile. Cela, au sein d’une chaîne logistique d’une entreprise « virtuelle » distribuée, composée de multiples entreprises réelles en réseau.

«En théorie, il n’y a pas de différence entre théorie et pratique. En pratique, il y en a ». On verra dans d’autres articles l’explication de cette citation appliquée à des problèmes réels. Mais on montrera aussi que la pratique de l’ingénierie ontologique a bien évoluée pour concrétiser la vision théorique.
En attendant, le prochain article traitera des différences entre la démarche de modélisation ontologique et UML.

Tags

One comment

  • […] Les ontologies informatiques lient par leur approche de représentation formelle, connaissances et raisonnement. Elles servent à rendre les machines capables de déduction sur des bases de connaissances. Grâce à des programmes appelés raisonneurs. Sous réserve d’avoir spécifié un domaine de connaissance en langage formel. Ce qui a été défini dans l’article : Ontologie! Ontologie! Est-ce que j’ai une gueule d’ontologie? […]

Laisser un commentaire

Your email address will not be published.

top