• Aucun résultat trouvé

Noyau commun aux modèles d’ontologies

Cette section présente une vue synthétique des modèles d’ontologies étudiés en mettant en évidence le noyau commun à ces différents modèles et les extensions propres à chacun.

Le tableau 1.1 liste les différents modèles d’ontologies que nous avons étudiés en indiquant les constructeurs qu’ils fournissent. Dans ce tableau, nous utilisons le symbole • pour indiquer qu’un

construc-teur est fourni par un modèle d’ontologies. Lorsqu’un construcconstruc-teur est partiellement supporté, nous uti-lisons le symbole ◦. C’est par exemple, le cas de l’héritage multiple qui n’est pas explicitement supporté en PLIB mais qui peut être représenté via l’opérateur case_of. Enfin, si le constructeur est absent et ne peut pas être représenté via d’autres constructeurs, le symbole - est utilisé. D’autres part, les deux traits verticaux permettent de séparer les différentes couches d’une ontologie (OCC, OCNC et OL).

Constructeurs RDF-Schema PLIB OWL F-Logic

OCC

Ontologie/namespace • • • ◦

Classe • • • •

Héritage multiple de classe • ◦ • •

Propriété • • • •

Propriété dépendante du contexte - • - ◦

Subsomption de propriété • - •

-Types de données

_primitifs • • • •

_classe • • • •

_collections • • • •

_unité mesure/monnaie - • -

-Instance

_identification universelle • - •

-_multi-instanciation • ◦ • •

_meta-modélisation • - Full •

OCNC

Opérateurs booléens sur les classes - - •

-Restrictions - - •

-Classes définies par règles - - - •

Propriétés définies par règles - - - •

OL

Description textuelle • • • ◦

Multilinguisme • • •

-Synonymie ◦ • ◦

-T. 1.1 – Synthèse des constructeurs offerts par les modèles d’ontologies

Ce tableau montre que même si les modèles d’ontologies ont été conçus par différentes communautés pour différents contextes d’utilisation, il existe un ensemble de constructeurs communs à ces modèles permettant de construire des OCC. Ce noyau commun est composé de constructeurs d’ontologies, de classes, de propriétés, de types de données et d’instances. Ces constructeurs sont décrits dans les sections suivantes.

3.4.1 Le constructeur d’ontologies

Le constructeur d’ontologies permet de regrouper la définition d’un ensemble de concepts qui sont des classes ou des propriétés. Une ontologie définit un domaine d’unicité des noms aussi appelé espace de nomspermettant d’identifier les concepts qu’elle définit de manière unique. Elle est souvent décrite par des informations sur le fournisseur de cette ontologie. Certains modèles d’ontologies tels que OWL et PLIB fournissent également des descripteurs permettant de gérer les versions des ontologies conçues et de les décomposer en modules.

3.4.2 Le constructeur de classes

Le constructeur de classes est un mécanisme d’abstraction permettant de regrouper un ensemble d’instances présentant des caractéristiques communes. Dans un univers particulier, une classe est asso-ciée à un ensemble d’instances appelé son extension. Une classe a une définition en intention qui décrit le concept sous-jacent. Cette définition est généralement composée des éléments suivants :

– un identifiant. Il permet de référencer cette classe. Cet identifiant est universel et unique. Il est parfois complété par un numéro de version afin de gérer l’évolution des concepts d’une ontologie ; – une description textuelle. Elle permet de rattacher une classe à une connaissance pré-existante de l’utilisateur. Une ontologie étant une conceptualisation acceptée par une vaste communauté d’utilisateurs, elles sont souvent utilisées dans un contexte international comme par exemple le Web. En conséquence, les définitions textuelles associées aux concepts qu’elle définit sont souvent définies dans plusieurs langues naturelles ;

– les classes qu’elle généralise et spécialise. Les classes sont organisées dans une hiérarchie où elles sont liées par une relation de subsomption. La plupart des modèles supportent l’héritage multiple ou permettent de le représenter.

Les éléments précédents permettent de rattacher une classe à un savoir préexistant partagé par le lecteur. Ils définissent également des conditions nécessaires d’appartenance d’une instance à une classe. Ils permettent ainsi de définir une classe primitive (concepts primitifs).

3.4.3 Le constructeur de propriétés

Le constructeur de propriétés permet de décrire les instances d’une classe. Les propriétés, comme les classes, possèdent toujours un identifiant et une partie textuelle éventuellement définie dans plusieurs langues naturelles. Chacune des propriétés doit être définie sur une classe des instances qu’elle décrit. Cette classe est le domaine de définition de la propriété. Dans certains formalismes, comme par exemple RDF-Schema, ce domaine peut être l’intersection de plusieurs classes. Il peut également être facultatif. Dans ce cas, le domaine de la propriété est constitué de l’ensemble des objets appartenant au domaine visé par l’ontologie. Notons que ceci peut être représenté en définissant cette classe implicite. Une pro-priété a également un codomaine qui permet de restreindre son domaine de valeurs. Enfin, les modèles d’ontologies permettent de faire la distinction entre les propriétés monovaluées, c’est-à-dire qui ne pré-sentent au maximum qu’une valeur pour une instance donnée, des propriétés multivaluées qui peuvent présenter plusieurs valeurs pour une même instance.

3.4.4 Le constructeur de types de données

Le constructeur de types de données permet de définir le codomaine des propriétés d’une ontologie. Les modèles d’ontologies permettent la définition de types simples, principalement les types entier, réel, chaîne de caractères, booléen et date. Une classe peut également être utilisée comme type de données. Dans ce cas, la valeur d’une telle propriété est l’identifiant d’une instance de la classe formant son codomaine. Enfin, les modèles d’ontologies permettent la définition de type collection dont les éléments sont soit d’un type simple, soit des identifiants d’instances de classes.

3.4.5 Le constructeur d’instances

Le constructeur d’instances permet de définir l’extension d’une classe dans un certain univers. A l’in-verse de ce qui se passe pour les classes, aucun modèle d’ontologies ne fait l’hypothèse d’existence d’un identifiant unique et universel pour les instances. En PLIB et F-Logic, les instances ne sont identifiées que localement, par rapport au système où elles sont définies. En RDF-Schema et OWL, l’identifiant est un URI, qui peut être utilisée pour référencer cette instance en dehors de ce système. Cependant, une ins-tance n’a pas forcément qu’un seul identifiant. Ainsi, un même objet du monde réel pourra être identifié différemment dans différents systèmes.

Une instance est définie en indiquant ses classes d’appartenance. Parmi ces classes, le modèle PLIB distingue une classe de base, c’est-à-dire la plus basse classe dans la hiérarchie de subsomption à laquelle une instance appartient. Les modèles d’ontologies permettent de définir plusieurs classes de base pour une instance. Deux mécanismes sont utilisés à ces fins : la multi-instanciation et l’agrégat d’instances. A la différence de la multi-instanciation qui n’impose aucune restriction par défaut9, l’agrégat requiert que les propriétés définies sur les classes de base d’une instance soient disjointes. Cette restriction permet de ne pas dupliquer la valeur d’une instance pour une propriété.

Une instance est également caractérisée par un ensemble de valeurs de propriétés. Dans les bases de données cette caractérisation est faite sous l’hypothèse de typage exact qui requiert que chaque ins-tance propose une valeur, qui peut être la valeur NULL, pour chaque propriété définie dans le modèle conceptuel. Dans une ontologie cette caractérisation est plus souple, elle respecte l’hypothèse que nous nommons hypothèse de typage ontologique qui permet à une instance de n’être caractérisée que par un sous-ensemble des propriétés définies sur ses classes de base.