
\section{Présentation de Gargantext}
La plateforme Gargantext est une plateforme collaborative de fouille
textuelle pour visualiser, annoter et cartographier de grands corpus
de textes numérisés.

A ce jour, la plateforme comptabilise plus de 60 comptes d'accès
(ce qui correspond à une centaine d'utilisateurs car 30 d'entre
eux sont des comptes collectifs), dont 80\% d'étudiants et 20\% de
chercheurs en sachant que nous limitons volontairement l'ouverture des
comptes pour en limiter le coût de la maintenance et privilégier les
nouveaux développements.

A ce jour, la plateforme accepte 8 formats de base de données
différents: des sciences académiques à la presse quotidienne en
passant par des outils d'exploration du Web. Elle mobilise 4 taguers
différents pour les opérations de Text-Mining sur 2 langues :
l'anglais et le français. Le backend de la plateforme est écrit
principalement avec un language orienté object (Python) et est
fondée sur la base de données relationnelle PostgreSQL; le frontend
mobilise essentiellement le langage javascript ce qui permet aux
utilisateur de l'utiliser avec un navigateur web installé sur un
ordinateur personnel, une tablette ou un téléphone mobile.

La plateforme permet à ce jour:

\begin{itemize}
    \item L'extraction des documents pour leur sélection (filtrage, lecture,
sélection des doublons);

    \item L'extraction des multitermes (séquences de N entités d'un -- ou
    plusieurs -- type grammatical donné) et outils d'aide à la
    sélection des listes de termes (que l'on souhaite intégrer à
    l'analyse ou non);

    \item L'annotation des documents et de leurs termes associés;

    \item La construction d'histogrammes historiques avec des filtres
    permettant différents niveaux de granularité différents.

    \item Lexploration des graphes thématiques permettant un
        aller retour entre les analyses statistiques globales et les
        document au niveau local.
\end{itemize}

A partir du retour sur expérience nous permettent déjà de faire
apparaître que nous atteignons les opportunités et les limites d'une
telle plateforme pour le CNRS.

\section{Objectifs de développement}
Les objectifs de développement à moyen et long-terme sont les suivants:

\subsection{Faciliter l'accès}
Pour le moment, le site est optimisé pour un usage sur un ordinateur
personnel. Cependant, un accès via tablette ou smartphone devrait être
privilégié.

\subsection{Accroître la couverture}
- développer de nouvelles collaboration (Avec le CERN en ce moment) ce
qui permet la mise en place de synergies: une thèse au CSI sur le CERN ?
- s'ouvrir aux résaux sociaux et à l'exploration du Web
- Les objectifs de développement sont: augmenter le nombre de langues
: Spanish, Italian, Deutsh, Dutch, Português, Polish, Persan

\subsection{Accueillir (sereinement) les nouvelles fonctionnalités}
Les nouvelles fonctionnalités (différents niveaux de granularité des
analyses, diachronie) accroient la complexité logicielle qui doit être
générique: tous les cas possibles des utilisations doivent être pensés
en amont. Or nous atteignons les limites de la programmation impérative
et nous devons passer à la programmation fonctionnelle pour gérer
simplement la complexité. La première version de Gargantext est écrite
dans un langage impératif qui atteint ses limites. La seconde version de
Gargantext devra intégrer des éléments fonctionnels.


\subsection{Améliorer la fiabilité des analyses}
Dans un futur proche, nous pourrons travailler de manière
collaborative sur des graphes bipartites et diachroniques. Cependant,
en termes de maintenance, la plateforme atteint aujourd'hui les 10
000 lignes de codes. La maintenance devient non négligeable et la
compliexité s'accroît corrélativement (avec un facteur multiplicatif
conséquent pour chaque nouvelle implémentation) aux
dépends du développement de l'intégration de nouvelles idées.
Il s'agit donc de promouvoir une stratégie de tests:
- tests à la compilation: c'est la limite selon nous du langage
dynamiquement compilé, et largement utilisé en science: Python.
- tests avec des valeurs aléatoires
- tests utilisateurs avec analyse des logs


\subsection{Passer à l'échelle du big data}
Passer la base de donnée à l'échelle du cluster.
Lancer les calculs en parallèle pour accélérer le temps de réponse.
Gérer dynamiquement la "concurrency" des processus lancés à travers le
réseau.






