Implémentation dun parseur validant pour YML/DML Travail de Master Présentation finale Catherine Pugin 21 avril 2005

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Licence pro MPCQ : Cours
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
1. ami 2. compagnon 3. amant 4. frère 5. père 6. maître 7. éducateur 8
Les numéros
Les identités remarquables
Sirop de Liège « industriel »
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
ORTH 1 CE2 Je sais écrire sans erreur les pluriels des noms se terminant par s, x, z.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Les structures de données arborescentes
1 Choisir une catégorie. Vous recevrez la réponse, vous devez donner la question. Cliquez pour commencer.
Présentation générale
Cours de physique générale I Ph 11
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
1 Journée de regroupement des correspondants "Egalité et genre" - 21 novembre 2011 Rectorat de Rouen - SAIO - CD-HD Résultats scolaires, appréciations.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Comment rendre une femme heureuse…
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
1 INETOP
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Projet de Master première année 2007 / 2008
Comment rendre une femme heureuse…
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
ASI 3 Méthodes numériques pour l’ingénieur
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Formation des commissaires sportifs
Nom:____________ Prénom: ___________
Discussion autour du référentiel
Exercice de vérification 1 p
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.
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Transcription de la présentation:

Implémentation dun parseur validant pour YML/DML Travail de Master Présentation finale Catherine Pugin 21 avril 2005

2 Plan Introduction générale Rappel sur les langages YML et DML Aspects théoriques de la validation Conception du parseur Tests et gestion des erreurs Conclusion générale

3 Introduction générale (1) Projet YML+ Révision des langages de la famille XML.

4 Introduction générale (2) Situation du projet Révision du langage XML et des langages de modélisation (DTD / XML Schema). Création du langage YML et du langage de modélisation DML. Adaptation du parseur Xerces pour tester la conformité des documents. Implémentation dun parseur conformant spécifique aux langages YML et DML. Implémentation du parseur validant spécifique.

5 Le langage YML (1) Critiques adressées à XML Nœuds textes du texte sur deux lignes Balises Asymétrie : Balises complexes : Entité : é Commentaire :

6 Le langage YML (2) Solutions apportées par YML Balises symétriques / {entité} Nœuds textes clairs [un texte] [un texte]# Relation entre instance et modèle simplifiée

7 Le langage DML (1) Critique des DTD Syntaxe non-XML. Aucune possibilité de typage. Mauvaise définition du contenu mixte. Critique de XML Schema Manque de simplicité.

8 Le langage DML (2) Objectifs du langage DML Syntaxe simple, basée sur YML. Meilleure définition du contenu mixte Minimum de types prédéfinis Un seul type prédéfini : string Possibilité de définir ses propres types. Favoriser la modularité. Écrire un méta-modèle, un DML auto- descriptif.

9 Un exemple simple (1) movie.dml <=eltref name="director" ref="per:person"=>

10 Un exemple simple (2) person.dml

11 Un exemple simple (3) movie.yml [Star Wars] [Georges] [Lucas] [Indiana Jones] [Steven] [Spielberg]

12 La validation (1) Aspects théoriques DML = langage formel. Les lettres de son alphabet sont les valeurs des attributs name des déclarations délément. Un document DML peut donc être représenté par une grammaire darbre et à partir de là par un automate darbre.

13 La validation (2) Limplémentation des automates darbres est relativement complexe. On utilise donc à la place une hiérarchie dautomates déterministes à états finis. Un automate est construit pour chaque déclaration délément et pour la déclaration de la racine. Il représente le sous-arbre de la déclaration qui sétend jusquaux premières déclarations délément.

14 La validation (3) Un automate est décrit par Q = {0,1,2} Σ = {child-1, child-2} δ = 0 x child-1 -> 1 ; 1 x child-2 -> 2 q0 = 0; F = {2} 0 1 child-1 2 child-2

15 La validation (4) Linstance YML est le mot qui doit être accepté par lensemble des automates. Chaque automate accepte un sous-mot, une partie de linstance. Quand tous les sous-mots sont acceptés, linstance est validée.

16 Conception Informations nécessaires Quelles sont les informations utiles dans un document DML ? Séquence et occurrence des éléments Attributs associés à chaque élément Types définis Entités définies Importations

17 Conception Architecture générale Document YML Parseur conformant Modèle DML principal Trois phases de validation Parseur conformant

18 Conception Validation en trois phases Traitement du document DML Création des automates Validation de linstance YML

19 Conception Phase 1 : Traitement du DML But : récupération des informations contenues dans les documents importés. Référencement délément, de structure, dattributs. Définitions de types, dentités. Gestion des préfixes. Construction dun arbre complet à partir de la racine root.

20 Traitement du DML Correspondance entre préfixes (1) Les documents importés dans le modèle principal doivent être définis comme espaces de nommage dans linstance. Instance YML Modèle DML principal

21 Traitement du DML Correspondance entre préfixes (2) Les préfixes ne sont pas obligatoirement les mêmes. Il faut garder une table de correspondance entre les préfixes. Préfixe YMLPréfixe DMLURI personperperson.dml

22 Traitement du DML Référencement Les référencements concernent : Les structures Les listes dattributs Les éléments Quand on rencontre une déclaration de type, ou, il faut la remplacer par la définition correspondante. La correspondance se fait entre lattribut ref de la déclaration appelante et lattribut name de la définition.

23 Traitement du DML Référencement per:firstNameper:familyName firstNamefamilyName id per:id

24 Traitement du DML Résultat

25 Traitement du DML Types … NamePattern int[0-9] yml:string\w*

26 Conception Phase 2 : Création des automates But : représentation de la séquentialité et de loccurrence des déclarations déléments. Un automate est construit pour chaque déclaration. Il représente le sous- arbre de lélément, qui sétend jusquaux premières déclarations délément. Construction récursive des automates.

27 Création des automates Automates simples 4 automates simples pour chacune des 4 occurrences ( once, optional, many, free ) ONCE OPTIONA L MANY FREE

28 Création des automates Illustration (1)

29 Création des automates Illustration (2) 01 fils1

30 Création des automates Illustration (3)

31 Création des automates Illustration (4) 23 fils2 45 fils3

32 Création des automates Illustration (5)

33 Création des automates Illustration (6) 23 fils2 45 fils3 6

34 Création des automates Illustration (7)

35 Création des automates Illustration (8) 3 fils2 5 fils3 0 1 fils1 null 6

36 Création des automates Application à lexemple 0 1 per:firstName 3 per:familyName 0 textNode = true

37 Création des automates Les automates sont stockés dans une table avec : Le nom de lélément quils représentent. Le nom du père de cet élément. 0 Nom de lélémentNom du pèreAutomate per:firstNamedirector

38 Conception Récupération des données (1) Les attributs sont également stockés dans une table. Nom de lattribut Nom de lélément Nom de lélément père TypePatternUtilisation per:iddirectormovieint[0-9]required

39 Conception Récupération des données (2) Les entités définies dans le DML principal sont stockées dans une table. Nom de lentitéValeur eacuteé

40 Conception Récupération des données (3) Les nœuds textes peuvent être typés. On stocke dans une table lélément père du nœud texte et le type. Nom de lélémentType du texte elementtext-type

41 Conception Phase 3 : Validation Pour la validation de linstance, nous disposons : des automates des différentes tables Attributs Entités Correspondance entre les préfixes Nœuds textes

42 Validation Généralités Le parcours de larbre YML se fait de manière top-down. Pour chaque noeud : Choix de lautomate correspondant. Itération sur les fils du nœud. Modification du préfixe si nécessaire. Validation de lélément. Validation des attributs.

43 Validation Illustration (1) Choix de lautomate : état courant = 0. [Star Wars] [Georges] [Lucas] 01 title 3 director

44 Validation Illustration (2) Itération sur les nœuds fils. Lélément title est accepté par lautomate. [Star Wars] [Georges] [Lucas] 01 title 3 director

45 Validation Illustration (3) Lélément director est accepté par lautomate. [Star Wars] [Georges] [Lucas] 01 title 3 director

46 Validation Illustration (4) Validation des attributs. Modification du préfixe : person:id -> per:id Recherche de lattribut dans la table. [Star Wars] [Georges] [Lucas] per:iddirectormovieint[0-9]required

47 Validation Illustration (5) Validation des attributs. Vérification de la valeur de lattribut [0-9] -> 1 [Star Wars] [Georges] [Lucas] per:iddirectormovieint[0-9]required

48 [Star Wars] [Georges] [Lucas] Validation Illustration (6) Validation du sous-arbre Modification des préfixes person:firstName -> per:firstName person:familyName -> per:familyName 0 1 per:firstName 3 per:familyName

49 Validation Illustration (7) Létat courant est terminal. Le sous-arbre est accepté. [Star Wars] [Georges] [Lucas] 02 title 3 director

50 Implémentation en 2 mots Implémentation en Java. Utilisation de lAPI JDOM. Quelques adaptations sont nécessaires : Nœud root supérieur : YML_ROOT. Séquence -- interdite dans les commentaires. Output XML.

51 Gestion des erreurs 2 gestions des erreurs possibles : Arrêt à la première erreur Lors dune erreur, on remonte dun niveau et on continue la validation sur les frères. La seconde solution a été choisie. Vision globale du document.

52 Tests Une base de test a été créée spécialement pour le parseur. Elle comporte une série dapplications YML pour tester les différentes erreurs possibles. Une application complète et réaliste traitant de la Formule 1 en fait également partie. Créée initialement en XML et XML Schema. Traduite et adaptée aux langages YML et DML.

53 Tests (erreurs) La difficulté de tester un parseur validant vient du fait quil faut répertorier toutes les erreurs possibles. Une très bonne connaissance du DML est donc indispensable.

54 Conclusion générale (1) Des modifications ont été apportées au DML en cours de route afin de rendre le méta-modèle déterministe. On a ainsi pu constater la simplicité dadaptation du parseur. On peut donc valider une instance par rapport à son modèle DML, ou un modèle DML par rapport au méta-modèle de la même manière.

55 Conclusion générale (2) Des améliorations sont encore envisageables pour le parseur : Meilleure gestion des préfixes. Meilleure localisation des automates. Meilleure relation entre les 2 parseurs. Les versions futures des langages YML et DML entraîneront bien évidemment des modifications pour les deux parseurs.

56 Conclusion générale (3) Malgré ces remarques, la combinaison des deux parseurs rend les langages YML et DML complètement fonctionnels. Ils répondent complètement à lutilisation requise actuellement qui est la validation des instances et des modèles.

57 Merci de votre attention !