Lylia Abrouk Université de Bourgogne

Slides:



Advertisements
Présentations similaires
Tutoriel - Les Ressources du BCH
Advertisements

Définitions Analyse documentaire
La recherche documentaire
DTD Sylvain Salvati
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Urbanisation de Systèmes d'Information
Les espaces de nommage XML par Philippe Poulard 1
Introduction à Java - les paquetages -
Ontologie, Méta-données, Sémiotiques
Représentation formelle des ontologies
INTRODUCTION.
Initiation au système d’information et aux bases de données
Chapitre 4 : la gestion électronique des documents
GED Masters: Gestion Électronique de Documents
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
le profil UML en temps réel MARTE
Initiation à la conception de systèmes d'information
Web Sémantique: Le Relief Actuel
Initiation à la conception des systèmes d'informations
Introduction à la conception de Bases de Données Relationnelles
Chap 4 Les bases de données et le modèle relationnel
Administration de bases de données spatiales avec SavGIS
La structuration et la représentation informatique de l'information
RDF(S)
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
MODELE RELATIONNEL concept mathématique de relation
W3C OWL Ontology Web Language
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
Web sémantique : Web de demain
Initiation aux bases de données et à la programmation événementielle
Initiation à la conception des systèmes d'informations
Thésaurus de lactivité gouvernementale Richard Parent 17 novembre 2006 Ressource de soutien à linteropérabilité sémantique.
Patrons de conceptions de créations
La veille numérique : un outil pour s'informer intelligemment &
Les logiques de descriptions
Travaux Pratiques Représentation des connaissances
Paradigmes des Langages de Programmation
INTRODUCTION.
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Algorithmique et programmation (1)‏
Web sémantique Par Lydia Carine Mampais KI Bamba SISSOKO
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Martine Toussaint Desir
Intégration de schémas
Web sémantique est pratique documentaire
Initiation à la conception des systèmes d'informations
Sélection de colonnes (la projection)
2 Processus de conception de BD
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
XSD XML Schema Definition Année universitaire UP web.
eXtensible Markup Language. Généralités sur le XML.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Chapitre 4 Langage d'ontologie du web : OWL
Protégé Lylia Abrouk.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
Stage à Ontomantics Master Pro TILDE
Nouvelles Technologies Internet & Mobile
Introduction à la Programmation Orientée Objet
Chapitre 1 introduction au web sémantique
Apéro Techno Romain Maragou - Aliou Sow Web sémantique.
Introduction Module 1.
Les bases de données Séance 3 Construction du Modèle Conceptuel de Données.
Préparé par : Marouane FELJA
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
ARIANE : Interopérabilité sémantique et accès aux sources d'information sur Internet Sylvain Aymard, Michel Joubert, Dominique Fieschi, Marius Fieschi.
Transcription de la présentation:

Lylia Abrouk Université de Bourgogne Lylia.Abrouk@u-bourgogne.fr Les ontologies Lylia Abrouk Université de Bourgogne Lylia.Abrouk@u-bourgogne.fr

Les ontologies Définitions Un vocabulaire est une liste de termes définis généralement par une communauté afin de pouvoir décrire du contenu, et de rechercher l'information. Il est souvent utilisé pour les documents techniques ou plus généralement dans un domaine spécialisé. L'utilisation d'un vocabulaire contrôlé pour la description des documents facilite l'accès à l'information pour les utilisateurs par la rapidité et la délimitation d'un domaine de connaissances. Les résultats d'une recherche sont plus précis et pertinents par rapport à une description libre car un sujet sera décrit avec les mêmes termes. Un vocabulaire contrôlé est utilisé dans les thésaurus, les ontologies, les réseaux sémantiques, ainsi que toute autre ressource décrivant un domaine avec des termes préférentiels. L'organisation du vocabulaire est traitée à différents niveaux par exemple (relations entre les termes ou le multilinguisme).

Les ontologies Définitions La structure la plus simple d'un vocabulaire contrôlé est la taxonomie. Il s'agit d'une hiérarchie de termes, organisée généralement avec la relation de spécialisation / généralisation. D'autres relations sont utilisées comme la composition mais dans une taxonomie, un seul type de relation est représenté. Exemple : Division du monde

Les ontologies Définitions Les termes d'un thésaurus servent à représenter ou à annoter des documents. Le thésaurus utilise un vocabulaire contrôlé, structuré et souvent restreint à un domaine particulier. En plus des relations de spécialisation (relation verticale) présentes dans une taxonomie, un thésaurus élargit le contexte d'un terme en ajoutant d'autres relations : terme interdit, terme préféré (relations horizontales). Exemple : thésaurus multilingue de l’environnement (GEMET) Terme faune TG(Terme général) organisme TS(Terme spécifique) faune marine TT(Thème) biologie

Les ontologies Définitions Gruber 1993: « Une ontologie est une spécification explicite d'une conceptualisation d'un domaine. » Studer 1998 : « Une ontologie est une spécification formelle et explicite d’une conceptualisation partagée. » conceptualisation = Modèle abstrait de phénomènes réels, Ensemble des concepts importants caractérisant un domaine, Point de vue, une perception limitée du monde explicite : les types de concepts utilisés et les contraintes sur leurs usages sont explicitement définis. formel : compréhensibles par la machine. partagé : connaissances consensuelles, acceptés par un groupe.

Pourquoi créer une ontologie? Partager la compréhension commune de la structure de l’information entre les personnes ou les fabricants de logiciels. (site e-commerce) Permettre la réutilisation du savoir sur un domaine Expliciter ce qui est considéré comme implicite sur un domaine Distinguer le savoir sur un domaine du savoir opérationnel Analyser le savoir sur un domaine

Ontologie : Exemple Une ontologie est une description formelle explicite des concepts dans un domaine Classes (concepts) Attributs (rôles ou propriétés) Facettes (restrictions de rôles) Instances de classes Ex : Ontologie de vin Classe vin : tous les vins Vin de Bordeaux est une instance de la classe des vins Sous classes (blancs, rouges, rosés) Les attributs décrivent les propriétés des classes et des instances

Ontologies : Types Ontologies légères (lightweight ontologies) Des termes: un vocabulaire normalisé Des concepts/classes/types de concepts: donne le sens de termes par des définitions en langages naturelles. Des relations entre concepts Une taxonomie de concepts Des propriétés/attributs de concepts Ontologies lourdes (heavyweight ontologies) Des définitions formelles dans un langage de représentations des connaissances Des axiomes/contraintes d’intégrités Des fonctions (pour calculer une valeur) Des règles (si X alors Y) Des instances/individus

Exemple Homme Pierre Marie Paul France Paris io io Aunliendefraternité EstMarieA Paul Habite_a Habite_a France SeTrouveEn Paris

Ontologie : Exemple Les différentes étapes de manière générale: Définir les classes dans l’ontologie Arranger les classes en une hiérarchie taxonomique (sous-classe, super-classe) Définir les attributs et décrire les valeurs autorisées pour ces attributs

Création de l’ontologie Étape 1 Définition du domaine et de sa portée Quel domaine va couvrir l’ontologie ? Dans quel but utiliserons nous l’ontologie ? A quels types de questions l’ontologie devra t-elle fournir des réponses ? Qui va utiliser et maintenir l’ontologie Exemple projet : Gestion des salles? Coût des films? Relations entre les acteurs?

Création de l’ontologie Étape 2 Réutilisation des ontologies existantes Affiner des sources existantes Existence de bibliothèques d’ontologies réutilisables Ontolingua Bibliothèque des ontologies DAML (http://www.daml.org/ontologies)

Création de l’ontologie Étape 3 Énumérer les termes importants dans l’ontologie Définir une liste Ex: film, acteur, titre, origine, etc.

Création de l’ontologie Étape 4 Définir les classes et la hiérarchie de classes De haut en bas De bas en haut : regroupement de classes en concepts plus généraux Combiné L’approche dépend du domaine et du point de vue personnel Organiser les classes dans une taxonomie hiérarchique Si une classe A est une sous classe d’une classe B, alors toute instance de B est également une instance de A.

Création de l’ontologie Étape 4 Vérifier la hiérarchie de classes Est-un (ex : un avion est un engin) Est-sorte-de (ex : un avion de ligne est une sorte d’avion) Transitivité des classes Maintenir une hiérarchie cohérente Les noms de classes : Les synonymes pour le même concept ne représentent pas de classes différentes Fratries : structure de livre Éviter les boucles de classes

Création de l’ontologie Étape 4 Héritage multiple Héritage des attributs et des facettes des parents Introduire une nouvelle classe : Les sous-classes d'une classe possèdent habituellement des propriétés complémentaires que ne possède pas la superclasse, ou des restrictions différentes de celles de la superclasse, ou entretiennent des relations différentes de celles que les superclasses peuvent entretenir Classe ou valeur de propriété Ex : côtes dans l’anatomie humaine (position latérale, ordre) Classe ou instance Les instances individuelles sont les concepts les plus spécifiques représentés dans une base de connaissance.

Création de l’ontologie Étape 4 Limiter la portée L'ontologie ne doit pas contenir toute l'information possible sur le domaine : vous ne devez pas spécialiser (ou généraliser) plus que de besoin pour votre application (au maximum un niveau supplémentaire de chaque coté). L'ontologie ne doit pas contenir toutes les propriétés possibles des classes et toutes les distinctions entre les classes dans la hiérarchie. Sous-classes disjointes Les classes sont disjointes lorsqu’elles ne peuvent pas avoir d’instances en commun

Création de l’ontologie Étape 5 Il reste les propriétés de classes !! Pour chaque propriété déterminer la classe qu’elle décrit Les propriétés deviennent des attributs rattachés aux classes Les propriétés Intrinsèques, ex:odeur Extrinsèques, ex:nom Parties de Relations avec d’autres individus Toutes les sous-classes d’une classe héritent les attributs de cette classe Rattaché à la classe la plus générale pouvant avoir cette propriété

Création de l’ontologie Étape 5 Attributs inverses : relations inverses Ex : producteur/produit Valeurs par défaut Lorsqu’une valeur particulière d’un attribut est la même pour la plupart des instances d’une classe, nous pouvons désigner cette valeur comme étant la valeur par défaut pour l’attribut.

Création de l’ontologie Étape 6 Définir les facettes des attributs Les attributs peuvent avoir plusieurs facettes. Les facettes décrivent : le type de la valeur des attributs : (chaîne de caractères, numérique, booléen, énumération, instance, etc.) les valeurs permises pour l’attribut le nombre de valeurs permises pour l’attribut : (cardinalité : simple, multiple, minimale, maximale) le domaine de l’attribut : les classes auxquelles il est attaché - la gamme de l’attribut (pour un attribut de type instance): liste de classes d’où peut provenir l’instance.

Création de l’ontologie Étape 7 Créer les instances Définir une instance individuelle d’une classe exige de : choisir une classe, créer une instance individuelle de cette classe, et remplir les valeurs des attributs de l’instance créée. Instance de couleur : rouge

OWL Web Ontology Language

Historique 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

RDFS (Rappel) Exemple : Un Livre est une sorte de Publication, et un Magazine aussi. Toute Publication a un titre, un Livre a un ou plusieurs auteurs, . . . RDF Schema permet de décrire des classes et des propriétés.

Limitations RDFS rdfs:range définit le domaine de valeurs d’une propriété quelle que soit la classe (ne permet pas : les vaches ne mangent que de l’herbe et d’autres animaux mangent de la viande) Ne permet d’exprimer que deux classes sont disjointes Ne permet de créer des classes par combinaison ensembliste d’autres classes (intersection, union, complément) Ne permet pas de définir de restriction sur le nombre d’occurrences de valeurs que prend une propriété (une personne a deux parents) Ne permet de définir certaines caractéristiques des propriétés : transitivité, propriété inverse, unicité

Pourquoi OWL ? 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 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.) Logique OWL RDF+RDF Schema Métadonnées XML + XML Schema Syntaxe

Web Ontology Language un dialecte XML basé sur une syntaxe RDF qui fournit les moyens pour définir des ontologies Web structurées est basé sur la recherche effectuée dans le domaine de la logique de description permet de décrire des ontologies, c'est-à-dire qu'il permet de définir des terminologies pour décrire des domaines concrets constitue une avancée importante dans la représentation et l'organisation des connaissances disponibles sur le Web est conçu comme une extension de Resource Description Framework (RDF) et RDF Schema (RDFS) 

Les avantages d’OWL apporte une meilleure intégration, une évolution, un partage et une inférence plus facile des ontologies ajoute les concepts de classes équivalentes, de propriété équivalente, d'égalité de deux ressources, de leurs différences, du contraire, de symétrie et de cardinalité grâce à sa sémantique formelle basée sur une fondation logique largement étudiée, permet de définir des associations plus complexes des ressources ainsi que les propriétés de leurs classes respectives est adéquat pour le Web sémantique, car il offre une syntaxe définie strictement, une sémantique définie strictement et selon le niveau peut permettre des raisonnements automatisés sur les inférences et conclusions des connaissances le partage et l'échange dans ses formats est facile

Trois sous-langages

Trois sous langages OWL Lite : répond à des besoins de hiérarchie, de classification et de fonctionnalités de contraintes simples de cardinalité 0 ou 1. (ex : une personne a plusieurs prénoms!!) OWL DL : une expressivité maximum sans sacrifier la complétude de calcul (toutes les inférences sont sûres d'être prises en compte) et la décidabilité (tous les calculs seront terminés dans un intervalle de temps fini) des systèmes de raisonnement OWL Full : une expressivité maximum et la liberté syntaxique de RDF sans garantie de calcul

OWL OWL est construit sur RDF et RDFS Utilise la syntaxe RDF/XML <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> <owl:Ontology rdf:about=""> <rdfs:comment> Un exemple d’ontologie OWL </rdfs:comment> <owl:imports rdf:resource="http://www.inapg.fr/Personnes"/> </owl:Ontology> … </rdf:RDF>

Exemple <?xml version="1.0" encoding="UTF-8"?> <rdf:RDFxmlns:owl=http://www.w3.org/2002/07/owl#  xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#  xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema#  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> <owl:Ontology rdf:about=""> <rdfs:comment> Un exemple d’ontologie OWL </rdfs:comment> <owl:imports rdf:resource="http://www.inapg.fr/Personnes"/> </owl:Ontology>… </rdf:RDF> Tous les fichiers OWL doivent compter une référence à l’espace de nommage.

Éléments Classe Owl:Thing et owl:Nothing deux classes prédéfinies Toute classe d’owl est une sous classe de Owl:Thing et super classe de owl:Nothing Classes définies avec owl:Class <owl:Class rdf:ID="ProfesseurAssistant"> <rdfs:subClassOf rdf:resource="#Enseignant"/> </owl:Class>

Disjoint Exprimer qu’une classe est disjointe owl:Class Man owl:disjointWith Woman <owl:Class rdf:about=" ProfesseurAssistant "> <owl:disjointWith rdf:resource="#Professeur"/> <owl:disjointWith rdf:resource="#Ingenieur"/> </owl:Class>

Equivalence On peut définir des équivalences entre les classes <owl:Class rdf:ID="Enseignant"> <owl:equivalentClass rdf:resource="#Intervenant"/> </owl:Class>

Éléments de propriétés Exprimer des faits au sujet de ces classes et de leurs instances. la couleur d’un vin, son corps, sa teneur en sucre sont des propriétés d’une classe Vins. OWL fait la distinction entre deux types de propriétés: les propriétés d’objet qui permettent de relier des instances à d’autres instances is-TaughtBy, supervises les propriétés de type de donnée qui permettent de relier des individus à des valeurs de données. phone, title, age

Éléments de propriétés <owl:ObjectProperty rdf:ID="estEEnseignePar"> <rdfs:domain rdf:resource="#cours"/> <rdfs:range rdf:resource="#enseignant"/> <rdfs:subPropertyOf rdf:resource="#implique"/> </owl:ObjectProperty> <owl:DatatypeProperty rdf:ID="Age"> <rdfs:range rdf:resource="http://www.w3.org/2001/ XMLSchema#nonNegativeInteger"/> </owl:DatatypeProperty>

Inverse p1 owl:inverseOf p2 X p1 Y  Y p2 X hasParent owl:inverseOf hasChild John hasParent Jim  Jim hasChild John <owl:ObjectProperty rdf:ID="Enseigne"> <rdfs:domain rdf:resource="#enseignant"/> <rdfs:range rdf:resource="#cours"/> <rdfs:inverseOf rdf:resource="#estEnseignePar"/> </owl:ObjectProperty>

Équivalence p1 owl:equivalentProperty p2 X p1 Y  X p2 Y <owl:ObjectProperty rdf:ID="faitCours"> <rdfs:equivalentProperty rdf:resource="#Enseigne"/> </owl:ObjectProperty>

Qualification universelle Owl:AllValuesFrom <owl:Class rdf:about="#cours1ereAnnee"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#estEnseignéPar"/> <owl:allValuesFrom rdf:resource="#professeur"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> Chaque instance de cours de 1ere année ne peut être enseignée que par un enseignant professeur

Qualification existancielle Owl:SomeValuesFrom <owl:Class rdf:about="#Enseignant"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#enseigne"/> <owl:someValuesFrom rdf:resource="#coursMaster"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> Un enseignant doit enseigner au moins un cours de master

Valeur unique Owl:hasValue <owl:Class rdf:about="#mathCourse"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#isTaughtBy"/> <owl:hasValue rdf:resource="#949352"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

Cardinalité Cardinality : nombre de valeurs sémantiquement distinctes d’une propriété owl:Class Human rdfs:subClassOf owl:Restriction owl:onProperty parent owl:cardinality 2

Cardinalité <owl:Class rdf:about="#cours"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#estEEnseignePar"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1 </owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">3 </owl:maxCardinality> </owl:Class>

Transitivité owl:TransitiveProperty X p Y  Y p Z  X p Z ex:hasAncetor rdf:type owl:TransitiveProperty

Symétrie p rdf:type owl:SymmetricProperty X p Y  Y p X ex:frère rdf:type owl:SymmetricProperty

Propriété fonctionnelle ex:mari rdf:type owl:FunctionalProperty Une valeur unique pour une ressource donnée Fabien ex:husband Julie Fabien ex:husband Béné  Julie = Béné Si on déclare Julie et Béné comme deux individus différents, on obtient un exemple d’inconsistance

Propriété fonctionnelle inverse ex:mèrede owl:InverseFunctionalProperty Une ressource unique pour une valeur donnée Véro ex:mèrede Luc Nathalie ex:mèrede Luc  Véro = Nathalie

Combinaisons de classes Union <owl:Class rdf:about="#PersonneUniversite"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Enseignant"/> <owl:Class rdf:about="#Etudiant"/> </owl:unionOf> </owl:Class>

Intersection owl:Class femmes owl:intersectionOf owl:Class humains owl:Class femelles Définit une équivalence entre femmes et l’intersection de humains et femeles humains  Femelles  Femmes

Complément <owl:Class rdf:about="#PersonnelAdministratif"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#PersonnelUniversite"/> <owl:Class> <owl:complementOf> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Enseignant"> <owl:Class rdf:about="#Technicien"> </owl:unionOf> </owl:Class> </owl:complementOf> </owl:intersectionOf>

Enumération <owl:Class rdf:about="#jourDeLaSemaine"> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Lundi"> <owl:Thing rdf:about="#Mardi"> <owl:Thing rdf:about="#Mercredi"> <owl:Thing rdf:about="#Jeudi"> <owl:Thing rdf:about="#Vendredi"> <owl:Thing rdf:about="#Samedi"> <owl:Thing rdf:about="#Dimanche"> </owl:oneOf></owl:Class>

instances Les instances d’une classe OWL se déclarent avec l’élément rdf:type <rdf:Description rdf:ID="1234"> <rdf:type rdf:resource="#enseignant"/> </rdf:Description> <enseignant rdf:ID="1234"/> <Owl:AllDifferent> permet de définir les inégalités des couples d’individuels d’une liste donnée.

Sous langages OWL Full : tous les constructeurs OWL Lite : owl:oneof owl:disjointWith owl:unionof owl:complementOf owl:hasValue ne sont pas autorisés Cardinalité : valeurs 0 et 1 Owl:equivalentClass entre classes identifiées

Références Développement d’une ontologie, Natalya F Noy et Deborah L. McGuinness. Le langage d’ontologie OWL. Francis Lapique A semantic Web Primer. G.Antoniou et F. van Harmelen