• Aucun résultat trouvé

Nous présentons dans cette section quelques uns des formalismes usuels de descriptions d’on-tologies. Dans la première partie de cette section, nous discutons les différents composants utilisés pour modéliser une ontologie en mettant en évidence ce qui est commun et ce qui est différent. Nous discutons ensuite dans une deuxième partie des extensions proposées au noyau commun par les modèles d’ontologies qui visent à faciliter le partage et l’échange d’information en définissant des caractérisations communes. La troisième partie présente les extensions proposées dans les modèles d’ontologies plus orientés vers l’inférence. Enfin dans la quatrième partie, nous faisons une synthèse des caractéristiques des deux familles d’ontologies décrites dans les deux parties précédentes.

2.1 Principaux composants

Les modèles d’ontologies sont basées sur cinq sortes de composants principaux [55] : 1. les classes,

2. les propriétés, 3. les types de valeurs, 4. les axiomes,

5. les instances. 2.1.1 Les classes

Une classe est la description abstraite d’un ou plusieurs objets semblables. Une classe cor-respond à ce qui a une existence propre, matérielle ou immatérielle, dans le domaine étudié du monde réel. Les classes sont toujours organisées en taxonomie (i.e., sous forme graphe acyclique) à l’aide de relations de subsomption. Une classe possède toujours un identifiant. Sa définition

2. Les langages de définitions des ontologies comporte toujours une partie textuelle, qui permet de la rattacher à une connaissance préexis-tante de l’utilisateur, et une partie formelle constituée de relations avec d’autres composants de l’ontologie.

Selon le langage d’ontologie, des équivalences conceptuelles peuvent en plus être introduites en définissant des classes comme étant équivalentes à des expressions construites à partir d’autres classes. Ces expressions utilisent différents constructeurs (UNION, INTERSECTION, DIFFE-RENCE, COMPLEMETAIRE, etc...). De telles classes sont dites classes définies [87] contrai-rement aux autres classes dont l’intention ne peut être comprise que par une connaissance ex-térieure au modèle. Ces dernières classes sont appelées classes primitives. Ces expressions de classes permettent de distinguer deux familles d’ontologies [122] :

– les ontologies canoniques qui ne comportent que des classes primitives, et – les ontologies non canoniques qui possèdent aussi des classes définies.

Du point de vue des bases de données, les ontologies non canoniques introduisent des redon-dances qui devraient faire objet de traitements particuliers (exemples vues).

2.1.2 Les propriétés

Les propriétés sont des éléments qui permettent de caractériser et de distinguer les instances d’une classe. Comme les classes, les propriétés possèdent toujours un identifiant et une définition comportant une partie textuelles et une partie formelle. Les propriétés peuvent être fortement typées, i.e., associées un domaine et un co-domaine précis qui permettent respectivement de spé-cifier les classes susceptibles d’initialiser une propriété et de contraindre les domaines de valeurs des propriétés. Une propriété peut prendre ses valeurs soit dans des types simples, soit dans des classes. Le terme propriété regroupe donc les notions parfois distinguées (par exemple dans le modèle entité-association) d’attribut et d’association.

Outre ces éléments communs, les différents langages permettent d’exprimer des caractéris-tiques spécifiques sur les propriétés. Par exemple, OWL permet d’exprimer des caractériscaractéris-tiques algébriques (symétrique, transitive, etc.) ou encore PLIB permet d’évaluer des propriétés selon leur contexte.

Enfin, certains langages de définition des ontologies (en particulier OWL), permettent la subsomption de propriétés. Une propriété est subsumée par une autre si le graphe de la relation binaire qu’elle représente est inclus dans le graphe de sa subsmante. Par exemple, supposons que nous ayons une propriété TravailleurDans ayant pour domaine la classe Salarié et pour co-domaine la classe Organisation. On pourrait définir la propriété EstDirecteurDe comme spé-cialisation de TravailleurDans. La propriété EstDirecteurDe aura pour domaine soit la classe Salarié soit une de ses classes et pour co-domaine la classe Organisation ou l’une ses sous-classes.

2.1.3 Les types de valeurs

Les types de valeurs définissent des ensembles de valeurs dans lesquels les propriétés doivent prendre leurs valeurs, ainsi le cas échéant, que les opérations pouvant porter sur ces valeurs. Les types autorisés incluent toujours (1) des types simples (en particulier : entier, réel, caractère, booléen, etc.), (2) les classes (de telles propriétés représentent alors des associations) et (3) des collections, en général associées à des cardinalités minimum et maximum. Certains modèles d’ontologies (e.g., PLIB) introduisent des types supplémentaires.

2.1.4 Les axiomes

Les axiomes sont des prédicats qui s’appliquent sur les classes ou les instances des classes de l’ontologie et qui permettent de restreindre les interprétations possibles d’une ontologie et/ou de déduire de nouveaux faits à partir des faits connus.

Pratiquement tous les langages permettent d’exprimer des axiomes de typage (pour des ins-tances, des valeurs ou des liens), de subsomption et de cardinalité. Les autres axiomes exprimables dépendent de chaque modèle particulier d’ontologie et des prédicats particuliers définis au niveau du langage. Par exemple, PLIB permet de contraindre les domaines de valeurs (e.g, RANGE) et OWL permet de contraindre une propriété à avoir une valeur dans une certaine classe (SOME).

2.1.5 Les instances

Les instances ou objets ou individus représentent des éléments spécifiques d’une classe. Chaque instance est caractérisée par son appartenance à une (ou éventuellement plusieurs) classes(s) et par des valeurs de propriétés.

Selon les langages, les instances peuvent, ou non, être associées à un identifiant unique qui permet de distinguer une instance à une autre. C’est l’hypothèse d’unicité de nom (Unique Name Assumption - UNA) faite par certains langages (OWL Flight) et non par d’autres (OWL). Il est possible dans certains langages de définition d’ontologie qu’une instance appartienne à plusieurs classes en même temps. C’est la notion de multi-instanciation.

2.1.6 Bilan

De la description précédente, on peut conclure que pratiquement tous les formalismes usuels de modélisation d’ontologies possèdent un noyau commun qui consiste à appréhender la connais-sance d’un domaine sous la forme suivante : Une ontologie de domaine est constituée d’un ensemble canonique de classes, structurée par des relations de subsomption et associées à des propriétés qui peuvent avoir pour valeur des classes, des types simples ou des collections. Les classes et les propriétés sont associées à des identifiants et sont définies partiellement de façon textuelle et partiellement par les relations existantes entre classes et propriétés. Des populations d’instances peuvent être définies et caractérisées à la fois par leur appartenance à des classes et par des valeurs de propriétés. Enfin des axiomes permettent de limiter les instances licites et éventuellement de déduire de nouvelles informations (nouvelles instances, nouvelles valeurs de

2. Les langages de définitions des ontologies propriétés ou valeur de prédicats) à partir des instances existantes.

Nous affirmons que toute architecture de bases de données à base ontologique doit être basée autour de ce noyau.

En se basant sur ce noyau commun, chaque formalisme de modélisation définit des construc-tions et contraintes spécifiques.

Selon les objectifs poursuivis lors du développement du formalisme de modélisation, et en nous situant dans l’optique de gestion de données qui est le notre, on peut distinguer deux types de formalismes [87].

– Les formalismes "orientés caractérisation" visent principalement à permettre d’utiliser, au sein de communauté plus ou moins étendue, des caractérisations identiques pour les mêmes objets, ceci afin de permettre l’échange ou l’intégration d’information distribuées en résolvant les problèmes d’hétérogénéité sémantiques.

– Les formalismes "orientés inférence" visent principalement à supporter des mécanismes de raisonnement et d’inférence de façon à inférer de nouveaux faits à partir des faits existants ou à calculer les similitudes entre de caractérisations différentes.

Les formalismes "orientés caractérisation" contiennent en particulier les langages du types RDF-RDF Schéma, OWL-Lite et PLIB. Les formalismes "orientés inférence" contiennent essen-tiellement les langages basés sur la logique de description (DAML+OIL, OWL DL, OWL Full) et ceux basés sur les F-logique (OWL Flight).

Nous présentons successivement dans les deux parties suivantes, d’abord les principaux forma-lismes "orientés caractérisation", puis ceux "orientés inférence". Pour chacun de ces formaforma-lismes, après avoir brièvement présenté leur contexte de conception, nous présentons les extensions qu’il propose au noyau commun et nous discutons de leur impact dans une perspective de base de données.

2.2 Ontologies orientées caractérisation

Les ontologies orientées caractérisation permettent de définir et de partager des identifica-tions de classes et de propriétés correspondants à des sémantiques bien définies. Ces identifiants peuvent alors être référencées pour caractériser le contenu d’un document (sous forme de méta-données) ou pour définir la sémantique d’une donnée. Nous présentons brièvement ci-dessus les caractéristiques de RDF/RDFS, OWL-Lite et PLIB.

2.2.1 RDF / RDF Schéma

RDF (Resource Description Framework) un standard du W3C7 dont l’objectif premier était d’associer aux documents du Web des données sémantiques exploitables par machine. Les ins-tances RDF sont décrites sous forme d’un ensemble de triplets constituant une structure

séman-7

tique. Un triplet RDF est constitué de trois éléments : <Sujet, Prédicat, Objet > noté communé-ment (S, P, O) :

– Le Sujet est une URI (Uniform Resource Identifier) qui est un identifiant d’un objet appelé ressource. Une ressource peut être soit un document accessible sur le Web (dont différents triplets pourront par exemple définir différentes propriétés) soit une partie d’une page Web, soit une collection de pages, soit même un objet quelconque qui n’est pas accessible par le Web mais auquel on peut donner une URI.

– Le Prédicat est une propriété qui permet de caractériser la ressource. Chaque propriété possède une signification spécifique, définit ses valeurs permises, les types de ressources qu’elle peut décrire, et les relations qu’elle entretient avec les autres propriétés [98]. – L’Objet est la valeur de la propriété qui peut être une URI (i.e., une ressource) ou une

valeur littérale ( i.e. de type de données primitif défini par XML).

Un Sujet peut être Objet dans un autre triplet. Ce qui fait qu’une description RDF corres-pond à un multi-graphe orienté étiqueté. Les triplets correscorres-pondent aux arcs orientés dont le label est le prédicat, le nœud source est le sujet et le nœud cible est l’objet.

RDF définit lui-même très peu de prédicats, ceux-ci pouvant être définit librement. Il a donc été très rapidement été complété par RDF Schéma qui fournit les prédicats essentiels pour représenter (en RDF) une ontologie. Ces constructeurs sont les suivants.

– rdfs :class qui permet de créer une classe,

– rdfs :subClassOf qui permet de spécifier une organisation hiérarchique des classes, – rdfs :property qui permet de spécifier des propriétés caractéristiques d’une classe,

– rdfs :subProperty qui permet au concepteur de spécifier une organisation hiérarchique des propriétés,

– rdfs :domain qui permet de spécifier le domaine d’une propriété i.e. à associer une propriété à une classe,

– rdfs :range qui permet de spécifier le co-domaine de valeur d’une propriété,

– rdf :type qui permet de "typer" une ressource (ou instances RDF) à une propriété ou une classe définie en RDF Schéma.

La figure 2.2 présente un exemple d’une telle information, dans la partie supérieure sous forme de multi-graphe, et, dans la partie inférieure dans la syntaxe XML définie pour RDF(S).

L’utilisation conjointe de RDF et RDFS permet donc à la fois de représenter (en RDFS) une ontologie et (en RDF) des instances définies en termes de cette ontologie.

En RDF Schéma, même si dans un très nombre de cas pratiques, d’une part, les propriétés sont associées à un domaine précis et ne peuvent donc s’appliquer qu’aux objets instances de la classe correspondant à leur domaine, et d’autre part, les instances ne sont classifiées que dans

2. Les langages de définitions des ontologies

personne domain document subClassOf range subClassOf écrit étudiant thèse type écrit type schéma données écrit http:/…/lisi/hondjack objet sujet http:/…/lisi/theses/HondjackThese.pdf http:/…/lisi/articles/HondjackArticle.pdf type subClassOf article Données

<rdf:Description about=" http:/…/lisi/hondjack "> <rdf:type rdf:resource=”person” />

<s:ecrit> http:/…/lisi/theses/HondjackThese.pdf</s:ecrit> <s:ecrit>http:/…/lisi/articles/HondjackArticle.pdf</s:ecrit> </rdf:Description>

Schéma

<rdfs:classrdf:ID= personne/> <rdfs:classrdf:ID=etudiant>

<rdfs:subClassOf rdf:resource='personne /> </rdfs:class>

<rdfs:classrdf:ID=document/> <rdfs:classrdf:ID=thèse>

<rdfs:subClassOf rdf:resource='document/> </rdfs:Class>

<rdfs:classrdf:ID=article>

<rdfs:subClassOf rdf:resource='document/> </rdfs:Class>

<rdf:property rdf:about=”ecrit”> <rdfs:range rdf:resource=”document> <rdfs:domain rdf:resource=”personne"> </rdf:property>

prédicat

Fig. 2.2 – Exemple de RDF Schema

une seule classe ayant des propriétés, il n’en reste pas moins vrai que ceci n’est pas imposé par le formalisme. Chaque instance peut donc être porteuse de sa propre structure : les classes auxquelles elle appartient et les propriétés qui la décrivent. Si ceci ne pose pas de problèmes dans un univers objets où les instances sont représentées en mémoire centrale par un mécanisme pointeurs, cela a par contre beaucoup de conséquences dans une perspective base de données. Cela impose en effet, et c’est ce qui a été fait jusque là dans les approches proposées pour ranger de l’information RDF/RDFS dans des bases de données, d’utiliser un schéma éclaté dans lequel chaque classe, respectivement chaque propriété, est représentée séparément, soit sous forme de triplet, soit sous forme de table unaire (respectivement binaire).

2.2.2 OWL-Lite

Le langage OWL, nouveau standard du W3C, est une extension de ces deux prédécesseurs RDF [98], RDF Schéma [28] défini également par le W3C. En effet, OWL emprunte la syntaxe de RDF basé sur les triplets pour définir les concepts et emprunte également du RDF Schema sa faculté de décrire les entités d’un domaine d’application au moyen de concepts ou classes et propriétés qui peuvent être organisées en hiérarchies. OWL se compose en trois sous-langages : OWL Lite, OWL DL et DL. Le choix qui offre une expressivité croissante (OWL Lite ⊂ OWL DL ⊂ OWL Full). Le choix fait par le W3C de définir trois sous-langages résulte de l’impossibilité d’obtenir un langage à la fois compatible avec RDF et qui est un support pour faire des inférences efficaces et puissants. Dans cette section, nous présentons uniquement les constructions admises en OWL Lite. La description des constructions admises en OWL DL et OWL Full, qui sont orientés inférences, est faite dans la section 2.3.2.

2.2.2.1 Les classes

Les classes en OWL Lite sont définies à l’aide des constructeurs "OWL :Class" et "OWL :sub-Class". Le premier constructeur sert à créer une classe racine et le deuxième permet de faire hé-riter une classe par une autre en utilisant l’héritage classique. OWL autorise l’héritage multiple. OWL Lite associe à chaque concept des ontologies (classes, propriétés, etc.) une URI (Uniform Ressource Identifier ) permettant d’être référencée par une autre ontologie ou un système. Une description textuelle peut être associée à chaque concept au moyen de la construction owl :label.

2.2.2.2 Les propriétés et les types de valeurs

OWL Lite définit deux types de propriétés owl :ObjectProperty et owl :DatatypeProperty qui se distinguent par leur codomaine. Les owl :ObjectProperty correspondent aux propriétés dont leur codomaine est une classe et les owl :DatatypeProperty pour les propriétés dont leur domaine sont de types simples (entier, réel, booléen, chaîne, etc.). Ce dernier type de propriétés peuvent être n’importe quels types de XML Schema. Les propriétés peuvent être hiérarchisées au moyen du constructeur owl :subPropertyOf.

En OWL Lite, les propriétés ne sont pas forcement rattachées aux classes (i.e., pas de maine). En conséquence, il peut exister dans une ontologie (1) des propriétés n’ayant pas de do-maine et (2) inversement, des propriétés ayant plusieurs dodo-maine en même temps. Par exemple, on peut déclarer que la propriété date est liée aux classes Personne (date de naissance), Concours (date du concours), Vis (date de fabrication).

2.2.2.3 Les axiomes

Par défaut en OWL, une propriété est de cardinalité multiple, i.e., une propriété peut être initialisée plusieurs fois par une instance de classe. OWL offre un constructeur (owl :cardinality) pour spécifier les cardinalités (owl :minCardinality et owl :maxCardinality) d’une propriété. Les seules restrictions de cardinalité acceptées et autorisées en OWL Lite ne peuvent prendre les valeurs 0 ou 1.

OWL Lite autorise des restrictions sur le co-domaine des propriétés au moyen des construc-tions suivantes :

– allValuesFrom impose que les valeurs prises par une propriété des instances doivent prendre leurs valeurs dans la population d’instances d’une classe bien précise.

– someValuesFrom impose qu’au moins une valeur prise par une propriété doit appartenir à la population d’une classe précise.

OWL propose des constructeurs pour qualifier les propriétés. Celles-ci peuvent être qualifiées de :

– inverse (owl :inverseOf ) : une propriété inverse correspond à la symétrie entre deux pro-priétés. Par exemple, si la propriété ApourEnfant est inverse de la propriété Apourparent, et si on spécifie que Sylvain ApourEnfant Alex, alors un raisonneur pourrait déduire que Alex ApourParent Sylvain.

2. Les langages de définitions des ontologies au sens Mathématiques du terme. Par exemple, Si la propriété EstParentDe est transitive, et si on a Antoine EstParentDe Patrice et Patrice EstParentDe Sylvain, alors, on pourrait déduire à l’aide d’un raisonneur que Antoine EstParentDe Sylvain.

– symétrique (owl :SymetricProperty) : une propriété symétrique correspond à la symétrie au sens mathématiques du terme. Par exemple, si la propriété EstCollégueDe est symé-trique, et si on déclare Dung EstCollegueDe Hondjack, alors un raisonneur pourrait déduire que Hondjack EstCollegueDe Dung.

– fonctionnelle (owl :FunctionalProperty) : une propriété fonctionnelle correspond à la dé-finition d’une fonction au sens mathématiques (f(x)=y et f(x)=z =⇒ y=z). Une propriété fonctionnelle pourrait être en réalité vue comme une contrainte sur une propriété, exigeant que cette dernière ait une valeur unique pour une instance donnée. Par exemple, la pro-priété age peut être qualifiée de fonctionnelle parce qu’une personne ne peut avoir plusieurs valeurs pour cette propriété.

– fonctionnelle symétrique (owl :InverseFunctionalProperty ) : une propriété inverse fonc-tionnelle correspond à une application injective en mathématiques (f(x)=z et f(y)=z =⇒ x=y). Ce type de propriété correspond à la combinaison des propriétés fonctionnelles et symétriques. Par exemple, si on a la propriété ApourNumeroDeSS comme fonctionnelle symétrique alors un raisonneur pourrait automatiquement déduire que deux instances qui ont la même valeur pour ces propriétés sont identiques.

Afin de pouvoir établir des correspondances (mapping) entre classes, propriétés de différentes ontologies, OWL Lite propose respectivement les constructions equivalentClass et equivalent-Property. equivalentClass permet de spécifier que deux classes sont identiques ou synonymes. Autrement elles ont la même population d’instances. equivalentProperty permet de spécifier que deux propriétés sont identiques , i.e., qu’elles prennent les mêmes valeurs pour une instance. Si P1 est équivalente à P2, la connaissance de la valeur de P1 pour une instance i donnée alors P2 contient aussi la même valeur.

2.2.2.4 Les instances

Les instances des classes en OWL Lite sont définies en RDF. L’opérateur rdf :type de RDF Schéma permet de rattacher une instance à une classe. Comme en RDF Schema, les instances sont identifiées par une URI. OWL Lite n’impose pas également que (1) une instance puisse appartenir à plusieurs classes ou (2) elle puisse initialiser qu’un sous-ensemble des propriétés de ses classes et (3) elle puisse initialiser plusieurs fois la même propriété.

Par rapport au noyau commun à tous les modèles ontologies, comme RDF Schéma, OWL offrent également une certaine "légèreté" pour la définition des concepts et des instances. En voici quelques unes :

1. une propriété peut exister sans être attachée à une classe, 2. une propriété peut ne pas avoir de domaine,

4. une instance d’une classe peut initialiser une propriété qu’elle ne caractérise pas (i.e., qui n’est pas définie localement et par aucune des ses super-classes).