Olivier R. | 26 Jun 21:03

[discuss] Le projet Dicollecte

Bonjour à tous,

Ainsi que me l'a demandé Sophie, voici une petite présentation du 
nouveau site Dicollecte que j'ai construit ces deux derniers mois.

Au dernier moment imaginable, j'ai pu boucler une version afin de la 
proposer au concours d'innovation de SUN:
http://development.openoffice.org/community_innovation_program.html

Le principe initial, collecter des mots de la part des utilisateurs, n'a 
pas changé, mais j'ai tâché d'améliorer l'ensemble de toutes les 
manières possibles.

La raison initiale de la reconstruction du site était son adaptation au 
nouveau dictionnaire français sur lequel je travaille depuis plus de six 
mois. Comme ce nouveau dico n'est pas encore terminé et que ce n'est pas 
le sujet de ce mail, je passe sur ce point.

Par rapport à l'ancien site (très rudimentaire et d'une conception 
grossière), il n'y a presque que de nouvelles fonctionnalités.

Voici les principales:

# 1. Le site est internationalisable.

Il suffit de traduire une série de fichiers, de créer de nouvelles 
tables dans la base de données et de procéder à quelques réglages pour 
adapter le site aux dictionnaires étrangers. En guise de démonstration, 
j'ai uploadé les dictionnaires anglais et allemand.

# 2. Modification du thesaurus.

Il est possible d'éditer les entrées du thésaurus directement, et pour 
chaque entrée d'ajouter aisément des catégories de significations ou 
d'en soustraire, dans selon l'ordre qu'on veut.
Pour la démonstration de cette fonctionnalité, mieux vaut aller voir 
dans le thesaurus anglais qui est bien plus complet et mieux organisé 
que le thesaurus français. Ce dernier ne propose qu'une seule catégorie 
de synonymes où tout est mélangé pêle-mêle.
Contrairement aux dictionnaires orthographiques, où les modifications 
passent par un procédé de validation des propositions, l'édition du 
thesaurus est directe (car il eût été trop complexe de faire autrement à 
mon humble avis). Cependant, chaque modification est enregistrée dans 
des fichiers de suivi.
Chaque édition d'une entrée bloque l'édition de cette entrée par 
quiconque d'autre durant un temps déterminé.

# 3. Edition des pages personnelles à chaque projet.
Chaque administrateur de projet peut éditer à sa guise cinq pages pour y 
diffuser les informations qu'il désire:
- la page Home pour les dernières nouvelles
- la page Documentation pour y expliquer ce qu'il désire au sujet des 
dictionnaires, des affixes, etc.
- la page FAQ
- la page Download pour y proposer les dictionnaires résultants.
- la page Old news ou archives pour vider la page Home des anciennes 
nouvelles.

Cette édition est un peu "brute", car le bouton "Editer cette page" que 
seuls les admins de projet peuvent voir fait basculer la page en édition 
HTML directe (seul le contenu des pages est accessible, bien sûr).

# 4. Personnalisation des projets.

Outre l'édition de certaines pages du site par les admins, il est 
possible de personnaliser les projets. Je n'ai pas eu le temps d'en 
faire autant que je le souhaitais sur ce point, mais c'est mieux que rien.

    a. Création de sous-dictionnaires orthographiques.
       Chaque projet peut définir un nombre important (c'est codé
       sur un caractère en UTF-8) de sous-dictionnaires auxquels
       il est possible d'assigner les entrées du dico.
       Ce qui permettra de créer des dictionnaires spécialisés.

    b. Qui peut éditer le thésaurus.
       Tous les inscrits? ou seulement les administrateurs et les
       contrôleurs des dictionnaires? C'est au choix de chaque
       projet.

    c. Temps de blocage des entrées du thésaurus quand on commence
       une édition.

    d. Personnalisation des liens vers les ressources linguistiques
       externes.

Cette personnalisation se fait toutefois uniquement par l'écriture des 
fichiers à la création du projet. Rien n'est encore prévu pour y accéder 
depuis le site lui-même. Ensuite, il faudra demander à l'administrateur 
du site (moi, pour l'instant) d'éditer les fichiers de projet pour 
changer ces réglages spécifiques.

# 5. Déclinaison des lemmes et analyse morphologique des formes fléchies.

Si les entrées sont grammaticalement étiquetées ainsi que les règles 
d'affixation de Hunspell, le site peut afficher la morphologie des 
formes fléchies.
Exemple:
http://dicollecte.free.fr/entry.php?prj=fr&id=122977
http://dicollecte.free.fr/entry.php?prj=fr&id=72153

Si vous constatez des erreurs, elles ne sont pas imputables au site mais 
à l'étiquetage du dictionnaire qui est toujours en bêta.

Pour l'instant, seul le dictionnaire français bénéficie de cet avantage 
puisque c'est le seul, à ma connaissance, dont 82% des entrées sont 
grammaticalement étiquetées (par mes soins, vous savez donc qui blamer 
en cas d'erreur) ainsi que la totalité des règles d'affixation.

Cet affichage de la morphologie des mots n'est pas hyper-importante en 
soi, mais permet de vérifier aisément si un drapeau engendre des formes 
erronées.

----------------------------------------------------------------------

Fonctionnement général du site :

Contrairement au premier site qui ne faisait qu'enregistrer les 
propositions des utilisateurs, les dictionnaires sont cette fois partie 
intégrante de la base de données, ainsi que les règles d'affixation.

Hormis ça, le principe de fonctionnement pour l'amélioration des 
dictionnaires orthographiques n'a pas beaucoup changé:
Les utilisateurs proposent d'ajouter, de supprimer ou de modifier des 
entrées, les contrôleurs valident, rejettent ou pinaillent par le 
système de commentaires les propositions. Ensuite, l'administrateur seul 
peut appliquer la proposition sur le dictionnaire lui-même. Seul lui 
peut éditer directement le dictionnaire orthographique.

Pour le thésaurus, comme je l'ai dit, c'est de l'édition directe, car il 
eût été trop compliqué de faire autrement amha. Cette édition est 
permise ou non à tous les inscrits, ou réservée aux utilisateurs  de 
confiance (contrôleurs).

En théorie, ce devait être plus souple que ça, mais le temps m'a manqué 
pour faire mieux. Par exemple, j'avais prévu que les dictionnaires 
orthographiques puissent être directement modifiés par les utilisateurs 
pour étiqueter grammaticalement ou changer le champ lexical, par 
exemple, selon que les entrées fussent ou non verrouillées par 
l'administrateur. J'avais même déjà implémenté cette fonctionnalité pour 
le dictionnaire français afin de boucler l'étiquetage grammatical par la 
communauté, mais je n'ai pas eu le temps d'internationaliser le système, 
et j'ai donc dû carrément l'enlever.

----------------------------------------------------------------------

Vu que c'est toi, Sophie, qui va défendre le projet auprès des décideurs 
(enfin, je présume, car j'ignore tout de comment est censée se dérouler 
la suite), je n'ai pas l'intention de te faire de mauvaises surprises, 
alors voici les lacunes de ce que j'ai proposé.

1. Il y a un bug dans ce que j'ai envoyé! Je m'en suis aperçu le 
lendemain... :( :( Je suis très déçu, car j'avais tout fait pour envoyer 
un projet sans bug, quitte à réduire les fonctionnalités, plutôt que de 
proposer un machin avec plein d'options mais perclus d'erreurs.
Je travaille sur deux PCs, et je sais qu'une fois, j'ai merdé lors d'un 
transfert de l'un à l'autre, effaçant une partie de mon travail du jour. 
J'ai donc tout recorrigé en vitesse, mais je n'ai pas procédé à autant 
de tests que lors de la première mise en œuvre. Résultat, lorsqu'un 
administrateur décide d'appliquer une proposition dans le dictionnaire, 
3 cas possibles:
   a. c'est une nouvelle entrée à ajouter. tout va bien.
   b. c'est une entrée à effacer. ça efface bien l'entrée, mais ça
      renvoie le message: "Nouvelle entrée ajoutée". Pas trop grave.
   c. c'est une entrée à modifier, et là, ça renvoie un beau message
      d'erreur "database error" ou je ne sais plus quoi.
      La requête SQL est erronée. C'est simple comme bonjour à corriger,
      et on se demandera si j'ai seulement testé ce cas. Oui, mais j'ai
      pas eu le temps de tout retester lors de la réécriture.
Cette erreur lors du transfert de fichier a aussi laissé quelques 
scories que j'avais ôtées précédemment, mais ça ne provoque aucune 
erreur (il y a juste deux ou trois pages ou un certain test de sécurité 
est fait deux fois au lieu d'une.)

2. On se demandera peut-être pourquoi je n'ai pas utilisé la librairie 
PDO pour les connexions à la base de données. (C'est une librairie qui 
permet d'employer un code générique pour la connexion à divers types de 
bases de données.) La raison est fort simple. Quand j'ai commencé le 
projet, comme je te l'ai expliqué, je ne prévoyais que de refaire mon 
site pour la gestion du français et ça n'allait pas plus loin. Je 
n'avais pas l'intention de diffuser le code ni de participer au 
programme d'innovation dont je n'avais pas encore connaissance. Comme 
j'avais l'habitude de PostgreSQL, je ne voyais pas de raison de changer 
de méthode. Ensuite, quand j'ai commencé l'adaptation, juste pour voir 
si c'était possible de rendre tout ça facilement international, je ne 
pensais pas qu'il fût possible de boucler quelque chose dans les temps 
(moins de deux mois, ça me semblait court). Ce n'est que sur le tard, 
quand j'ai pensé pouvoir rendre éventuellement quelque chose (et j'étais 
loin de savoir encore quoi), que j'ai réalisé qu'utiliser la librairie 
PDO eût été mieux, mais j'ai toujours eu beaucoup plus urgent à faire.
Bref, Dicollecte veut du PostgreSQL et rien d'autre. Je ne pense pas que 
ce soit rédhibitoire, car ce n'est pas comme si j'avais programmé un 
forum que chacun pourrait installer sur sa base de données. Mais on 
s'étonnera peut-être du choix, ou pas.

3. Une documentation bouclée en hâte, comme tu l'as peut-être déjà 
constaté :/

4. J'ai prévenu une semaine avant la fin de ma participation, mais comme 
tu le sais, c'est que je n'étais pas sûr moi-même de pouvoir rendre 
quelque chose à temps.

5. D'une manière générale, l'ensemble paraîtra peut-être un peu brut de 
décoffrage et pas toujours bien dégrossi. La célérité avec laquelle j'ai 
écrit tout ça explique quasiment tout. Si j'avais eu six mois devant 
moi, au lieu de deux, j'aurais sans doute fait bien des choses 
différemment, et pas forcément dans cet ordre. Il y encore pas mal de 
détails à régler et à améliorer, mais les détails sont parfois longs à 
mettre en oeuvre. J'ai fait au mieux, comme j'ai pu. Bref... ce qui est 
fait est fait.

Maintenant, passons à l'avantage de ce projet. A moins que je ne me 
berce d'illusions (qui sait?), je crois avoir posé le premier socle qui 
dotera peut-être OpenOffice.org de moyens plus conséquent pour 
développer et gérer à l'avenir les dictionnaires, qui jusqu'à présent 
étaient laissés aux soins de qui voudraient bien se pencher sur leur 
sort plus ou moins misérable.

Voilà. Je ne suis probablement qu'un outsider au milieu des autres 
participants, mais qu'importe. J'ai la plus grande difficulté à avoir du 
recul vis-à-vis de ce que j'ai fait. Et je ne sais pas du tout qu'en penser.

Si quiconque a des questions... J'ai sans doute omis bien des choses.

------------------------------------------------------------------------

J'en viens maintenant à mes questions:
- qui va juger de tout ceci? la communauté d'OOo? SUN? les project leads?
- est-il normal que je n'ai reçu aucun message depuis que j'ai envoyé le 
projet (je l'ai même envoyé deux fois par mesure de sécurité)? Pas de 
"bien reçu, merci, on vous recontacte". Aucune question. Silence radio 
absolu.

Cordialement,
Olivier
http://dicollecte.free.fr/

Gmane