Introduction à OWL et au Web Sémantique
Transcription
Introduction à OWL et au Web Sémantique
Introduction à OWL, un langage XML d'ontologies Web Enjeux, objectifs et mise en oeuvre Xavier Lacot <[email protected]> Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 1 Sommaire Bref historique et limites du Web « navigable » Introduction rapide à XML et au Web sémantique Présentation de RDF Web sémantique et ontologies Le langage OWL Objectifs et motivations Diverses déclinaisons de OWL Structure d'une ontologie : classes, instances et propriétés Outils existants pour la manipulation d'ontologies OWL Editeur d'ontologies Protégé Validateur(s) OWL Outils de raisonnement inductif Exemple simple avec Jena Applications pratiques : à quoi ça sert ? Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 2 Bref historique du Web 1990 : création du World Wide Web par Tim Berners Lee HTML 1 Permet de « faire des pages web simples » Jusqu'en 1998 : « balkanisation du Web » Explosion du nombre de pages Web disponibles Versions successives de HTML Balises propriétaires introduites par Microsoft et Netscape 1998 : XML devient une Recommandation du W3C 2004 : OWL (Web Ontology Language) devient une Recommandation du W3C Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 3 Structure du Web actuel http://domain1.tld http://domain2.tld Le Web actuel est très hétrogène Par son contenu (wikipédia ou skyblogs/meetik ?) Par la qualité de ses pages Structure technique Des ressources (pages Web HTML) Des relations entre ces ressources (liens hypertextes) => Difficilement exploitable Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 4 Limites du Web actuel Dilution de l'effort de partage des connaissances (multiples ressources, parfois dupliquées) Encapsulation des connaissances dans une couche présentationnelle. Exemple d'une des pages du site de l'ENST : <div class="HeadMainText">Mastères Spécialisés</div> <br> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody><tr><td><p> <span class="Normalred"><strong>Les MS de Télécom Paris apportent un complément de formation original et de haute technicité susceptible d’élargir les perspectives de carrière. </strong></span> ... Problèmes : Limité à la seule compréhension humaine (ambiguités) Comment qualifier les relations entre les informations ? Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 5 L'idée du Web sémantique Idée du Web (1990) : Permettre les échanges de savoirs Permettre de lier ces savoirs (principe du lien hypertexte) Idée du Web sémantique : qualifier, formaliser et structurer ces savoirs : Qualifier en écrivant des métadonnées Formaliser en employant une syntaxe extensible (XML) Structurer en évitant les duplications d'informations Objectifs : Partager des connaissances Manipuler des savoirs (éventuellement par des agents automatiques) Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 6 RDF : Ressource Description Framework Créé en 1999 Permet d'écrire des métadonnées Métadonnée : information permettant d'en décrire une autre exemple : Xavier Lacot est l'auteur de cette présentation Une métadonnée Motivations : Un ensemble d'informations Rendre l'information traitable par machine Favoriser l'interopérabilité des savoirs (la combinaison de plusieurs savoirs) Fournir une lingua franca de structuration des informations Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 7 Le mécanisme de triplets de RDF RDF procède par une description exhaustive des savoirs à l'aide de « phrases » simples : Sujet Prédicat sujet Objet Xavier Lacot objet est l'auteur de cette présentation Un ensemble de triplets est nommé un graphe RDF : Un diagramme composé de noeuds Des liens entre deux noeuds => c'est du Web, mais dans lequel les liens sont porteurs de sens : on parle de Web Sémantique. Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 8 Syntaxe de RDF RDF dispose d'une syntaxe XML pour sérialiser les graphes RDF objet <rdf:Description about="http://www.lacot.org/"> <prefixe:auteur>Xavier Lacot</prefixe:auteur> </rdf:Description> prédicat sujet Un fichier RDF doit faire référence à des espaces de nom : Espace de nom <?xml version="1.0"?> pour rdf: <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:prefixe="http://source_de_schema/schema"> <description about="http://www.lacot.org/"> <prefixe:auteur>Xavier Lacot</prefixe:auteur> </description> </rdf> Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> Espace de nom pour prefixe: 9 Le schéma RDF RDF Schema permet de définir un « schema » de méta données RDF Schema permet de qualifier les relations décrites en RDF : Type des ressources manipulées (litteral, etc.) Hiérarchie de ces ressources Quelles propriétés s'appliquent à une ressource ? Domaine de valeur de ces propriétés <rdf:property rdf:about="http://source_de_schema/schema#auteur"> <rdfs:domain rdf:resource="http://source_de_schema/schema#presentation"> <rdfs:range rdf:resource="http://une_autre_source/exemple#Personne"> </rdf:property> Extrait du schema RDF localisé à http://source_de_schema/schema Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 10 Qu'est-ce qu'une « Ontologie » ? Aristote : ontologie = « Discours sur l'être en tant qu'être » Pour le Web Sémantique, une ontologie est un ensemble struturé de connaissances dans un domaine donné. Deux parties composent une ontologie : Une partie terminologique Une partie déclarative Paul Homme Ville Humain Femme Bordeaux Paris Marie Ressources définies les unes par rapport aux autres : Modèle en graphe Permet des manipulations automatisées Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 11 Pourquoi OWL : les limites de RDF / RDFS RDF et RDFs seuls sont trop limités : Impossibilité de préciser la nature des relations entre ressources (réflexivité, etc.) Aucune capacité de raisonnement Logique très limitée Logique OWL (Méta-)données RDF + RDF Schema Syntaxe XML + Schema XML D'où la nécessité de OWL : Découle de RDF + RDFS Connecteurs logiques entre classes (union, intersection, etc.) Cardinalité sur les propriétés Caractérisation des propriétés (transitivité, inverse, etc.) Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 12 Les diverses déclinaisons de OWL OWL se décline en une hiérarchie de trois langages d'expressivité croissante : OWL Lite : hiérarchie de concepts simple OWL DL : Expressivité plus importante que OWL Lite OWL Full : Haut niveau d'expressivité Possibilité d'étendre le vocabulaire de base de OWL Plus grande complexité OWL Lite OWL DL (Description Logics) OWL Full Expressivité et complexité croissantes Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 13 Structure d'une ontologie Une ontologie OWL se sérialise sous forme d'un document OWL (fichier d'extension .rdf ou .owl) Plusieurs sections principales : Déclarations d'espaces de nom (owl, rdf, et autres) L'en-tête (<owl:Ontology>) de décrire le contenu de l'ontologie La définition des classes La définition des propriétés L'assertion de faits Extensibilité d'ontologies existantes : <owl:import> pour utiliser d'autres ontolgies OWL et les étendre : <rdfs:comment>Ontologie décrivant l'humanité</rdfs:comment> <owl:imports rdf:resource="http://domain.tld/otherpath/vivant"/> Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 14 Ontologie Exemple est frère ou soeur de 0..n 0..n Humain Nom Prénom DateDeNaissance Ville habite à 0..n 1..1 NomVille 0..n se trouve en est père de 1..1 Homme 1..1 est marié à 0..1 Femme 0..1 NomDeJeuneFille Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> Pays NomPays 15 Les classes OWL Une classe : définit un groupe d'individus ayant des caractéristiques similaires peut être déclarée de plusieurs manières : Par Par Par Par nommage de la classe énumération de ses individus restriction des propriétés de ses individus intersection, union ou complémentaire d'une autre classe Il existe un mécanisme d'héritage (<owl:subClassOf>) La superclasse owl:Thing est mère de toutes les autres classes Dans OWL Full, une classe peut être instance d'une autre classe (une « métaclasse ») L'ensemble des instances d'une classe se nomme « l'extension » Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 16 Exemples de classes OWL DL <owl:Class rdf:ID="Pays" /> Exemple de classe simplement nommée restriction sur la propriété « aPourPere » <owl:Class rdf:ID="Humain"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#aPourPere" /> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> La cardinalité doit être égale à 1 </owl:Class> Exemple de classe obtenue par restriction des propriétés de son extension Mécanisme d'héritage <owl:Class rdf:ID="Femme"> <rdfs:subClassOf rdf:resource="#Humain" /> </owl:Class> Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> Exemple de classe héritée 17 Les instances de classes La déclaration d'un individu se fait par l'énonciation d'un fait, encore appelé « axiome d'individu » Un fait peut être purement déclaratif : <Humain rdf:ID="Pierre"> <aPourPere rdf:resource="#Jacques" /> </Humain> <Humain> <aPourPere rdf:resource="#Paul" /> </Humain> Instance anonyme Un faut peut également permettre de comparer des individus : <rdf:Description rdf:about="#Louis_XIV"> <owl:sameAs rdf:resource="#Le_Roi_Soleil" /> </rdf:Description> Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 18 Les propriétés OWL (1/2) Une propriété : permet d'exprimer un fait au sujet d'une instance : En la reliant à d'autres instances : propriétés d'objet En la reliant à des valeurs : propriétés de type de données se définit en spécifiant la relation qu'elle symbolise : <owl:ObjectProperty rdf:ID="habite"> <rdfs:domain rdf:resource="#Humain" /> <rdfs:range rdf:resource="#Pays" /> </owl:ObjectProperty> La propriété « habite » a pour domaine la classe « Humain » et pour image la classe « Pays » <owl:DatatypeProperty rdf:ID="anneeNaissance"> <rdfs:domain rdf:resource="#dateNaissance" /> <rdfs:range rdf:resource="&xsd;positiveInteger"/> </owl:ObjectProperty> La propriété «anneeNaissance» a pour domaine la classe «dateNaissance» et pour image le type «positiveInteger» Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 19 Propriétés OWL (2/2) OWL propose un mécanisme d'héritage de propriétés : <owl:ObjectProperty rdf:ID="aPourFrere"> <rdfs:subPropertyOf rdf:resource="#estDeLaFamilleDe" /> <rdfs:range rdf:resource="#Humain" /> <rdfs:domain rdf:resource="#Humain" /> </owl:ObjectProperty> Les propriétés peuvent être caractérisées : Réflexivité Transitivité Symétrie <owl:ObjectProperty rdf:ID="aPourFrere"> <rdf:type rdf:resource="&owl;SymmetricProperty" /> <rdfs:range rdf:resource="#Humain" /> <rdfs:domain rdf:resource="#Humain" /> </owl:ObjectProperty> Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> «aPourFrere» est une propriété symétrique : si A aPourFrere B, alors B aPourFrere A 20 OWL en pratique L'emploi de OWL soulève plusieurs problématiques : La production des ontologies Leur partage Leur exploration / exploitation Portails Sémantiques, Semantic reasoners Partage et enrichissement Web Sémantique Production Ontologie(s) Editeur Exploitation / Présentation « Navigateur sémantique », APIs, Web Services, etc. Savoirs / Connaissances Web « traditionnel » Savoirs « enrichis » et « présentés » Présentation Navigateur Web Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> Page Web (« présentation de savoirs ») 21 Editeur d'ontologies Protégé (1/2) Editeur d'ontologies : Définition de classes Définition de formulaires pour « peupler » ces classes Définition d'instances et leurs propriétés) Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 22 Editeur d'ontologies Protégé (2/2) Protégé est hautement extensible (plugins) : Export dans d'autres formats d'ontologies (DAML, RDF, etc.) Représentation sous forme de graphes (avec OntoWiz) Validation d'ontologies Lien avec des outils de raisonnement automatique Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 23 Autres outils en rapport avec OWL Partage d'ontologies Recherche avec SWoogle Exemple de BioPax : biological Pathways Exchange Outils d'inférence : Dig, Raptor Validateurs d'ontologies : Syntaxiques (validateur RDF du W3C) Sémantiques (vérification des propriétés) « Navigateurs » sémantiques Encore peu répandus Question de la présentation des savoirs Plusieurs tentatives : mSpace, Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 24 Bibliographie Biological PathWays Exchange, http://www.biopax.org/ Editeur d'ontologies Protégé, http://protege.stanford.edu/ Framework sémantique Jena, http://jena.sourceforge.net/ Initiative WebSemantique.org, http://websemantique.org/ mspace, http://www.mspace.fm/ Ontology Validator, http://phoebus.cs.man.ac.uk:9999/OWL/ Racer Systems, http://www.racer-systems.com/ Swoogle, http://swoogle.umbc.edu/ Validateur RDF du W3C, http://www.w3.org/RDF/Validator/ Semantic Web au W3C : http://www.w3.org/2001/sw/ Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 25 Licence Ce document est placé sous licence Creative Commons - Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 2.5. Intriduction à OWL, un langage d'ontologies Web – 10 janvier 2006 – Xavier Lacot <[email protected]> 26