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

C17904e5ca39a09fdd1dea24b39f57fd?s=128

Matti Schneider

March 09, 2012
Tweet

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. SEMWIK TIONARY 4

  7. SEMWIK TIONARY 1. Contraintes 4

  8. SEMWIK TIONARY 1. Contraintes 2. Vision 4

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

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

    du projet 4
  11. CONTRAINTES 5

  12. 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).
  13. 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).
  14. 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).
  15. 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).
  16. 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).
  17. 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
  18. 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
  19. 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
  20. 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
  21. OBJECTIFS 8

  22. OBJECTIFS données 8

  23. OBJECTIFS données nature 8 nom

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

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

    déf nom
  26. OBJECTIFS données nature définitions le plus de relations possible performance

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

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

    requête : 5 minutes initialisation données : 24h 8
  29. VISION 9

  30. 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.
  31. 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
  32. 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é
  33. 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.
  34. 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.
  35. 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.
  36. IMPLÉMENTATION 14

  37. <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
  38. <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
  39. 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.
  40. 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.
  41. 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.
  42. 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.
  43. 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.
  44. 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.
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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.
  53. 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.
  54. 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.
  55. 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.
  56. 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.
  57. 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é.
  58. 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é.
  59. 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é.
  60. 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é.
  61. 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é.
  62. 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é.
  63. 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é.
  64. <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.
  65. <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
  66. NEO4J 23

  67. NEO4J “orientée graphes” 23

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

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

  70. NEO4J “orientée graphes” …un simple graphe ! transactions indexation nœuds

    spécifiques + Lucene 23
  71. MODÉLISATION 24 Propriétés simples : écriture phonétique… Propriétés multiples :

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

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

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

    : écriture phonétique… Propriétés multiples : définitions…
  75. /ʦ!.ʣø/ … 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…
  76. /ʦ!.ʣø/ … 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…
  77. MODÉLISATION 25 Nature lexicale : verbe, nom commun, adjectif…

  78. adj nom nom MODÉLISATION types partagés nature lexicale, genre… 25

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

    simple …mais commune 25 Nature lexicale : verbe, nom commun, adjectif…
  80. 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…
  81. <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
  82. <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
  83. MODÈLE OBJET 28

  84. MODÈLE OBJET découplage 28

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

    28
  86. MODÈLE OBJET découplage API Read-only (Ro) API CRUD Definition Word

    Lexical Category Mutable Word Mutable Lexical Category 28
  87. 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
  88. API 29

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

  90. API Recherche dans la base Word hello = Word.find("bonjour"); Accès

    aux relations for (Word synonym : hello.getSynonyms()) println("Synonyme : " + synonym); 29
  91. 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
  92. 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
  93. DISTRIBUTION 31

  94. DISTRIBUTION bibliothèque JAR 31

  95. DISTRIBUTION bibliothèque JAR base de données préremplie 75 Mo à

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

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

    télécharger choix d’utilisation Ro / CRUD 31
  98. GESTION DU PROJET 32

  99. RÉPARTITION 33

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

  101. RÉPARTITION cœur : API gestion agile 3 personnes preuve de

    concept en parallèle simuler retours utilisateurs 33
  102. MÉTHODOLOGIE objectifs : livraison & qualité 34

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

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

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

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

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

    Scrum Planning poker valuation client Kanban 34
  108. GÉNIE LOGICIEL 35

  109. GÉNIE LOGICIEL Git 35

  110. GÉNIE LOGICIEL Git Ant automatisation des tâches 35 • jflex

    • compile • junit • parse • doc • package • erase_db • clean
  111. 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
  112. 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
  113. AMÉLIORATIONS 36

  114. AMÉLIORATIONS ajout de relations 36

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

  116. 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é
  117. CONCLUSION 10 types de données sur 23 75% de la

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

    valeur client performances excellentes accès quasi-immédiat 37
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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