REPRESENTATION DES CONNAISSANCES Cours préparé pour l Université de Stendhal, Grenoble (France) Cédric Lopez clopez@objetdirect.com Frédérique Segond fsegond@objetdirect.com www.viseo.net 1
RAPPELS (1/3) Web => conçu pour les humains (HTML : présentation des données) Problèmes: Comment trouver l information pertinente? Comment extraire l information pertinente? => Le contenu du Web doit être compréhensible pour les machines! 2
RAPPELS (2/3) Réseau sémantique (jeuxdemots.org) 3
RAPPELS (3/3) Exemple de réseau sémantique (exprimé en Prolog) : isa(mammifère, animal). isa(mouska, chien). isa(chien, mammifère). isa(chat, mammifère). isa(félix, chat). isa(vache, mammifère). 4
2. Introduction à XML Cours préparé pour l Université de Stendhal, Grenoble (France) Cédric Lopez clopez@objetdirect.com VISEO Objet Direct 4, avenue Doyen Louis Weil 38000 Grenoble www.viseo.net 5
Historique des langages descriptifs GML : Generalized Markup Language HTML : Hypertext Markup Language DHTML : Dynamic HTML XML : Extensible Markup Language HTML DHTML XML Années 1990 SGML 1986 GML 1969, IBM 6
Vers le Web sémantique Dans le cadre du Web Sémantique : XML Extensible Markup Language RDF Resource Description Framework RDFS RDF Schema OWL Web Ontology Language 7
XML = langage de balisage extensible Reconnaissable par son usage des chevrons (< >) encadrant les balises. Objectif : stocker dans un fichier des informations structurées. On parle alors de document XML. faciliter l'échange automatisé de contenus complexes (arbres, texte riche ) entre systèmes d informations hétérogènes. Différence avec HTML : XML permet de séparer le contenu de la présentation Toute balise ouverte doit être fermée! 8
HTML : présentation des données XML : description des données 9
Avantages de XML Aucune connaissance ne doit théoriquement être nécessaire pour comprendre un contenu d'un document XML Une structure arborescente Universalité et portabilité : les différents jeux de caractères sont pris en compte Déployable : il peut être facilement distribué par n'importe quels protocoles à même de transporter du texte, comme HTTP Intégrabilité : un document XML est utilisable par toute application pourvue d'un parser Extensibilité : un document XML doit pouvoir être utilisable dans tous les domaines d'applications Adapté à l'échange de données et de documents. 10
HTML : les balises sont déjà définies XML : à nous de les définir! <personne> <etudiant> <nom>dupont</nom> <prenom>pierre</prenom> <mail>pierre@fauxmail.com</mail> </etudiant> <professeur> </professeur> </personne> 11
Document XML bien-formé = respect de certaines règles : Une seule balise racine Toute balise ouverte doit être fermée Les noms des balises doivent commencés par une lettre ou «_» Les autres caractères peuvent être des chiffres, des lettres, "_", "." ou "-". Les noms des balises ne doivent pas commencer par «xml» Par convention, les balises sont en minuscules. Aucun chevauchement n'est autorisé Les valeurs des entités doivent toujours être encadrées par des guillemets (simples ou doubles) Quand un élément est vide, les balises peuvent être simplifiées <balise></balise> est identique à <balise/> 12
<personne> <etudiant> <nom>dupont</nom> <prenom>pierre</prenom> <mail>pierre@fauxmail.com</mail> </etudiant> <professeur/> </personne> 13
Exercice 1 : Représenter la salle en XML 14
Document XML valides = un document XML bien formé qui se conforme aussi aux règles d'un modèle (ou schéma) de documents donné par une DTD DTD (Document Type Definition) : description de manière stricte de la structure du fichier XML. La DTD d'un document peut être écrite à l'intérieur et à l'extérieur du fichier XML. 15
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE annuaire SYSTEM «personne.dtd"> <annuaire> <personne type="étudiant"> <nom>dupont</nom> <prenom>pierre</prenom> <email>pierre@fauxmail.com</email> </personne> <personne type="professeur"> <nom>lopez</nom> <prenom>cédric</prenom> <email>clopez@objetdirect.com</email> </personne> </annuaire> 16
<?xml version="1.0" encoding="iso-8859-1"?> <!ELEMENT annuaire (personne*)> <!ELEMENT personne (nom,prenom,email+)> <!ATTLIST personne type (étudiant professeur secrétaire technicien) "étudiant"> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT email (#PCDATA)> 1. Définition des éléments : <!ELEMENT nom_element (structure)> 2. Définition des attributs : <!ELEMENT nom_element nom_attribut (structure)> 3. Choix par défaut : après le structure du type 4. Opérateurs : * +?, 5. Type de contenu : #PCDATA, EMPTY, ANY 17
Opérateurs + *?, () L'élément doit être présent au minimum une fois L'élément peut être présent plusieurs fois (ou aucune) L'élément peut être optionnellement présent L'élément A ou l'élément B peuvent être présents L'élément A doit être présent et suivi de l'élément B Les parenthèses permettent de regrouper des éléments afin de leur appliquer les autres opérateurs A+ A* A? A B A,B (A,B)+ <!ELEMENT annnuaire (personne*)> 18
Types de contenu ANY EMPTY #PCDATA L'élément peut contenir tout type de données L'élément ne contient pas de données spécifiques L'élément doit contenir une chaîne de caractères <!ELEMENT email (#PCDATA)> 19
Exercice 2 : À partir de la DTD suivante, donner deux exemples de document XML. <!ELEMENT personne (nom,prenom,adresse), telephone?, mail? > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT adresse (#PCDATA) > <!ELEMENT telephone (#PCDATA) > <!ELEMENT mail (#PCDATA) > 20
Exercice 3 : Ecrire la DTD de la classe (selon le XML de l exercice 1). 21
La DTD n est pas obligatoire, on l écrit seulement lorsqu il y a un intérêt (contraintes lors de la saisie d un document XML)!!! 22
Exercice 4 : Structurer le texte suivant en XML (par G. Chagnon) Il existe diverses variétés de nuages. La plupart de ceux dont nous allons parler ne produit aucun "hydrométéore", sauf le cumulonimbus, qui est accompagné d'averses (parfois sous la forme de neige, de grésil ou de grêle). L'altocumulus et le cirrocumulus partagent les mêmes "espèces" : lenticularis, stratiformis, castellanus et flocus. On retrouve ces deux espèces également chez le cirrus, ainsi que les espèces spissatus, uncinus et fibratus. Les espèces stratiformis, lenticularis et castellanus sont quant à elles partagées également avec les strato-cumulus. Ces derniers peuvent se traîner au ras du sol et monter à 2000m, mais certains nuages ont une altitude minimale à peine plus élevée, puisqu'elle n'est que de 200m pour les cumulus, et de 300m pour les cumulonimbus. Il est vrai que ces derniers compensent en montant jusqu'à une altitude maximale de 18000m, soit plus haut encore que les cirrus, qui plafonnent à 12000m. L'altitude minimale de ces derniers coïncide avec la fin de la présence possible des altocumulus, à 6000m. Et c'est autour de cette zone, entre 5000 et 7000m, que se trouvent les cirrocumulus. L'altitude minimale des altocumulus est de 2000m, soit quatre fois moins que l'altitude maximale des cumulus. Ces pauvres cumulus ne sont pas favorisés en nom d'espèces, puisqu'ils se trouvent affligés de noms tels que fractus, mediocris, humilis et congestus... alors que les cumulonimbus ont des espèces aux noms plus... capillaires tels que calvus, capillatus. Les très gros cumulonimbus sont appelés mammatus. 23
Correction 24
25 Editeur XML ALTOVA http://www.altova.com/thankyou.asp
Exercice 5 (par G. Chagnon) Rédiger un XML et une DTD pour une bibliographie. Cette bibliographie contient des livres et des articles. les informations nécessaires pour un livre sont : son titre général ; les noms des auteurs ; ses tomes et pour chaque tome, leur nombre de pages ; des informations générales sur son édition comme par exemple le nom de l'éditeur, le lieu d'édition, le lieu d'impression, son numéro ISBN ; les informations nécessaires pour un article sont : son titre ; les noms des auteurs ; ses références de publication : nom du journal, numéro des pages, année de publication et numéro du journal on réservera aussi un champ optionnel pour un avis personnel. Tester cette DTD avec un fichier XML que l'on écrira ex-nihilo et validera. 26