Le Monde sémantique logo

Le Monde Sémantique

Dialogue constructif

entre un mathématicien et un informaticien-ontologiste

Ontology Web Langage

Introduction au langage OWL
(Ontology Web Langage).



1. Deux amis entrent dans un bar, l'un est mathématicien et l'autre informaticien-ontologiste :


Ontologiste: De quoi veux-tu parler?

Mathématicien: N'importe quoi, ce qui nous passe par la tête.

Ontologiste: D'accord. Alors c'est toi qui choisis le sujet.

Mathématicien: [regarde de l'autre côté de la rue]


Ontologiste: Bien sûr, pourquoi pas? BNP Paribas est un sujet intéressant. Si nous voulions créer une ontologie informatique pour la banque, nous pourrions avoir besoin d'un concept d'entreprise étant une banque pour la différencier des autres types d'entreprises. Nous voudrions également généraliser un peu et inclure le concept d'organisation.

Mathématicien: Dans le Monde des ensembles mathématiques, c’est facile à faire;


Ontologiste: Dans mon univers sémantique, chaque élément de ce diagramme est lié à tous les autres éléments. Par exemple, BNP Paribas n'est pas seulement une banque, c'est aussi une organisation. Les relations avec «une chose» sont appliquées automatiquement par mon éditeur d'ontologie. Lorsque nous construisons une ontologie, nous entrons d'abord les relations comme ci-dessous (lis-le de bas en haut):


Il est alors recommandé d'utiliser le raisonneur de l'éditeur pour déduire d'autres relations à cette ontologie, le résultat obtenu est celui-ci:


Mathématicien: Dans mon diagramme j'ai écris "Banques" avec un "s" alors que toi tu l'as enlevé.

Ontologiste: Eh bien, j'ai changé tous les noms d'ensemble pour les rendre singuliers parce que c'est la convention pour les noms de classe. Désolé. Mais maintenant que tu le mentionnes… chaque fois que je crée une nouvelle classe, j'utilise un nom singulier comme tout le monde le fait, mais je vérifie également si le pluriel est le bon nom pour l'ensemble des éléments de la classe. Si le pluriel ne sonne pas comme un ensemble, je le repense.

Mathématicien: Je comprends. Dis-moi, cependant, est-ce qu'une "Classe" ressemble plus à un ensemble ou à un modèle?

Ontologiste: Certainement pas un modèle, contrairement à la programmation-orientée-objet. Plus comme un ensemble où l'adhésion peut changer avec le temps.

Mathématicien: D'accord. "s" ou pas "s", je pense que nous parlons principalement de la même chose. En fait, l'image de notre ontologie montrant les classes séparées au lieu d'être imbriquées me rappelle ce que mon collègue Mathématicien Georg Cantor a dit: «Un ensemble est un multiple qui se laisse penser comme un.»

Ontologiste: Oui. Tu peux considérer une classe comme un ensemble d'instances réelles d'un concept utilisé pour décrire un sujet tel que la banque. En règle générale, nous pouvons réutiliser des classes plus générales et il suffit de créer une sous-classe pour différencier ses membres des autres membres de la classe existante (comme la Banque est un type particulier d'Entreprise). Nous créons ou réutilisons une classe lorsque nous voulons lui donner un sens et un contexte en les reliant à d'autres choses.

Mathématicien: Comme ça?


Ontologiste: Exactement. Maintenant, nous en savons plus sur notre ami commun Jean, et nous en savons plus aussi sur son employeur: BNP Paribas. Nous appelons cela un "triplet" rdf.

Mathématicien: Un triplet. Que c'est intelligent.

Ontologiste: En fait, c'est ainsi que nous stockons toutes nos données "rdf" (pour Resource Description Framework) si justement appelées: "sémantiques" . Les triplets forment un graphe de connaissances.

Mathématicien: Oh, maintenant c'est intéressant… bonne idée. Simple et élégant. Je pense que j'aime ça. Bravo!

Ontologiste: Bien. Revenons maintenant à ce triplet avec Jean et BNP Paribas. Comment le généraliserais-tu dans le monde des ensembles?

Mathématicien: C'est relativement simple, j'y ajouterais le "domaine" en y associant un "intervalle".


Ontologiste: J'appelle "travaillePour" une propriété d'objet. Pour aujourd'hui seulement, je vais abréger cela en "Propriété". Mais. Attends attends. Tu as bien dis: un "domaine" et un "intervalle"?


Dans mon univers composé de triplets, je dois faire attention à ce que j'inclus dans le domaine et l'intervalle, car chaque fois que j'utilise la propriété (d'objet) "travaillePour", le raisonneur de l'éditeur d'ontologie conclura systématiquement que la chose à gauche est du dit-domaine et la chose à droite est dans le dit-intervalle .

L'informaticien-ontologiste continue: Imagine si je règle le domaine sur "Personne" et l'intervalle sur "Entreprise" , puis j'affirme que Ourasi le cheval "travaillePour" Tom son propriétaire. Le raisonneur me dira que Ourasi est une personne et Tom est une entreprise. C’est pourquoi le domaine et l'intervalle soulèvent toujours un grand signe ATTENTION pour moi. Je me demande toujours s'il y a quelque chose d'autre qui pourrait éventuellement être dans le domaine ou l'intervalle, surtout si la propriété est réutilisée par quelqu'un d'autre que moi. Je dois définir le domaine et l'intervalle assez largement pour des utilisations futures afin de ne pas finir par essayer de trouver le numéro de sécurité sociale d'un cheval.

Mathématicien: Dommage. Bonne chance avec ça.

Ontologiste: Oh, merci. Je suppose maintenant que tu pourrais considérer un ensemble de paires ordonnées avec des sous-ensembles et une instance reliée par une flèche à sa "Classe".

Mathématicien: Oui, à peu près. Si je voulais être plus précis, j'utiliserais la flèche pour montrer dans quel ordre les choses sont. Voilà par exemple le schéma d'ensemble pour notre concept:


Tu as remarqué qu'il existe maintenant deux relations différentes:


La paire (Jean, BNP Paribas) est dans les deux ensembles, donc dans deux mappages, n'est ce pas? Cela devrait faire sens pour toi?

Ontologiste: Oui, en effet cela a du sens. Dans l'univers des triplets, si je tenais à ces deux types de relations, je ferais de "estUnManagerChez" une sous-propriété de "travaillePour", et j'affirmerais que Jean est manager chez BNP Paribas. Mon raisonneur ajoutera alors la relation inférée que Jean travaille pour BNP Paribas.

Mathématicien: Bien sûr! Je pense que je saisi maintenant l'idée de base d'une ontologie informatique. Laisse-moi te montrer ce que je peux faire d'autre avec les ensembles. Je vais même ajouter ta terminologie.

Ontologiste: Oh, bien sûr. [l'informaticien-ontologiste pense silencieusement: "Je parie que tout est dans OWL, mais bon, les spécifications OWL n'ont pas d'images pour les ensembles."]

Mathématicien: [prend une profonde inspiration pour poursuivre encore et encore...] Commençons par deux ensembles:


L'intersection est un sous-ensemble de chaque ensemble, et chacun des ensembles est un sous-ensemble de l'union. Si nous voulons utiliser l'intersection en tant que classe, nous devrions pouvoir en déduire:


Et si nous voulons utiliser l'union comme une classe, alors chaque classe d'origine est une sous-classe de l'union:


Si deux classes A et B n'ont aucun membre en commun (disjoint), alors chaque sous-classe de A est disjointe de chaque sous-classe de B:


Un mappage où il y a au plus une flèche à partir de chaque point de départ est appelé "fonctionnel".


Un mappage où il y a au plus une flèche dans chaque point final est appelé "inverse-fonctionnel".


Vous obtenez l'inverse d'un mappage en inversant le sens de toutes les flèches qu'il contient. Comme son nom l'indique, si un mappage est fonctionnel inverse, cela signifie que son inverse est fonctionnel. Parfois, le mappage inverse finit par ressembler à l'original (appelé symétrique), et parfois il est «totalement différent» (disjoint ou asymétrique).


Parfois, un mappage est transitif, comme ton diagramme d'inférences avec "sousClasseDe", où une sous-classe d'une sous-classe est simplement une autre sous-classe. Je n'ai pas de diagramme d'ensemble simple pour cela, mais notre diagramme de classes est un moyen facile de le visualiser. Prenons deux sauts en utilisant la même relation et nous obtenons une autre instance de la relation:


Les ensembles peuvent être définis en combinant d'autres ensembles et mappages, tels que l'ensemble de toutes les personnes qui travaillent pour une banque (n'importe quelle banque).

Ontologiste: Pas mal. Voici ce que j'ajouterais:

Parfois, je définis un ensemble par une phrase comme tu l'as mentionné ("travaillePour une Banque"), et dans OWL, je peux relier cette phrase par n'importe quelle expression où alors un nom de classe qui ferait sens. Si je veux transformer l'ensemble en une classe nommée, je peux dire que la classe est équivalente à la phrase qui la définit.

Comme ça:
"EmployéDeBanque" est équivalent à "travaillePour une Banque".

Le raisonneur peut souvent utiliser l'expression pour déduire des choses dans la classe "EmployéDeBanque", ou utiliser l'appartenance à la classe pour déduire que les conditions de la phrase sont vraies. Beaucoup de sens peut être ajouté aux données de cette façon. Tout comme dans un dictionnaire, nous définissons les choses en termes d'autres choses.

Lorsque deux classes sont disjointes, cela signifie qu'elles ont des significations très distinctes et séparées. C’est une très bonne chose, surtout à des niveaux plus généraux. Lorsque nous enregistrons une disjonction dans l'ontologie, le raisonneur peut l'utiliser pour détecter des erreurs.

Chaque fois que je crée une propriété, je vérifie toujours si elle est fonctionnelle. Si c'est le cas, j'enregistre le fait qu'il s'agit d'une propriété fonctionnelle dans l'ontologie parce qu'elle en aiguise le sens.

Nous n'avons jamais vraiment parlé des propriétés des données. Peut-être la prochaine fois. Il s’agit d’attributs simples comme: "le compte est en Euros".

Souvent, une propriété de haut niveau peut être utilisée au lieu de créer une nouvelle sous-propriété. Chaque fois que j'envisage de créer une nouvelle sous-propriété, je me demande si mes triplets seront tout aussi significatifs si j'utilise la propriété d'origine. Souvent, la réponse est oui et je peux garder mon modèle simple en ne créant pas de nouvelle propriété.

Une ontologie est définie en termes d'ensembles de choses dans le monde réel, mais notre base de données n'a généralement pas un ensemble complet d'enregistrements pour tout ce qui est défini dans l'ontologie. Il ne faut donc pas essayer de trop en déduire des données présentes. Ce genre de logique est intégré aux raisonneurs.

D'un autre côté, les données peuvent inclure plusieurs instances pour la même chose, en particulier lorsque nous lions plusieurs ensembles de données ensemble. Nous pouvons utiliser la propriété "sameAs" (qui signifie "identiqueÀ") pour lier des enregistrements qui font référence à la même chose dans le Monde réel, ou même pour relier des graphiques créés indépendamment.

Cependant, même si nous comprenons maintenant parfaitement la théorie, il y a beaucoup de choix à faire lors de la création d'une ontologie. Si tu veux créer une ontologie pour une entreprise, je te conseille d'utiliser l'ontologie supérieure "BASE" qui tu feras gagner du temps.

Mathématicien: Je veux le dernier mot, parce que c'est moi qui ai choisi le sujet de la banque en rentrant dans ce bar.

Ontologiste: Je t'en prie.

Mathématicien:


Ontologiste: Je suis d’accord avec toi, néanmoins ce n’était pas un mot mais bel et bien un graphe si je ne m'abuse.

Mathématicien: Bon d'accord, alors je commence à voir ce que vous faites avec les ontologies. Et donc voici ce que j'en pense pour finir notre discussion: puisqu'une ontologie est basée sur une logique d'ensemble et des triplets, le langage d'ontologie OWL du web sémantique mérite certainement d'être mieux compris par un plus grand nombre de personnes afin d'être utilisé par les systèmes d'information des entreprises et par l'Industrie Française dans son ensemble...


2. Nos deux amis se retrouvent au coin d'une rue:


Ontologiste: Salut Mathématicien préféré!

Mathématicien: Oh salut je suis heureux de te revoir.

Ontologiste: Figure-toi que j'ai discuté avec Jean hier de notre dernier dialogue constructif. Il a partagé le même enthousiasme que toi pour les triplets et leurs bases de connaissances. D'ailleurs regarde ce qu'il m'a demandé de lui faire pour la banque.

secure model

Mathématicien: Waow, un accord sécurisé. Ça m'intéresse aussi.

Ontologiste: Tiens voilà le lien à suivre, le téléchargement est gratuit:

secure agreement

L'informaticien-ontologiste continue: je t'invite donc à l'ouvrir avec l'éditeur "Protégé" open source.

Mathématicien: Ok. Merci beaucoup. Tu es vraiment un informaticien hors-pair. À la prochaine.

Ontologiste: Avec plaisir. Bonne journée!