Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SemWiktionary

 SemWiktionary

Java API to locally access data from Wiktionary, a collaboratively-edited, free dictionary. Specific target is the French Wiktionary.
End of studies project at Polytech'Nice-Sophia engineering school.
https://github.com/MattiSG/SemWiktionary

Matti Schneider

March 09, 2012
Tweet

More Decks by Matti Schneider

Other Decks in Programming

Transcript

  1. 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
  2. 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.
  3. 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…
  4. 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…
  5. 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…
  6. 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).
  7. 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).
  8. 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).
  9. 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).
  10. 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).
  11. 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
  12. 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
  13. 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
  14. 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"> <siteinfo> <sitename>Wiktionnaire</sitename> <base>http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil</base> <generator>MediaWiki 1.18wmf1</generator> <case>case-sensitive</case> <namespaces> <namespace key="-2" case="case- sensitive">Média</namespace> <namespace key="-1" case="first- letter">Spécial</namespace> <namespace key="0" case="case-sensitive" /> <namespace key="1" case="case- sensitive">Discussion</namespace> <namespace key="2" case="first- letter">Utilisateur</namespace> <namespace key="3" case="first-/namespace> 7 Wiktionnaire français => descriptions françaises, mais de mots internationaux Fichier de novembre 2011 : - 58 324 698 lignes - 2 124 047 mots
  15. OBJECTIFS données nature définitions le plus de relations possible performance

    requête : 5 minutes initialisation données : 24h 8
  16. 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.
  17. 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
  18. 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é
  19. 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.
  20. 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.
  21. 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.
  22. <mediawiki xmlns="http:// www.mediawiki.org/xml/ export-0.5/" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd"

    version="0.5" xml:lang="fr"> <siteinfo> <sitename>Wiktionnaire</ sitename> <base>http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 15
  23. <mediawiki xmlns="http:// www.mediawiki.org/xml/ export-0.5/" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd"

    version="0.5" xml:lang="fr"> <siteinfo> <sitename>Wiktionnaire</ sitename> <base>http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 16
  24. 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.
  25. 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"> <siteinfo> <sitename>Wiktionnaire</sitename> <base>http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil</base> <generator>MediaWiki 1.18wmf1</generator> <case>case-sensitive</case> <namespaces> <namespace key="-2" case="case- sensitive">Média</namespace> <namespace key="-1" case="first- letter">Spécial</namespace> <namespace key="0" case="case-sensitive" /> <namespace key="1" case="case- sensitive">Discussion</namespace> <namespace key="2" case="first- letter">Utilisateur</namespace> <namespace key="3" case="first-/namespace> 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.
  26. 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"> <siteinfo> <sitename>Wiktionnaire</sitename> <base>http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil</base> <generator>MediaWiki 1.18wmf1</generator> <case>case-sensitive</case> <namespaces> <namespace key="-2" case="case- sensitive">Média</namespace> <namespace key="-1" case="first- letter">Spécial</namespace> <namespace key="0" case="case-sensitive" /> <namespace key="1" case="case- sensitive">Discussion</namespace> <namespace key="2" case="first- letter">Utilisateur</namespace> <namespace key="3" case="first-/namespace> 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.
  27. 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"> <siteinfo> <sitename>Wiktionnaire</sitename> <base>http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil</base> <generator>MediaWiki 1.18wmf1</generator> <case>case-sensitive</case> <namespaces> <namespace key="-2" case="case- sensitive">Média</namespace> <namespace key="-1" case="first- letter">Spécial</namespace> <namespace key="0" case="case-sensitive" /> <namespace key="1" case="case- sensitive">Discussion</namespace> <namespace key="2" case="first- letter">Utilisateur</namespace> <namespace key="3" case="first-/namespace> 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.
  28. 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"> <siteinfo> <sitename>Wiktionnaire</sitename> <base>http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil</base> <generator>MediaWiki 1.18wmf1</generator> <case>case-sensitive</case> <namespaces> <namespace key="-2" case="case- sensitive">Média</namespace> <namespace key="-1" case="first- letter">Spécial</namespace> <namespace key="0" case="case-sensitive" /> <namespace key="1" case="case- sensitive">Discussion</namespace> <namespace key="2" case="first- letter">Utilisateur</namespace> <namespace key="3" case="first-/namespace> 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.
  29. 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"> <siteinfo> <sitename>Wiktionnaire</sitename> <base>http://fr.wiktionary.org/wiki/ Wiktionnaire:Page_d%E2%80%99accueil</base> <generator>MediaWiki 1.18wmf1</generator> <case>case-sensitive</case> <namespaces> <namespace key="-2" case="case- sensitive">Média</namespace> <namespace key="-1" case="first- letter">Spécial</namespace> <namespace key="0" case="case-sensitive" /> <namespace key="1" case="case- sensitive">Discussion</namespace> <namespace key="2" case="first- letter">Utilisateur</namespace> <namespace key="3" case="first-/namespace> 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.
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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.
  38. CONCEPTION traitement à la volée XML PAGE TITLE MEDIAWIKI LANG

    H2 NATURE <page> </page> <title> [^<:]+"<" <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.
  39. CONCEPTION traitement à la volée lexique & syntaxique : spécifications

    Mediawiki XML PAGE TITLE MEDIAWIKI LANG H2 NATURE <page> </page> <title> [^<:]+"<" <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.
  40. CONCEPTION traitement à la volée lexique & syntaxique : spécifications

    Mediawiki sémantique : conventions Wiktionnaire XML PAGE TITLE MEDIAWIKI LANG H2 NATURE <page> </page> <title> [^<:]+"<" <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.
  41. 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 <page> </page> <title> [^<:]+"<" <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.
  42. 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é.
  43. 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é.
  44. 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é.
  45. 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é.
  46. 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é.
  47. 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é.
  48. 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é.
  49. <mediawiki xmlns="http:// www.mediawiki.org/xml/ export-0.5/" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd"

    version="0.5" xml:lang="fr"> <siteinfo> <sitename>Wiktionnaire</ sitename> <base>http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 21 Passer la parole à Fabien.
  50. <mediawiki xmlns="http:// www.mediawiki.org/xml/ export-0.5/" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd"

    version="0.5" xml:lang="fr"> <siteinfo> <sitename>Wiktionnaire</ sitename> <base>http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 22
  51. /ʦ!.ʣø/ … MODÉLISATION mots nœuds propriétés simples 24 Propriétés simples

    : écriture phonétique… Propriétés multiples : définitions…
  52. /ʦ!.ʣø/ … 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…
  53. /ʦ!.ʣø/ … 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…
  54. adj nom nom MODÉLISATION types partagés nature lexicale, genre… 25

    Nature lexicale : verbe, nom commun, adjectif…
  55. adj nom nom MODÉLISATION types partagés nature lexicale, genre… propriété

    simple …mais commune 25 Nature lexicale : verbe, nom commun, adjectif…
  56. 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…
  57. <mediawiki xmlns="http:// www.mediawiki.org/xml/ export-0.5/" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd"

    version="0.5" xml:lang="fr"> <siteinfo> <sitename>Wiktionnaire</ sitename> <base>http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 26
  58. <mediawiki xmlns="http:// www.mediawiki.org/xml/ export-0.5/" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemaLocation="http:// www.mediawiki.org/xml/export-0.5/ http://www.mediawiki.org/xml/ export-0.5.xsd"

    version="0.5" xml:lang="fr"> <siteinfo> <sitename>Wiktionnaire</ sitename> <base>http://fr.wiktionary.org/ Dumpfile XML Neo4j FLOT API SemWiktionary Parsing Désérialisation 27
  59. MODÈLE OBJET découplage API Read-only (Ro) API CRUD Definition Word

    Lexical Category Mutable Word Mutable Lexical Category 28
  60. 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
  61. API Recherche dans la base Word hello = Word.find("bonjour"); Accès

    aux relations for (Word synonym : hello.getSynonyms()) println("Synonyme : " + synonym); 29
  62. 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
  63. 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
  64. DISTRIBUTION bibliothèque JAR base de données préremplie 75 Mo à

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

    télécharger choix d’utilisation Ro / CRUD 31
  66. RÉPARTITION cœur : API gestion agile 3 personnes preuve de

    concept en parallèle simuler retours utilisateurs 33
  67. MÉTHODOLOGIE objectifs : livraison & qualité méthodes & outils agiles

    Scrum Planning poker valuation client Kanban 34
  68. GÉNIE LOGICIEL Git Ant automatisation des tâches 35 • jflex

    • compile • junit • parse • doc • package • erase_db • clean
  69. 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
  70. 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
  71. 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é
  72. CONCLUSION 10 types de données sur 23 75% de la

    valeur client performances excellentes accès quasi-immédiat 37
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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