Introduction à OWL, un langage XML d'ontologies Web Enjeux, objectifs et mise en oeuvre Xavier Lacot <xavier@lacot.org> Intriduction à OWL, un langage d'ontologies Web 10 janvier 2006 Xavier Lacot <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 Objet sujet objet Xavier Lacot 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 <xavier@lacot.org> 8
Syntaxe de RDF RDF dispose d'une syntaxe XML pour sérialiser les graphes RDF <rdf:description about="http://www.lacot.org/"> <prefixe:auteur>xavier Lacot</prefixe:auteur> </rdf:description> sujet objet prédicat Un fichier RDF doit faire référence à des espaces de nom : <?xml version="1.0"?> <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> Espace de nom pour rdf: Espace de nom pour prefixe: Intriduction à OWL, un langage d'ontologies Web 10 janvier 2006 Xavier Lacot <xavier@lacot.org> 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 <xavier@lacot.org> 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 Homme Paul Humain Ville Paris Bordeaux Femme 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 <xavier@lacot.org> 11
RDF et RDFs seuls sont trop limités : Pourquoi OWL : les limites de RDF / RDFS 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 D'où la nécessité de OWL : Syntaxe XML + Schema XML 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 14
Ontologie Exemple est frère ou soeur de 0..n 0..n Humain Nom Prénom DateDeNaissance habite à 0..n 1..1 Ville NomVille 0..n est père de se trouve en 1..1 1..1 Homme est marié à 0..1 0..1 Femme NomDeJeuneFille Pays NomPays Intriduction à OWL, un langage d'ontologies Web 10 janvier 2006 Xavier Lacot <xavier@lacot.org> 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 nommage de la classe Par énumération de ses individus Par restriction des propriétés de ses individus Par 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 <xavier@lacot.org> 16
Exemples de classes OWL DL <owl:class rdf:id="pays" /> <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> </owl:class> <owl:class rdf:id="femme"> <rdfs:subclassof rdf:resource="#humain" /> </owl:class> Exemple de classe simplement nommée restriction sur la propriété «apourpere» La cardinalité doit être égale à 1 Exemple de classe obtenue par restriction des propriétés de son extension Mécanisme d'héritage Exemple de classe héritée Intriduction à OWL, un langage d'ontologies Web 10 janvier 2006 Xavier Lacot <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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> «apourfrere» est une propriété symétrique : si A apourfrere B, alors B apourfrere A Intriduction à OWL, un langage d'ontologies Web 10 janvier 2006 Xavier Lacot <xavier@lacot.org> 20
L'emploi de OWL soulève plusieurs problématiques : Web Sémantique La production des ontologies Leur partage Leur exploration / exploitation Savoirs / Connaissances Production Editeur Ontologie(s) Portails Sémantiques, Semantic reasoners Partage et enrichissement Exploitation / Présentation «Navigateur sémantique», APIs, Web Services, etc. OWL en pratique Savoirs «enrichis» et «présentés» Web «traditionnel» Présentation Navigateur Web Page Web («présentation de savoirs») Intriduction à OWL, un langage d'ontologies Web 10 janvier 2006 Xavier Lacot <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 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 <xavier@lacot.org> 26