Slide 1

Slide 1 text

SEMWIKTIONARY Accès sémantique au Wiktionnaire API | Fabien Brossier & Dong Thinh & Matti Schneider Preuve de concept | Steven Sancho Encadrants | Michel Gautero & Carine Fédèle 1 Polytech’Nice-Sophia 9 mars 2012

Slide 2

Slide 2 text

SEMWIKTIONARY dictionnaire libre & collaboratif même format que Wikipédia 2 Le Wiktionary est un dictionnaire opéré par la Wikimedia Foundation, l’association responsable de Wikipédia. Chaque mot fait l’objet d’un article, d’une page sur le site.

Slide 3

Slide 3 text

SEMWIKTIONARY 3 Chaque mot contient des données linéaires, telles que prononciation ou langue… …mais également des relations sémantiques entre les mots, classiques comme la synonymie et l’antonimie, mais également plus avancées, telles que la méronymie, l’holonymie…

Slide 4

Slide 4 text

SEMWIKTIONARY données linéaires 3 Chaque mot contient des données linéaires, telles que prononciation ou langue… …mais également des relations sémantiques entre les mots, classiques comme la synonymie et l’antonimie, mais également plus avancées, telles que la méronymie, l’holonymie…

Slide 5

Slide 5 text

SEMWIKTIONARY données linéaires relations sémantiques antonymie, synonymie… 3 Chaque mot contient des données linéaires, telles que prononciation ou langue… …mais également des relations sémantiques entre les mots, classiques comme la synonymie et l’antonimie, mais également plus avancées, telles que la méronymie, l’holonymie…

Slide 6

Slide 6 text

SEMWIK TIONARY 4

Slide 7

Slide 7 text

SEMWIK TIONARY 1. Contraintes 4

Slide 8

Slide 8 text

SEMWIK TIONARY 1. Contraintes 2. Vision 4

Slide 9

Slide 9 text

SEMWIK TIONARY 1. Contraintes 2. Vision 3. Implémentation 4

Slide 10

Slide 10 text

SEMWIK TIONARY 1. Contraintes 2. Vision 3. Implémentation 4. Gestion du projet 4

Slide 11

Slide 11 text

CONTRAINTES 5

Slide 12

Slide 12 text

TECHNOLOGIES 6 On nous a demandé d’utiliser une base de données NoSQL plutôt que les technologies du web sémantique. NoSQL : Not Only SQL. Neo4j nous a été suggéré par notre encadrant et, après analyse des différentes possibilités, il s’agissait effectivement de la solution la plus pertinente (NoSQL + Java + format de données adapté aux graphes).

Slide 13

Slide 13 text

TECHNOLOGIES Java 6 On nous a demandé d’utiliser une base de données NoSQL plutôt que les technologies du web sémantique. NoSQL : Not Only SQL. Neo4j nous a été suggéré par notre encadrant et, après analyse des différentes possibilités, il s’agissait effectivement de la solution la plus pertinente (NoSQL + Java + format de données adapté aux graphes).

Slide 14

Slide 14 text

TECHNOLOGIES Java base de données NoSQL 6 On nous a demandé d’utiliser une base de données NoSQL plutôt que les technologies du web sémantique. NoSQL : Not Only SQL. Neo4j nous a été suggéré par notre encadrant et, après analyse des différentes possibilités, il s’agissait effectivement de la solution la plus pertinente (NoSQL + Java + format de données adapté aux graphes).

Slide 15

Slide 15 text

TECHNOLOGIES Java base de données NoSQL orientée graphe 6 On nous a demandé d’utiliser une base de données NoSQL plutôt que les technologies du web sémantique. NoSQL : Not Only SQL. Neo4j nous a été suggéré par notre encadrant et, après analyse des différentes possibilités, il s’agissait effectivement de la solution la plus pertinente (NoSQL + Java + format de données adapté aux graphes).

Slide 16

Slide 16 text

TECHNOLOGIES Java base de données NoSQL orientée graphe Neo4j 6 On nous a demandé d’utiliser une base de données NoSQL plutôt que les technologies du web sémantique. NoSQL : Not Only SQL. Neo4j nous a été suggéré par notre encadrant et, après analyse des différentes possibilités, il s’agissait effectivement de la solution la plus pertinente (NoSQL + Java + format de données adapté aux graphes).

Slide 17

Slide 17 text

SOURCE DE DONNÉES 7 Wiktionnaire français => descriptions françaises, mais de mots internationaux Fichier de novembre 2011 : - 58 324 698 lignes - 2 124 047 mots

Slide 18

Slide 18 text

SOURCE DE DONNÉES Wiktionary français 7 Wiktionnaire français => descriptions françaises, mais de mots internationaux Fichier de novembre 2011 : - 58 324 698 lignes - 2 124 047 mots

Slide 19

Slide 19 text

SOURCE DE DONNÉES Wiktionary français descriptions en français 7 Wiktionnaire français => descriptions françaises, mais de mots internationaux Fichier de novembre 2011 : - 58 324 698 lignes - 2 124 047 mots

Slide 20

Slide 20 text

SOURCE DE DONNÉES Wiktionary français descriptions en français dump XML généré tous les mois 1,8 Go ; 58+ millions de lignes 2 000 000+ mots < m e d i a w i k i x m l n s = " h t t p : / / www.mediawiki.org/xml/export-0.5/" xmlns:xsi="http://www.w3.org/2001/ X M L S c h e m a - i n s t a n c e " xsi:sc hemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd" version="0.5" xml:lang="fr"> Wiktionnaire http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil MediaWiki 1.18wmf1 case-sensitive Média Spécial Discussion Utilisateur

Slide 21

Slide 21 text

OBJECTIFS 8

Slide 22

Slide 22 text

OBJECTIFS données 8

Slide 23

Slide 23 text

OBJECTIFS données nature 8 nom

Slide 24

Slide 24 text

OBJECTIFS données nature définitions 8 déf nom

Slide 25

Slide 25 text

OBJECTIFS données nature définitions le plus de relations possible 8 déf nom

Slide 26

Slide 26 text

OBJECTIFS données nature définitions le plus de relations possible performance 8

Slide 27

Slide 27 text

OBJECTIFS données nature définitions le plus de relations possible performance requête : 5 minutes 8

Slide 28

Slide 28 text

OBJECTIFS données nature définitions le plus de relations possible performance requête : 5 minutes initialisation données : 24h 8

Slide 29

Slide 29 text

VISION 9

Slide 30

Slide 30 text

THESAURUS OPENOFFICE traitement de texte libre retrouver un terme à partir d’une idée intégré à OpenOffice …dictionnaire des synonymes objectif : faciliter la recherche 10 Prenons pour commencer un des sens qu’offre le Wiktionnaire à ce terme. Il est dit qu’il s’agit d’un vocabulaire normalisé sur la base de termes génériques et de termes spécifiques à un domaine. On peut également le définir de la manière suivante : un thésaurus est d'abord un ouvrage pratique. C'est un dictionnaire d’analogies généralisé qui permet de trouver un mot juste à partir d'une idée.

Slide 31

Slide 31 text

MOYENS utiliser toutes les relations sémantiques présentées de manière contextuelle stockées dans un fichier de données 11 - menu contextuel - bulles informatives Exemple : WikiSaurus

Slide 32

Slide 32 text

EXEMPLE regroupements sur un terme construit par récursivité sur les synonymes un type de relation par ligne 12 But : retrouver les idées associées au terme entré

Slide 33

Slide 33 text

PROJETS CLIENTS 13 SemPol : permettre la recherche de thèmes dans les programmes des candidats à l’élection présidentielle en utilisant le vocabulaire apparenté à la requête de l’utilisateur.

Slide 34

Slide 34 text

PROJETS CLIENTS thésaurus pour OpenOffice 13 SemPol : permettre la recherche de thèmes dans les programmes des candidats à l’élection présidentielle en utilisant le vocabulaire apparenté à la requête de l’utilisateur.

Slide 35

Slide 35 text

PROJETS CLIENTS thésaurus pour OpenOffice SemPol mini-projet Web Sémantique augmentation des programmes politiques 13 SemPol : permettre la recherche de thèmes dans les programmes des candidats à l’élection présidentielle en utilisant le vocabulaire apparenté à la requête de l’utilisateur.

Slide 36

Slide 36 text

IMPLÉMENTATION 14

Slide 37

Slide 37 text

Wiktionnaire http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 15

Slide 38

Slide 38 text

Wiktionnaire http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 16

Slide 39

Slide 39 text

ANALYSEUR 17 La source analysée par le parser était le dumpfile Wiktionary. Nous avons recherché des analyseurs existant. Malheureusement, ils étaient soit spécialisés pour Wikipédia, comme par exemple Xwiki ou WikiModel, soit ils ne faisaient que transformer le formatage Mediawiki en HTML, ce qui n’était pas utile pour nous.

Slide 40

Slide 40 text

ANALYSEUR analyse du dumpfile 17 < m e d i a w i k i x m l n s = " h t t p : / / www.mediawiki.org/xml/export-0.5/" xmlns:xsi="http://www.w3.org/2001/ X M L S c h e m a - i n s t a n c e " xsi:sc hemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd" version="0.5" xml:lang="fr"> Wiktionnaire http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil MediaWiki 1.18wmf1 case-sensitive Média Spécial Discussion Utilisateur

Slide 41

Slide 41 text

ANALYSEUR analyse du dumpfile analyseurs existant 17 < m e d i a w i k i x m l n s = " h t t p : / / www.mediawiki.org/xml/export-0.5/" xmlns:xsi="http://www.w3.org/2001/ X M L S c h e m a - i n s t a n c e " xsi:sc hemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd" version="0.5" xml:lang="fr"> Wiktionnaire http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil MediaWiki 1.18wmf1 case-sensitive Média Spécial Discussion Utilisateur

Slide 42

Slide 42 text

ANALYSEUR analyse du dumpfile analyseurs existant …spécialisés Wikipédia ou formatage textuel seul 17 < m e d i a w i k i x m l n s = " h t t p : / / www.mediawiki.org/xml/export-0.5/" xmlns:xsi="http://www.w3.org/2001/ X M L S c h e m a - i n s t a n c e " xsi:sc hemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd" version="0.5" xml:lang="fr"> Wiktionnaire http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil MediaWiki 1.18wmf1 case-sensitive Média Spécial Discussion Utilisateur

Slide 43

Slide 43 text

ANALYSEUR analyse du dumpfile analyseurs existant …spécialisés Wikipédia ou formatage textuel seul JFlex 17 < m e d i a w i k i x m l n s = " h t t p : / / www.mediawiki.org/xml/export-0.5/" xmlns:xsi="http://www.w3.org/2001/ X M L S c h e m a - i n s t a n c e " xsi:sc hemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd" version="0.5" xml:lang="fr"> Wiktionnaire http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil MediaWiki 1.18wmf1 case-sensitive Média Spécial Discussion Utilisateur

Slide 44

Slide 44 text

ANALYSEUR analyse du dumpfile analyseurs existant …spécialisés Wikipédia ou formatage textuel seul JFlex lexer pour Java syntaxe Lex / Bison 17 < m e d i a w i k i x m l n s = " h t t p : / / www.mediawiki.org/xml/export-0.5/" xmlns:xsi="http://www.w3.org/2001/ X M L S c h e m a - i n s t a n c e " xsi:sc hemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd" version="0.5" xml:lang="fr"> Wiktionnaire http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil MediaWiki 1.18wmf1 case-sensitive Média Spécial Discussion Utilisateur

Slide 45

Slide 45 text

COMPILATION 18 Normalement, le processus de compilation s’effectue en trois phases : Phase lexicale : transformation de groupes de caractères en jetons. Phase syntaxique : vérification de la validité des groupes de jetons. Phase sémantique : actions en fonction des groupes de jetons valides. Mais ici, la grammaire est ambigu. Par exemple, on ne peut pas distinguer le gras de

Slide 46

Slide 46 text

Sémantique Syntaxique COMPILATION 3 phases d’analyse 18 Lexical Normalement, le processus de compilation s’effectue en trois phases : Phase lexicale : transformation de groupes de caractères en jetons. Phase syntaxique : vérification de la validité des groupes de jetons. Phase sémantique : actions en fonction des groupes de jetons valides. Mais ici, la grammaire est ambigu. Par exemple, on ne peut pas distinguer le gras de

Slide 47

Slide 47 text

Sémantique Syntaxique COMPILATION 3 phases d’analyse grammaire ambiguë 18 Lexical ’’’ ’’’ ’’’ ? Normalement, le processus de compilation s’effectue en trois phases : Phase lexicale : transformation de groupes de caractères en jetons. Phase syntaxique : vérification de la validité des groupes de jetons. Phase sémantique : actions en fonction des groupes de jetons valides. Mais ici, la grammaire est ambigu. Par exemple, on ne peut pas distinguer le gras de

Slide 48

Slide 48 text

Sémantique Syntaxique COMPILATION 3 phases d’analyse grammaire ambiguë rédaction par des internautes 18 Lexical ’’’ ’’’ ’’’ ? # Normalement, le processus de compilation s’effectue en trois phases : Phase lexicale : transformation de groupes de caractères en jetons. Phase syntaxique : vérification de la validité des groupes de jetons. Phase sémantique : actions en fonction des groupes de jetons valides. Mais ici, la grammaire est ambigu. Par exemple, on ne peut pas distinguer le gras de

Slide 49

Slide 49 text

Sémantique Syntaxique COMPILATION 3 phases d’analyse grammaire ambiguë rédaction par des internautes 18 Lexical ’’’ ’’’ ’’’ ? * : # - Normalement, le processus de compilation s’effectue en trois phases : Phase lexicale : transformation de groupes de caractères en jetons. Phase syntaxique : vérification de la validité des groupes de jetons. Phase sémantique : actions en fonction des groupes de jetons valides. Mais ici, la grammaire est ambigu. Par exemple, on ne peut pas distinguer le gras de

Slide 50

Slide 50 text

Sémantique Syntaxique COMPILATION 3 phases d’analyse grammaire ambiguë rédaction par des internautes parser officiel multi-passes performance ? 18 Lexical ’’’ ’’’ ’’’ ? * : # - Normalement, le processus de compilation s’effectue en trois phases : Phase lexicale : transformation de groupes de caractères en jetons. Phase syntaxique : vérification de la validité des groupes de jetons. Phase sémantique : actions en fonction des groupes de jetons valides. Mais ici, la grammaire est ambigu. Par exemple, on ne peut pas distinguer le gras de

Slide 51

Slide 51 text

Sémantique Syntaxique COMPILATION 3 phases d’analyse grammaire ambiguë rédaction par des internautes parser officiel multi-passes performance ? une seule passe ! 18 Lexical ’’’ ’’’ ’’’ ? * : # - Normalement, le processus de compilation s’effectue en trois phases : Phase lexicale : transformation de groupes de caractères en jetons. Phase syntaxique : vérification de la validité des groupes de jetons. Phase sémantique : actions en fonction des groupes de jetons valides. Mais ici, la grammaire est ambigu. Par exemple, on ne peut pas distinguer le gras de

Slide 52

Slide 52 text

CONCEPTION 19 “à la volée” : actions faites au moment de la reconnaissance d’un caractère Pour écrire le parser, nous avons utilisé les spécifications MediaWiki pour les parties lexicales et syntaxiques. Pour la partie sémantique, nous avons lu la documentation du Wiktionnaire.

Slide 53

Slide 53 text

CONCEPTION traitement à la volée XML PAGE TITLE MEDIAWIKI LANG H2 NATURE [^<:]+"<" <text [^<:]+ . == {{= fr= {{- verb|nom|… -("|"[a-z]+ . GLYPH [^-]+ == {{- -} DB store, no data . . conv= . . </text> 19 “à la volée” : actions faites au moment de la reconnaissance d’un caractère Pour écrire le parser, nous avons utilisé les spécifications MediaWiki pour les parties lexicales et syntaxiques. Pour la partie sémantique, nous avons lu la documentation du Wiktionnaire.

Slide 54

Slide 54 text

CONCEPTION traitement à la volée lexique & syntaxique : spécifications Mediawiki XML PAGE TITLE MEDIAWIKI LANG H2 NATURE [^<:]+"<" <text [^<:]+ . == {{= fr= {{- verb|nom|… -("|"[a-z]+ . GLYPH [^-]+ == {{- -} DB store, no data . . conv= . . </text> 19 “à la volée” : actions faites au moment de la reconnaissance d’un caractère Pour écrire le parser, nous avons utilisé les spécifications MediaWiki pour les parties lexicales et syntaxiques. Pour la partie sémantique, nous avons lu la documentation du Wiktionnaire.

Slide 55

Slide 55 text

CONCEPTION traitement à la volée lexique & syntaxique : spécifications Mediawiki sémantique : conventions Wiktionnaire XML PAGE TITLE MEDIAWIKI LANG H2 NATURE [^<:]+"<" <text [^<:]+ . == {{= fr= {{- verb|nom|… -("|"[a-z]+ . GLYPH [^-]+ == {{- -} DB store, no data . . conv= . . </text> 19 “à la volée” : actions faites au moment de la reconnaissance d’un caractère Pour écrire le parser, nous avons utilisé les spécifications MediaWiki pour les parties lexicales et syntaxiques. Pour la partie sémantique, nous avons lu la documentation du Wiktionnaire.

Slide 56

Slide 56 text

CONCEPTION traitement à la volée lexique & syntaxique : spécifications Mediawiki sémantique : conventions Wiktionnaire heuristiques de résilience listes mal formées, délimiteurs mal placés… XML PAGE TITLE MEDIAWIKI LANG H2 NATURE [^<:]+"<" <text [^<:]+ . == {{= fr= {{- verb|nom|… -("|"[a-z]+ . GLYPH [^-]+ == {{- -} DB store, no data . . conv= . . </text> 19 “à la volée” : actions faites au moment de la reconnaissance d’un caractère Pour écrire le parser, nous avons utilisé les spécifications MediaWiki pour les parties lexicales et syntaxiques. Pour la partie sémantique, nous avons lu la documentation du Wiktionnaire.

Slide 57

Slide 57 text

PERFORMANCES 20 Notre parser prenait plus que la limite de 24h. Nous avons donc cherché le point limitant pour améliorer les performances. Statistiques système : analyse des ressources utilisées par le parser. Le processeur n’était utilisé qu’à 40%, RAM stable, mais disque dur très sollicité.

Slide 58

Slide 58 text

PERFORMANCES > 24 h 20 Notre parser prenait plus que la limite de 24h. Nous avons donc cherché le point limitant pour améliorer les performances. Statistiques système : analyse des ressources utilisées par le parser. Le processeur n’était utilisé qu’à 40%, RAM stable, mais disque dur très sollicité.

Slide 59

Slide 59 text

PERFORMANCES > 24 h recherche point limitant 20 Notre parser prenait plus que la limite de 24h. Nous avons donc cherché le point limitant pour améliorer les performances. Statistiques système : analyse des ressources utilisées par le parser. Le processeur n’était utilisé qu’à 40%, RAM stable, mais disque dur très sollicité.

Slide 60

Slide 60 text

PERFORMANCES > 24 h recherche point limitant statistiques système disque dur 20 Notre parser prenait plus que la limite de 24h. Nous avons donc cherché le point limitant pour améliorer les performances. Statistiques système : analyse des ressources utilisées par le parser. Le processeur n’était utilisé qu’à 40%, RAM stable, mais disque dur très sollicité.

Slide 61

Slide 61 text

PERFORMANCES > 24 h recherche point limitant statistiques système disque dur profiler base de données 20 Notre parser prenait plus que la limite de 24h. Nous avons donc cherché le point limitant pour améliorer les performances. Statistiques système : analyse des ressources utilisées par le parser. Le processeur n’était utilisé qu’à 40%, RAM stable, mais disque dur très sollicité.

Slide 62

Slide 62 text

PERFORMANCES > 24 h recherche point limitant statistiques système disque dur profiler base de données revue de code optimisation des transactions 20 Notre parser prenait plus que la limite de 24h. Nous avons donc cherché le point limitant pour améliorer les performances. Statistiques système : analyse des ressources utilisées par le parser. Le processeur n’était utilisé qu’à 40%, RAM stable, mais disque dur très sollicité.

Slide 63

Slide 63 text

PERFORMANCES 20 30 minutes 2 129 608 mots Notre parser prenait plus que la limite de 24h. Nous avons donc cherché le point limitant pour améliorer les performances. Statistiques système : analyse des ressources utilisées par le parser. Le processeur n’était utilisé qu’à 40%, RAM stable, mais disque dur très sollicité.

Slide 64

Slide 64 text

Wiktionnaire http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 21 Passer la parole à Fabien.

Slide 65

Slide 65 text

Wiktionnaire http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 22

Slide 66

Slide 66 text

NEO4J 23

Slide 67

Slide 67 text

NEO4J “orientée graphes” 23

Slide 68

Slide 68 text

NEO4J “orientée graphes” …un simple graphe ! 23

Slide 69

Slide 69 text

NEO4J “orientée graphes” …un simple graphe ! transactions 23

Slide 70

Slide 70 text

NEO4J “orientée graphes” …un simple graphe ! transactions indexation nœuds spécifiques + Lucene 23

Slide 71

Slide 71 text

MODÉLISATION 24 Propriétés simples : écriture phonétique… Propriétés multiples : définitions…

Slide 72

Slide 72 text

MODÉLISATION mots 24 Propriétés simples : écriture phonétique… Propriétés multiples : définitions…

Slide 73

Slide 73 text

MODÉLISATION mots nœuds 24 Propriétés simples : écriture phonétique… Propriétés multiples : définitions…

Slide 74

Slide 74 text

/ʦ!.ʣø/ … MODÉLISATION mots nœuds propriétés simples 24 Propriétés simples : écriture phonétique… Propriétés multiples : définitions…

Slide 75

Slide 75 text

/ʦ!.ʣø/ … MODÉLISATION mots nœuds propriétés simples liens sémantiques : arcs synonyme antonyme 24 Propriétés simples : écriture phonétique… Propriétés multiples : définitions…

Slide 76

Slide 76 text

/ʦ!.ʣø/ … MODÉLISATION mots nœuds propriétés simples liens sémantiques : arcs propriétés multiples définitions… déf déf déf synonyme antonyme 24 Propriétés simples : écriture phonétique… Propriétés multiples : définitions…

Slide 77

Slide 77 text

MODÉLISATION 25 Nature lexicale : verbe, nom commun, adjectif…

Slide 78

Slide 78 text

adj nom nom MODÉLISATION types partagés nature lexicale, genre… 25 Nature lexicale : verbe, nom commun, adjectif…

Slide 79

Slide 79 text

adj nom nom MODÉLISATION types partagés nature lexicale, genre… propriété simple …mais commune 25 Nature lexicale : verbe, nom commun, adjectif…

Slide 80

Slide 80 text

adj nom nom MODÉLISATION types partagés nature lexicale, genre… propriété simple …mais commune un nœud par type, relations de typage type type type 25 Nature lexicale : verbe, nom commun, adjectif…

Slide 81

Slide 81 text

Wiktionnaire http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 26

Slide 82

Slide 82 text

Wiktionnaire http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 27

Slide 83

Slide 83 text

MODÈLE OBJET 28

Slide 84

Slide 84 text

MODÈLE OBJET découplage 28

Slide 85

Slide 85 text

MODÈLE OBJET découplage API Read-only (Ro) Definition Word Lexical Category 28

Slide 86

Slide 86 text

MODÈLE OBJET découplage API Read-only (Ro) API CRUD Definition Word Lexical Category Mutable Word Mutable Lexical Category 28

Slide 87

Slide 87 text

MODÈLE OBJET découplage API Read-only (Ro) API CRUD abstraction Object-Graph Mapping réflexivité avancée Node Mapped Object Definition Word Lexical Category Mutable Word Mutable Lexical Category 28

Slide 88

Slide 88 text

API 29

Slide 89

Slide 89 text

API Recherche dans la base Word hello = Word.find("bonjour"); 29

Slide 90

Slide 90 text

API Recherche dans la base Word hello = Word.find("bonjour"); Accès aux relations for (Word synonym : hello.getSynonyms()) println("Synonyme : " + synonym); 29

Slide 91

Slide 91 text

API Recherche dans la base Word hello = Word.find("bonjour"); Accès aux relations for (Word synonym : hello.getSynonyms()) println("Synonyme : " + synonym); Modification MutableWord hi = MutableWord.obtain("salut"); hi.addSynonym(hello); 29

Slide 92

Slide 92 text

30 API Recherche dans la base Word hello = Word.find("bonjour"); Accès aux relations for (Word synonym : hello.getSynonyms()) println("Synonyme : " + synonym); Modification MutableWord hi = MutableWord.obtain("salut"); hi.addSynonym(hello); Demo

Slide 93

Slide 93 text

DISTRIBUTION 31

Slide 94

Slide 94 text

DISTRIBUTION bibliothèque JAR 31

Slide 95

Slide 95 text

DISTRIBUTION bibliothèque JAR base de données préremplie 75 Mo à télécharger 31

Slide 96

Slide 96 text

DISTRIBUTION bibliothèque JAR base de données préremplie 75 Mo à télécharger choix d’utilisation Ro / CRUD 31

Slide 97

Slide 97 text

DISTRIBUTION bibliothèque JAR base de données préremplie 75 Mo à télécharger choix d’utilisation Ro / CRUD 31

Slide 98

Slide 98 text

GESTION DU PROJET 32

Slide 99

Slide 99 text

RÉPARTITION 33

Slide 100

Slide 100 text

RÉPARTITION cœur : API gestion agile 3 personnes 33

Slide 101

Slide 101 text

RÉPARTITION cœur : API gestion agile 3 personnes preuve de concept en parallèle simuler retours utilisateurs 33

Slide 102

Slide 102 text

MÉTHODOLOGIE objectifs : livraison & qualité 34

Slide 103

Slide 103 text

MÉTHODOLOGIE objectifs : livraison & qualité méthodes & outils agiles 34

Slide 104

Slide 104 text

MÉTHODOLOGIE objectifs : livraison & qualité méthodes & outils agiles Scrum 34

Slide 105

Slide 105 text

MÉTHODOLOGIE objectifs : livraison & qualité méthodes & outils agiles Scrum Planning poker 34

Slide 106

Slide 106 text

MÉTHODOLOGIE objectifs : livraison & qualité méthodes & outils agiles Scrum Planning poker valuation client 34

Slide 107

Slide 107 text

MÉTHODOLOGIE objectifs : livraison & qualité méthodes & outils agiles Scrum Planning poker valuation client Kanban 34

Slide 108

Slide 108 text

GÉNIE LOGICIEL 35

Slide 109

Slide 109 text

GÉNIE LOGICIEL Git 35

Slide 110

Slide 110 text

GÉNIE LOGICIEL Git Ant automatisation des tâches 35 • jflex • compile • junit • parse • doc • package • erase_db • clean

Slide 111

Slide 111 text

GÉNIE LOGICIEL Git Ant automatisation des tâches JUnit tests unitaires prévention des régressions 35 • 43 types de tests • 35 mots représentatifs

Slide 112

Slide 112 text

GÉNIE LOGICIEL Git Ant automatisation des tâches JUnit tests unitaires prévention des régressions GitHub Flow une branche nommée par fonctionnalité branche master toujours déployable 35 • 487 commits • 18 pull requests

Slide 113

Slide 113 text

AMÉLIORATIONS 36

Slide 114

Slide 114 text

AMÉLIORATIONS ajout de relations 36

Slide 115

Slide 115 text

AMÉLIORATIONS ajout de relations compatibilité Windows problèmes d’encodage 36

Slide 116

Slide 116 text

CONCLUSION 10 types de données sur 23 37 ✓ définitions ✓ nature ✓ synonymes ✓ antonymes ✓ troponymes ✓ hyperonymes ✓ hyponymes ✓ méronymes ✓ holonymes ✓ vocabulaire apparenté ✓ définitions ✓ nature ✓ synonymes ✓ antonymes ✓ troponymes ✓ hyperonymes ✓ hyponymes ✓ méronymes ✓ holonymes ✓ vocabulaire apparenté

Slide 117

Slide 117 text

CONCLUSION 10 types de données sur 23 75% de la valeur client 37

Slide 118

Slide 118 text

CONCLUSION 10 types de données sur 23 75% de la valeur client performances excellentes accès quasi-immédiat 37

Slide 119

Slide 119 text

CONCLUSION 10 types de données sur 23 75% de la valeur client performances excellentes accès quasi-immédiat API extrêmement simple 37

Slide 120

Slide 120 text

CONCLUSION 10 types de données sur 23 75% de la valeur client performances excellentes accès quasi-immédiat API extrêmement simple bonne documentation 37

Slide 121

Slide 121 text

CONCLUSION 10 types de données sur 23 75% de la valeur client performances excellentes accès quasi-immédiat API extrêmement simple bonne documentation usage 37

Slide 122

Slide 122 text

CONCLUSION 10 types de données sur 23 75% de la valeur client performances excellentes accès quasi-immédiat API extrêmement simple bonne documentation usage processus 37

Slide 123

Slide 123 text

MERCI ! DES QUESTIONS ? Auteurs Fabien Brossier Dong Thinh Matti Schneider Steven Sancho Encadrants Michel Gautero Carine Fédèle Remerciements Christophe Desclaux Images & logos Wiktionary © Wikimedia Foundation Neo4j © Neo4j OpenOffice - Public domain GitHub © GitHub Ant © Apache Windows © Microsoft Loupe CC-BY The Noun Project All other icons © Apple Photos CC-BY Matti 38