• Aucun résultat trouvé

Le choix de l’utilisation d’une ontologie pour développer un outil de gestion et de validation des droits d’accès est motivé par la place qu’occupent les ontologies dans l’informatique en général et l’informatique décisionnelle en particulier. De ce fait, les ontologies représentent une brique essentielle dans l’architecture de notre logiciel.

2.2.1 Définition d’une ontologie

Les ontologies, à l’origine d’une branche de la philosophie qui s’intéresse à la nature et à l’organisation de la réalité, correspondent à ce qu’Aristote appelait la Philosophie première, c’est à dire la partie de la métaphysique qui s’intéresse à l’être en tant qu’être, par opposition aux philosophies secondes qui s’intéressent à l’étude des manifestations de l’être (Garf, 1996).

En informatique, la littérature fournit plusieurs de définitions du mot ontologie. Ces définitions, dans leur diversité, offrent des points de vue à la fois différents et complémentaires. Cependant, une définifion qui fait autorité a été faite par Greber et s’énonce comme suit : "Une ontologie est la spécification d’une conceptualisation. [...] Une conceptualisation est une vue abstraite et simplifiée du monde que l’on veut représenter".

Pour nous, l’ontologie se définit comme étant un ensemble de termes hiérarchiquement struc- turés, conçu afin de décrire un domaine qui peut être utilisé comme un squelette de base pour les bases de connaissances.

Une ontologie est basée sur la logique descriptive, or, cette dernière est un langage de représen- tation de connaissance qui peut être utilisée pour représenter la connaissance terminologique d’un domaine d’application d’une manière formelle et structurée.

Notre objectif étant de faire une représentation du contrôle d’accès en informatique donc, naturellement, l’utilisation d’une ontologie est justifiée.

2.2.2 Les constituantes d’une ontologie

Une ontologie est composée d’un ensemble structuré de concepts d’un domaine bien déterminé. Elle est structurée comme un dictionnaire formel qui définit les concepts par leurs relations sémantiques et de subsomption. Ainsi, une ontologie est composée de :

– Classes qui énumèrent l’ensemble des concepts d’un domaine ;

– Attributs qui décrivent les caractéristiques et les propriétés d’une classe. On parle parfois de rôles.

– Facettes qui sont des restrictions sur les attributs.

– Instances qui constituent une base de connaissances. Ils sont les vrais individus ou don- nées réels de l’ontologie.

2.2.3 Langages des ontologies Historiques

Pour la création et la manipulation des ontologies, il existe plusieurs langages de spécification spécialisés ; nous pouvons citer :

– OKBC (Open Knowledge Base Connectivity - 1997) [16] : API permettant d’accéder à des bases de connaissance ;

– KIF (Knowledge Interchange Format - 1998) [17] : langage destiné à faciliter des échanges de savoirs entre systèmes informatiques hétérogènes.

– Loom : langage de représentation des connaissances dont le but avoué est de « permettre la construction d’applications intelligentes » ;

– DAML-ONT (DARPA Agent Markup Language Ontology - 2000) [18] : fondé sur XML, résulte d !un effort du DARPA (Defense Advanced Research Projects Agency) pour l’ex- pression de classes plus complexes que le permet RDF-S ;

– RDF/RDF-S (Resource Description Framework) : RDF est un modèle de graphe destiné à décrire de façon formelle les ressources Web et leurs métadonnées, de façon à permettre le traitement automatique de telles descriptions. RDF-S fournit des éléments de bases pour la définition d’ontologies ou vocabulaires destinés à structurer des ressources RDF. [19]

– OWL (Web Ontology Language) [20] est un langage de description d’ontologies conçu pour la publication et le partage d’ontologies sur le Web sémantique.

Langage OWL

Dans le cadre de notre projet, nous nous sommes particulièrement intéressé au langage OWL [20]. Ce dernier est inspiré de DAML (US DARPA Agent Markup Language) projet Américain et OIL (Ontology Inference Layer) projet Européen.

Comme RDF, OWL est un langage XML, ce qui lui confère un caractère d’universalité syn- taxique ; de plus il permet :

– une représentation très riche des connaissances : propriétés, classes avec identité, équi- valence, contraire, cardinalité, symétrie, transitivité, etc.

– de faire un raisonnement sur ces connaissances en s’appuyant sur la logique descriptive (LD).

Ce dernier point est un aspect très important dans le choix du langage OWL. En effet, la logique descriptive a fait ses preuves dans la représentation des politiques des sécurités en informatique, elle fournit un support très riche et satisfait aux conditions suivantes :

– l’expressivité ; – la clarté ; – la lisiblé ;

– la non embiguité ; – et l’extenciblité.

Un document OWL est une ontologie :

– Qui peut avoir un identificateur unique représenté par un URI (Uniform Resource Iden- tifier) ;

– qui contient :

– des faits qui sont des descriptions d’individus ;

– Un documment a la forme suivante :

ontologie ::= Ontology()[ontologieID]{directive}directive ::= axiomekf ait – L’ontologie OWL la plus simple que l’on peut écrire est :

ontology() – Notons, que OWL comprend les 2 classes pré-définies :

– owl : T hing : correspondant à > – owl : Nothing : correspondant à ⊥.

Exemple : La phrase "Un docteur est une personne qui peut avoir des enfants." se traduit en LD et en OWL par :

LD :

P ersonne u ∀aEnf ant.(Docteur t ∃aEnf ant.Docteur). OWL : <owl:Class> <owl:intersectionOf rdf:parseType="collection"> <owl:Class rdf:about="#Personne"/> <owl:Restriction> <owl:onProperty rdf:resource="#aEnfant"/> <owl:toClass> <owl:unionOf rdf:parseType="collection"> <owl:Class rdf:about="#Docteur"/> <owl:Restriction> <owl:onProperty rdf:resource="#aEnfant"/> <owl:hasClass rdf:resource="#Docteur"/> </owl:Restriction> </owl:unionOf> </owl:toClass> </owl:Restriction> </owl:intersectionOf> </owl:Class>

Owl se décline en trois sous langages que sont : 1. OWL-Lite.

OWL-Lite correspond à la famille SHIF(D) [21] de la logique descriptive. Il se caractérise par les attributs suivants :

– expressivité limitée à des hiérarchies de classification et de fonctionnalités de contraintes simples de cardinalité 0 ou 1 (relations fonctionnelles).

Exemple : OWL-Lite ne permet pas d’exprimer : "une personne a une seule adresse, mais peut avoir un ou plusieurs prénoms".

2. OWL-DL.

OWL-DL correspond à la famille SHOIN(D) [21] de la logique descriptive et il a comme particularité :

– d’être une logique de description d’où le DL ;

– expressivité élevée : contient tout OWL avec certaines restrictions ; – raisonnements :

– pouvant être faits dans une logique descriptive ; – plus lents que dans OWL-Lite ;

– complétude du calcul : toutes les inférences sont assurées d’être prises en compte ;

– décidabilité : tous les calculs des formules OWL-DL sont évaluées et se ter- minent en un temps fini ;

3. OWL-Full.

OWL-Full comprend tout OWL-DL avec en plus tout RDF et il se caractérise par : – une expressivité maximale ;

– une compatibilité complète avec RDF/RDF-S ; – des raisonnements souvent :

– très complexes ; – très lents ; – incomplets ; – indécidables.

Pour notre prototype de gestion et de validation nous utiliseront OWL-DL ;

2.2.4 Langage OWL-DL

OWL-DL est basé sur la logique descriptive en particulier SHOIN(D) [21]. D pour Data pro- perty.

D’une manière générale les éléments fondamentaux de la logique descriptive sont :

– les éléments du monde réel sont représentés par des concepts, des rôles et des individus. – les concepts et rôle possédent une description structurée à laquelle est associée une

– toutes les manipulations faites sur les concepts et les rôles sont réalisées en accord avec la sémantique.

– deux types de connaissances sont prises en compte : les concepts avec leurs composants, et les faits ou assertions, où interviennent les concepts et les instances de concepts. – la relation de subsomption qui organise concepts et rôles en hiérarchies.

– le Raisonnement qui est une opération de classification et d’instanciation.

– Il existe plusieurs familles de logique descriptive : AL, ALN, ALC, SH, ALCN, ALCQ, ALCF, SHOIN, SHIQ, SHIF. La différence entre une famille et une autre se résume principalement en terme d’expressivité :

– Restriction de cardinalité N.

Exemple : Homme u ≥ 2aEnfant designe un homme qui a 2 enfants ou plus. – Restriction de cardinalité qualifiée Q.

Exemple : Homme u ≥ 2aEnfant.F emme désigne un homme qui à 2 enfants ou plus et ces enfants sont des femmes.

– Énumération O.

Exemple : Homme u {Jean, P aul} désigne un homme qui à Jean et Paul comme enfant avec Jean et Paul deux individus du concepte Homme.

– Inversion I.

Exemple : F emme v P ersonne u ¬Homme pour décrire qu’une femme est une personne et ne peut pas être un homme.

Dans la famille de logique descriptive ALN les concepts et les rôles se décrivent ainsi : concept ::= identif icateurkconcept u conceptk¬identif icateurk

∀role.conceptk ≥ entier − positif rolek ≤ entier − positif role. role ::= identif icateur

Il existe deux types de concepts :

– Les concepts primitifs où les rôles déterminent des conditions nécessaires d’appar- tenance à l’extension du concept.

– Les concepts définis où les rôles déterminent des conditions nécessaires et suffisantes d’appartenance à l’extension du concept.

Exemples :

– Un Homme est une Personne. – Une Femme est une Personne.

– Aucune Femme n’est un Homme et vice-versa.

– Une Équipe est (définie comme) un Ensemble ayant au moins 2 membres qui sont tous des Personnes.

– Une Petite-équipe est (définie comme) une Équipe ayant au plus 5 membres.

– Une Équipe-moderne est (définie comme) une Équipe ayant au moins 4 membres, ayant au moins 1 chef, et dont tous les chefs sont des Femmes.

Représentation en logique descriptive ALN :

P ERSON N E v >(primitif ) EN SEM BLE v >(primitif )

HOM M E v P ERSON N E(primitif ) F EM M E v P ERSON N E(primitif )

(F EM M E u HOM M E) v ⊥

´

EQU IP E := (EN SEM BLE u (∀membre.P ERSON N E)u (≥ 2membre))(d´ef ini)

P ET IT E − ´EQU IP E := ( ´EQU IP E u (≤ 5membre))(d´ef ini) ´

EQU IP E − M ODERN E := ( ´EQU IP E u (≤ 4membre) u (≥ 1chef ) u(∀chef.F EM M E))(d´ef ini)

Avec Owl-DL la famille de langage descriptive utilisée est le SHOIN(D). famille SHOIN(D)

la famille SHOIN(D) est une famille de langages très expressive comme nous le montre la figure 2.1.

Dans SHOIN(D) on a comme constructeurs de concept :

– Atomic : A, B en général un concepte atomique est designé par son nom. – Not : ¬C. – And : C u D. – Or : C t D. – Exists : ∃R.C. – For all : ∀R.C. – At least : ≥ R.C (≥ R). – At most : ≤ R.C (≤ R). – Nominal : {i1, . . . , in}.

Pour les Rôles nous avons : – Atomic : R ;

– Inverse : R−.

Ainsi pour définir une base de connaissance ou une ontologie dans SHOIN(D), les axiomes sont définis comme suit :

Figure 2.1: Familles de loguique descriptive – Axiomes de concepts : – Subclass : C v D ; – Equivalent : C ≡ D. – Axiomes de Rôles : – Subrole : R v S ; – Transitivity : T rans(S). – Axiomes assertionnel : – Instance : C(a) ; – Role : R(a, b) ; – Same : a = b ; – Different : a 6= b.

Ainsi il est facile de décrire une base de connaissance avec ces différents axiomes. Exemple : – Concept :

Humain v parentDe.Humain

Orphelin ≡ Humain t ¬enf antDe.V ivant. – Individu :

Orphelin(Louis)

Dans SHOIN(D) le (D) pour Data property signifie que l’on distingue deux types de rôles : ceux liant deux individus, et ceux associant un individu à un littéral.

OWL-DL correspondant à logique descriptive SHOIN(D), on peut definir un tableau de cor- respondance des constructeurs entre les deux langages. Voir tableau 2.1.

Constructeur de OWL DL Constructeurs de SHOIN(D) 2 DL Exemple 3

Thing > >

Nothing ⊥ ⊥

intersectionOf(C1. . . Cn) C1u . . . u Cn Humain u Homme

unionOf(C1. . . Cn) C1t . . . t Cn Docteur t Avocat

complementOf(C) ¬C ¬Homme

oneOF {x1} t . . . t {xn} {P aul} t {J ean}

Rôle P

P allValuesFrom (C) ∀P.C ∀aEnf ant.Docteur

P someValuesFrom (C) ∃P.C ∃aEnf ant.Avocat

P hasValue (x) ∃P.{x} ∃aEnf ant.Alice

P maxCardinality (n) ≤ nP ≤ 1aEnf ant

P minCardinality (n) ≥ nP ≥ 2aEnf ant

Table 2.1: Correspondance OWL-DL et logique descriptive SHOIN(D)

Notation et Conventions

Pour décrire le langage OWL-DL nous utiliseront un notation BNF avec comme conventions : – symboles terminaux : représentés en italique ;

– symboles non-terminaux : représentés en caractères gras ; – alternatives : séparées par des barres (|) ;

– éléments facultatifs (pouvant apparaître au plus une fois) englobés par des crochets ([. . .]) ;

– éléments répétitifs (pouvant apparaître un nombre illimité de fois, incluant zéro) : en- globés par des accolades ({. . .}).

OWL-DL Syntaxe des axiomes de classe

axiome : := Class([classe] modalité description) modalité : := complete | partial

description : := classeID | restiction | unionOf ({description}) | intersectionOf({description})

| complementOf({description}) | oneOf({individuID})

Avec OWL-DL il est éegalement possible de déclarer des classes équivalentes, des classes dis- jointes, et des axiomes spécialisé dont l’énumeration et la Hierarchie :

axiome : := DisjointClasses(description description {description}) | EquivalentClasses(description {description})

| SubClassOf(description {description}) | EnumeratedClass(classeID {IndividuID})

Nous remarquons ainsi que les classes impliquées dans les axiomes peuvent avoir une descrip- tion plus ou moins complexes. Deplus, la déclaration de classes équivalentes peut contenir une seule classe et cela reviendrais à déclarer une classe (Class(ClasseID partial)) ;

Il est également a noté qu’un axiome peut être défini de plusieurs manières. Exemple :

– En Logique descriptive :

AnimalDeCompagnie ≡ AnimalDomestique u (Chien t Chat) (Chien u Chat) v ⊥

AnimalDomestique ≡ Animal u ¬AnimalSauvage – En OWL-DL(forme 1)

Namespace(local = <http ://www.lsis.org#>) Ontology(

Class(local :Animal partial)

Class(local :AnimalSauvage partial)

Class(local :AnimalDeCompagnie complete local :AnimalDomestique

unionOf(

local :Chien local :Chat))

DisjointClasses(local :Chien local :Chat) Class(local :AnimalDomestique complete

local :Animal

complementOf(local :AnimalSauvage))) – En OWL-DL(forme 2)

Namespace(local = <http ://www.lsis.org#>) Ontology(

Class(local :Animal partial)

Class(local :AnimalSauvage partial)

Class(local :AnimalDeCompagnie complete intersectionOf(

local :AnimalDomestique unionOf(

local :Chien local :Chat)))

DisjointClasses(local :Chien local :Chat) Class(local :AnimalDomestique complete

intersectionOf( local :Animal

complementOf(local :AnimalSauvage))))

Dans la première forme, la classe AnimalDomestique demeure anonyme, et est locale à l’axiome ; tandis que dans la deuxième forme l’identificateur AnimalDomestique est fourni et permet de la réutiliser dans plusieurs endroits.

OWL-DL Syntaxe des axiomes de Restriction

restriction : := restriction( propriétéIndividuID

élémentRestrictionIndividu) | restriction(propriétéIndividuID élémentRestrictionIndividu) élémentRestrictionIndividu : := allValuesFrom (description)

| someValuesFrom (description) | value (individuID)

|cardinalité

élémentRestrictionLittéral : := allValuesFrom (dataRange) | someValuesFrom (dataRange) | value (littéral)

|cardinalité

cardinalité : := minCardinality (entierNonNégatif)

| maxCardinality (entierNonNégatif) | cardinality (entierNonNégatif)

dataRange : := typeLittéralID

| rdfs :Literal | oneOf {littéral}

Avec OWD-DL nous pouvons avoir n’importe quelle valeur entière dans une restriction de cardinalité, et la spécification d’un individu pour remplir un rôle.

OWL-DL Syntaxe des axiomes de propriété

axiome : := DatatypeProperty( propriétéLittéralID {super((propriétéLittéralID)})

[Functional] { domaine (description )} {range(dataRange)}

| DatatypeProperty( propriétéIndividuID {super((propriétéIndividuID)}

{inverseOf ((propriétéIndividuID)}

[Functional InverseFunctional FunctionalInverseFunctional Transitive] {domaine(description)} {range(dataRange)})

Les axiomes d’équivalence dans les propriétés ont comme syntaxe : axiome : := EquivalentProperties( propriétéLittéralID

propriétéLittéralID{(propriétéLittéralID)}

| SubPropertyOf(propriétéLittéralID propriétéLittéralID) | EquivalentProperties(propriétéIndividuID

propriétéIndividuID{propriétéIndividuID)}

| SubPropertyOf(propriétéIndividuID propriétéIndividuID)

OWL-DL les Faits

Pour être complet dans la description de OWL-DL il est défini une syntaxe pour les faits qui représente des instances des concepts ou classe.

Ainsi nous avons :

fait : := individu | SameIndividual(individuID individuID {individuID})

| DifferentIndividuals(individuID individuID {individuID}

individu : := Individual([individuID] {type(description)}) {valeur}) valeur : := value(propriétéIndividu IndividuID)

| value(propriétéIndividu Individu) | value(propriétéLittéral Littéral)

Un langage OWL-DL nous permettra d’appliquer des raisonnements très complexes juste en utilisant des moteurs de raisonnement aussi appeler moteurs d’inférence que disposent les API de programmes informatiques dans la gestion des ontologies ( [22]). Parmi ces moteurs, nous pouvons citer : Racer, FaCT, Pellet, FaCT++, Surnin, Hoolet, F-OWL. La différence de ces moteurs d’inférence réside dans le langage d’implémentation, la famille de la logique descriptive supportée, la décidabilité, et le sous-langage OWL supporté.

Avec cette richesse que nous fournissent les ontologies et le langage OWL-DL, nous pouvons bâtir un outil assez complet et générique afin de prendre en compte la majorité des architec- tures informatiques et rénales pressantes dans les entreprises.

2.2.5 Éditeurs d’ontologie

Il existe plusieurs outils pour éditer et visualise les ontologies, on peut citer :

– SWOOP [23] qui est développé par l’université du Maryland et qui supporte le standard RDF et OWL ;

– OntoEdit [24] qui est un éditeur qui intégre l’aspect collaboratif de création d’une onto- logie.

– HOZO [25] développé au japon est un editeur graphique d’ontologie de haut niveau et permet de gérer des ontologies volimineuses.

– Protégé [17] qui est l’outil de référence dans la création et le développement des ontolo- gies.

Protégé ( [17]) est une platforme qui permet de créer, de gerer et d’implémanter des ontologies. Elle est tres modulaire et peut intégrer plusieurs plug-ins pour la représentation graphique des ontologies. Il a été créé à l’université Stanford et est très populaire dans le domaine du Web sémantique et dans monde de la recherche scientifique.

De plus, Protégé est un logiciel conçu en java et il existe une API programmable pour définir et traiter les ontologies dans d’autres projets java.

Ainsi, pour notre projet nous utiliseront Protégé pour créer notre ontologie et grâce au plug-in graphique, nous allons extraire plusieurs représentations graphiques de notre ontologie.

Documents relatifs