• Aucun résultat trouvé

Outils de développement du prototype d’échange

Chapitre 7 Mise en œuvre

7.2 Outils de développement du prototype d’échange

L’objectif de cette section est d’introduire les outils utilisés lors de l’implémentation de notre prototype d’échange des modèles de produits. Dans la première section, nous présentons les outils liés au développement des ontologies, notamment l’éditeur d’ontologie

Protégé, son plug-in permettant l’édition des règles du Web Sémantique, SWRLTab, ainsi que

161

nous nous intéressons aux outils nécessaires pour l’implémentation de notre interface d’échange, tels que le langage Java, et l’API OWL.

7.2.1 Outils de développement des ontologies

7.2.1.1 Protégé

Une étape fondamentale de notre méthode d’échange des modèles de produit consiste à développer des ontologies d’applications, telles que CatiaV5 et SolidWorks, et une ontologie commune de features de conception, CDFO, représentées avec le langage OWL DL. Pour l’implémentation de ces ontologies et pour la création des règles, nous avons choisi d’utiliser l’environnement de développement d’ontologie Protégé, et plus particulièrement son plug-in OWL (Holger, et al., 2004).

Le choix de l’éditeur Protégé repose sur plusieurs raisons. En effet, Protégé est un éditeur qui permet de construire une ontologie pour un domaine donné, de définir des formulaires d'entrée de données, et d'acquérir des données à l'aide de ces formulaires sous forme d'instances de cette ontologie. Il a été créé à l’Université de Stanford25, et est largement utilisé par la communauté académique ainsi qu’industrielle dans le domaine du Web Sémantique et la représentation des connaissances. Protégé est également une librairie Java, dont le code est open source. Protégé est étendu pour créer de véritables applications à base de connaissances en utilisant un moteur d'inférence pour raisonner et déduire de nouveaux faits par l’application de règles d'inférence aux instances de l'ontologie et à l'ontologie elle-même (méta-raisonnement). Cet éditeur est muni d’une interface simple, conviviale et facilite l’utilisation des ontologies. Il fournit également un ensemble riche de constructions d’OWL et d’opérateurs de combinaison de ces opérateurs, par exemple l’intersection, l’union, et la négation.

Protégé ne consiste pas en une application simple de modélisation, mais plutôt une

architecture ouverte qui supporte une grande variété de plug-ins pour la modélisation des connaissances. La figure 38 illustre une représentation graphique d’une ontologie à l’aide du

plug-in Jambalaya. Ce dernier est un outil permettant la visualisation des ontologies OWL à

l’aide de nœuds et d’arcs.

25

162

Figure 38. Représentation graphique de segment d'ontologie CDFO avec Jambalaya

Ce logiciel nous a été également utile pour la création et l’édition des règles du Web Sémantique, SWRL, moyennant son plug-in SWRLTab. La création de ces règles constitue une étape primordiale dans notre méthode d’échange afin de rendre nos ontologies plus riches sémantiquement et de faciliter l’automatisation effectuée par les moteurs d’inférence.

7.2.1.2 Moteurs d’inférence

Notre méthode d’intégration des ontologies repose principalement sur les services de raisonnement fournis par les moteurs d’inférence basés sur les logiques descriptives. En effet, il est possible de faire appel à un raisonneur, comme Pellet, directement dans les dernières versions de Protégé (e.g.la version 3.4). Le moteur d’inférence Pellet est utilisé pour le raisonnement des faits supplémentaires à partir de la base de connaissance définie dans une ontologie.

Pellet (version 1.5.2) est un moteur développé et soutenu commercialement par Clark & Parsia LLC26. Son code est implémenté en Java et disponible en source libre. Pellet

26

163

supporte l’expressivité totale du langage OWL DL, et permet ainsi d’effectuer des inférences sur des ontologies représentées en OWL DL, y compris le raisonnement sur les nominaux (classes énumérées). Plus récemment, il a été étendu pour considérer toutes les fonctionnalités du langage OWL1.1, à l’exception des types de données d’arité (Sirin, et al., 2007). Il implante une procédure de décision fondée sur l’algorithme des tableaux pour des génériques (subsomption, satisfiabilité, classification) et pour des (récupération et réponse aux requêtes conjonctives). Il supporte les API OWL, DIG et Jena (Wilkinson, et al., 2003).

Cependant, Pellet ne permet pas les inférences appliquées aux règles définies avec le langage SWRL. Nous avons donc utilisé le moteur d’inférence JESS (Java Expert System

Shell) (Friedman-Hill, 2007). JESS propose un environnement pour la création et l’édition de

systèmes à base de règles. Il représente un moteur de règles qui permet de construire des systèmes capables de raisonner en utilisant de la connaissance fournie sous forme de règles déclaratives. Il est utilisé dans notre prototype pour les inférences effectuées sur les règles du Web Sémantique SWRL définies dans nos ontologies. JESS est disponible pour les communautés de recherche sous des licences académiques gratuites. Notons qu’une phase préalable de raisonnement consiste à convertir la syntaxe OWL vers une syntaxe spécifique à JESS, et une conversion réciproque, en OWL, sera appliquée après l’exécution du raisonnement de JESS. Le plug-in de JESS dans Protégé est illustré dans la figure 39.

164

7.2.2 Outils d’implémentation de notre application

7.2.2.1 Java

Pour l’implémentation de notre application d’intégration des ontologies OWL, nous avons utilisé le langage de programmation orienté objet Java. En effet, grâce à sa portabilité et à son indépendance de plate-forme, Java permet l’exécution des applications indépendamment des architectures matérielles ou des systèmes d’exploitation sur lesquels ces applications sont utilisées. De plus, beaucoup de librairies et d’APIs de développement d’ontologie sont basées sur le langage Java, ce qui rend ce dernier approprié pour les applications utilisant des ontologies.

Concernant l’environnement de développement, nous avons utilisé l’IDE Eclipse. Ce dernier permet potentiellement de créer des projets de développement mettant en œuvre différents langages de programmation, y compris Java. La libraire SWT, Standard Widget

Toolkit, développée par IBM et la fondation Eclipse27, est également utilisée pour créer l’interface graphique d’utilisateur, GUI (Graphic User Interface). SWT est une bibliothèque graphique libre pour Java, formée de bibliothèques de composants graphiques (texte, label, bouton, panel), et de différents utilitaires nécessaires pour développer une interface graphique en Java. L’avantage d’utilisation de SWT est qu'il permet à Java d’utiliser les composants natifs du système d'exploitation sur lequel l'application s’exécute. Par conséquent, l'application Java devient en général plus fluide et plus rapide.

7.2.2.2 Interfaces de programmation pour OWL

Les interfaces de programmation (API) pour les langages du Web Sémantique constituent des librairies permettant de créer, gérer, et manipuler des ontologies représentées avec ces langages. Différentes APIs ont été développées pour considérer le langage OWL, telles que Jena (McBride, 2002), OWL API (Bechhofer, et al., 2003), etc. L’utilisation de ces APIs permet aux développeurs de s’affranchir de la programmation liée à l’analyse syntaxique (parsing) et à l’écriture (sérialisation) des syntaxes spécifiques. Elle facilite la tâche et permet également aux développeurs de se concentrer sur des opérations sur les ontologies à un niveau supérieur d’abstraction (Ferreira Da Silva, 2007).

27

165

Jena, développé par Hewlett-Packard Development Company, HP, est une API fondée sur le langage RDF. Autrement dit, son modèle interne de représentation se conforme à une représentation en graphes RDF. Ainsi, les formalismes d’ontologies qui peuvent être manipulés par cette API sont ceux qui sont construits au-dessus de RDF, spécifiquement il s’agit des langages RDFS, DAML+OIL, et OWL y compris ses trois sous langages. L’inconvénient d’utilisation de Jena pour le langage OWL réside dans le fait que RDF constitue un niveau d’abstraction inférieur à celui du langage OWL.

L’API OWL est l’interface de programmation fondamentale utilisée dans notre développement permettant au noyau de l’application de manipuler directement les ontologies OWL et de communiquer avec les moteurs d’inférences. Contrairement à l’API Jena, l’interface OWL API fournit un modèle interne de représentation reposant sur la syntaxe abstraite du langage OWL.Le code de cette API, développée en Java, est ouvert et disponible en licence LGPL. Cette API fournit des fonctionnalités de création, de stockage, de manipulation, et de raisonnement des ontologies OWL. Ainsi, une ontologie contient des axiomes et des faits, qui à leur tour fournissent l’information concernant les classes, les propriétés et les individus dans l’ontologie. Les annotations sont aussi représentées comme des axiomes. Cette API permet également l’interfaçage pour des moteurs d’inférences. Cette dernière fonctionnalité est particulièrement intéressante pour retrouver, par exemple, les individus liés à travers une propriété donnée, les valeurs des propriétés pour un individu, etc.