• Aucun résultat trouvé

Afin de pouvoir traiter le problème de conception physique dans lesBDBO, nous proposons

une formalisation des BDBO (modèle unifié des BDBO), qui prend en compte la diversité

des BDBO que nous avons identifiée au chapitre 1. Ce modèle unifié est basé sur les critères

fondamentaux desBDBO. Une BDBO stockant une ou plusieurs ontologies, nous présenterons

d’abord une formalisation de cette notion. Mais avant tout, nous introduisons les notions sur les logiques de description qui sont utilisées dans nos formalisations.

2.1 Logiques de Description

Les logiques des descriptions (LD) sont utilisées pour représenter les connaissances et pour faire du raisonnement. Elles sont basées sur les notions de concepts et de rôles. Un concept correspond à un ensemble d’individus. Un concept peut être primitif (atomique) ou défini. Un rôle est une relation binaire entre deux individus. Les concepts et rôles peuvent être organisés en une hiérarchie grâce à la relation de subsomption. Une base de connaissances est composée d’une TBOX (Terminological Box) qui décrit les connaissances intentionnelles du domaine sous forme d’axiome et d’une ABOX (Assertion Box) qui décrit les connaissances extensionnelles du domaine (les instances). Les opérations de base du raisonnement terminologique sont la

déterminer la position d’un concept ou rôle dans leurs hiérarchies respectives. L’instanciation permet de retrouver les concepts dont un individu est susceptible d’être une instance.

Plusieurs familles de langages des logiques de description existent parmi lesquelsAL, F L,

SHOQ[144], SHIQ[145, 146], SHOIN[147], etc. Le langage d’ontologie OWL est basé

sur la famille ALC. OWL-DL est basé sur le fragment SHOIND(D) et OWL-Lite est basé sur le fragment SHIF(D). Chaque famille utilise un sous-ensemble de constructeurs. Dans ce qui suit, nous présenterons quelques constructeurs de LD et leurs correspondants OWL dont nous avons besoin pour nos formalisations (tableau 3.1) :

Syntaxe DL OWL Définition

A⊓B intersectionOf Conjonction de concepts

A⊔B unionOf Disjonction de concepts

¬ A complementOf Négation

{o1,˙, on} oneOf Enumération

∀ r.C allValuesFrom Quantificateur universel

∃ r.C someValuesFrom Quantificateur existentiel

∃P.o1 hasValue Egalité de valeur

≥ P.C1 minCardinality Cardinalité minimale

≤ P.C1 maxCardinality Cardinalité maximale

= P.C1 cardinality Cardinalité exacte

≡D equivalentClass, sameAs Equivalence entre concepts

Table 3.1 – Constructeurs de la description logique. A, B et P sont des noms de concepts et oi

et C1des noms d’instances

.

– Intersection ( ⊓, owl:intersectionOf ) permet de construire une nouvelle classe comme

une intersection de deux ou plusieurs classes. Par exemple, la classe Mère peut être définie

comme l’intersection des classes Parent et Femme (Mre = Parent⊓ Femmes).

– Union (⊔, owl:UnionOf ) permet de déclarer une nouvelle classe comme étant le

regrou-pement de deux ou plusieurs classes. Par exemple, on pourrait déclarer que la classe

Personne est l’union des classes Homme et Femme (Personne≡ Homme ⊔ Femme).

– Complément (¬, owl:complementOf ) permet de définir une classe comme

complémen-taire d’une autre classe. Par exemple, on pourrait déclarer la classe Homme comme

com-plémentaire de Femme dans la classe Personne (Homme≡ Personne − Femme).

– Énumération (owl:oneOf ) permet de définir une classe par extension : on liste les ins-tances dans un ensemble. Par exemple Doctorant = {Bery, Selma, ...,}.

– Restriction (owl:Restriction) permet de déclarer une nouvelle classe à partir d’une autre en définissant des restrictions (contrainte de valeur et cardinalité) sur les instances de la classe. Il s’agit de :

nou-velle classe dont toutes les instances prennent leurs valeurs dans la classe C1 pour la propriété p ;

– quantification existentielle (∃ p.C1, owl:someValuesFrom) permet de déclarer une

nou-velle classe dont les instances prennent au moins une valeur dans C1pour la propriété

p ;

– égalité de valeur (= P.o1, owl:hasValue) permet de déclarer une nouvelle classe en

imposant la valeur spécifiée (o1) à toutes les instances de la classe en question. Par exemple, la classe Homme peut être déclarée comme la classe Personne avec la

pro-priété sexe égale ’Masculin’ ( Homme≡ Personne p ∧ p.sexe.Masculin) ;

– cardinalité minimale (≥ P.C1, owl:minCardinality) permet de déclarer une nouvelle

classe en fixant une borne inférieure au nombre d’instances dans une propriété ;

– cardinalité maximale (≤ P.C1, owl:maxCardinality) permet de déclarer une nouvelle

classe en fixant une borne supérieure au nombre d’instances dans une propriété ;

– cardinalité exacte (= P.C1, owl:cardinality) permet de déclarer une nouvelle classe en

indiquant exactement le nombre des instances dans une propriété.

2.2 Formalisation d’une ontologie

La formalisation d’une ontologie que nous proposons consiste en le 5-uplet suivant : MO=

<C, P, Applic, Ref, Formalisme>.

– C représente les classes de l’ontologie. L’ensemble des classes peut être décomposé en deux sous-ensembles Cc et Cnc (C = Cc∪ Cnc) ; où Cc représente l’ensemble des classes

canoniques, et Cncl’ensemble des classes définies ou non-canoniques. Par exemple, nous

pouvons imaginer une ontologie où Cc = {Homme, Femme} et Cnc = {Personne} car

Personne = {Homme ∪ Femme}. Comme autre exemple, si Personne est une classe

ca-nonique associée à la propriété genre, Cc = {Personne} et Cnc = {Homme, Femme} car

Homme≡ Personne(genre = masculin) et Femme ≡ Personne(genre = f minin).

– P représente les propriétés de l’ontologie. C’est à dire les propriétés utilisées pour décrire les instances de l’ensemble des classes C par des valeurs appartenant soit à des types simples, soit à d’autres classes. Comme pour l’ensemble des classes, l’ensemble des

pro-priétés peut être aussi décomposé en deux sous-ensembles Pc les propriétés canoniques

et Pnc les propriétés non canoniques. Par exemple si nom et prénom sont des

proprié-tés de l’ontologie, Pc = {nom, prénom} et Pnc = {nomComplet} avec nomComplet =

nom + prénom.

– Applic : C → 2Pest une fonction qui permet de lier chaque classe aux propriétés qui lui

sont attachées, c’est-à-dire, celles qui peuvent être utilisées pour en décrire ses instances. Seules les propriétés ayant pour domaine une classe, ou l’une de ses super-classes, sont applicables à une classe. Si le domaine d’une propriété n’est pas spécifié, la racine de l’ontologie est implicitement considérée.

opé-rateur d’inclusion ou d’équivalence et une expression sur des classes ou des propriétés.

Les expressions utilisées pour définir des ontologies OWL qui sont basées sur les lo-giques de description présentent, à notre point de vue, un ensemble d’opérateurs com-plet couvrant plusieurs formalismes ontologiques. Ces expressions utilisent les

opéra-teurs suivants : opéraopéra-teurs ensemblistes (intersectionOf (∩), unionOf (∪), complementOf

(¬)), restrictions de propriétés (AllValuesFrom ∀p.C, SomeValuesFrom ∃p.C, HasValue ∋ p.C) et les opérateurs de cardinalité (≥ nR.C, ≤ nR.C). Les opérateurs d’inclusion

(⊆) et d’équivalence jouent des rôles très importants : l’opérateur d’inclusion permet

de construire des hiérarchies de classes et l’opérateur d’égalité intervient dans la

défi-nition des concepts non canoniques. Exp est une expression sur les classes c ∈ C et les

propriétés p ∈ P utilisant aussi les opérateurs de la logique de description et les

opéra-teurs ensemblistes. Par exemple, Ref(Homme)=(≡, Exp(Personne)) où Exp(Personne) =

Personne.sexe.Masculin. Notons que Exp peut être la fonction d’identité qui associe

à une classe la même classe. Comme exemple, Ref(Homme)=(⊑, Exp(Personne)) avec

E xp(Personne) = Personne.

– Formalisme est comme son nom l’indique le formalisme du modèle ontologique adopté. Cela peut être RDFS, OWL, PLIB, OIL, DAML, etc.

Vu le fait qu’une ontologie peut être exprimée dans différents modèles d’ontologies, il est possible de faire une spécialisation de cette formalisation pour un modèle d’ontologies donné. L’exemple suivant présente une formalisation des ontologies du modèle d’ontologies PLIB.

Exemple 1

OntologiePLIB = <C, P, Applic, Ref(C), PLIB>où Ref(c) =(OntoSub, Exp(c)), avecc∈ C. L’opérateur OntoSub de Plib est un opérateur permettant de définir un héritage partiel, où une classe référence une autre classe en héritant de tout ou d’une partie de ses propriétés. C’est une relation de subsomption13.

2.3 Modèle unifié des BDBO

Pour représenter la diversité des structures deBDBO, nous avons trouvé nécessaire de

pro-poser une structure générique permettant de faire ressortir le modèle ontologique, le schéma de stockage du schéma de l’ontologie, le schéma de stockage des instances ontologiques et

l’ar-chitecture deBDBO . Notre modèle unifié est le 7-uplet défini de la manière suivante :

BDBO :< MO, I, S ch, Pop, S MMO, S MInst, Ar >, où

– MO représente les ontologies stockées dans la BDBO formalisée sous la forme d’un

5-uplet <C, P, Applic, Ref, Formalisme> comme défini dans la section précédente ; – I : représente l’ensemble des instances ontologiques ;

– S ch : C → 2P est une fonction qui associe à chaque classe l’ensemble des propriétés

pour lesquelles les instances de cette classe ont des valeurs. On a la contrainte ∀c ∈

– Pop : E → 2I, est une fonction qui associe à chaque classe ses instances de l’ensemble

I ;

– Modèle stockage (S MMO): le modèle de stockage de l’ontologie (vertical, binaire et

hori-zontal) ;

– Modèle stockage (S MInst): le modèle de stockage des instances ontologiques ;

– Modèle d’architecture (Ar): le type d’architecture de la base de données (Type I, II ou III).

Ce modèle sera illustré sur chaqueBDBO présentée dans la suite de ce chapitre (§ 3.1).

Le modèle présenté dans cette section permet de représenter la diversité des BDBO au

niveau macroscopique en termes de formalisme d’ontologie, de modèles de stockage et

d’ar-chitecture. Dans la section suivante, nous chercherons à comparer plus précisément lesBDBO.

Pour cela, nous allons nous intéresser à quelquesBDBO particulières.