Flask app

cillex graphsearch

Documentation

Chaîne de traitement de l’information - HackMD

left

Cillex est un projet Service à valeur ajoutée financé par ISTEX. Cillex est développé au Laboratoire Toulousain CLLE (Cognition Langues Langage Ergonomie) sous la direction de Bruno Gaume, avec Yannick Chudy, Emmanuel Navarro et Pierre Magistry.

La plus-value de cillex réside dans la NAVIGATION, les CARTES et les MESURES produites sur les archives numériques d’ISTEX. L’utilisateur peut ainsi mieux cibler sa recherche ou explorer les collections d’ISTEX pour les analyser ou y découvrir de nouvelles connaissances.

L’utilisateur peut par exemple comprendre comment neuf auteurs ont collaboré pour rédiger vingt documents.

Chaîne de traitement de l’information

I. Formuler une requête



(1)–>API WEB–>(2)

On peut formuler une requête à l’API d’ISTEX de plusieurs manières :

II. Transformer les retours de l’API ISTEX en Graphes



(2)–>APIistex2csv–>(3)

L’API ISTEX retourne une liste de métadonnées sur N articles en format JSON. Ces métadonnées sont alors transformées en un tableau de N lignes en format CSV (Une ligne par document).



(4)–>réification–>(5)

Chacune des lignes du tableau ci dessus sera considérée comme un sommet du graphe (un sommet de type document ). Chacune des cellules d’une ligne est considérée comme une propriété du document correspondant (son titre, son score, …).

Si on ajoute les deux caractères «%+» devant l’entête d’une colonne, alors chacune des valeurs présentes dans la colonne, sera considérée comme un sommet du graphe (réification). Ceci permet par exemple de considérer les auteurs des documents comme des sommets du graphe (avec la colonne «%+auteurs»).

Par défaut, seront considérés comme sommets : les documents (systématiquement), les auteurs (avec la colonne «%+auteurs»), les refBibsAuteurs (avec la colonne «%+refBibsAuteurs»), les keywords (avec la colonne «%+keywords») et les catégories (avec la colonne «%+catégories»).

Pour faciliter leurs identificaions, une forme est associée à chaque type de sommet:

Par exemple http://calc.padagraph.io/cillex-exemple_nlp_graph_10 est le tableau .csv pour la requête libre « nlp graph » avec une réification par défaut.



(6bis)<–>Import/Export

On peut Exporter et Importer le tableau ci-dessus. Cela permet de travailler en collaboratif sur le tableau pour ajuster la réification selon les choix de l’utilisateur ou/et modifier des données (ajouts, suppression, corrections). Il suffit pour cela d’envoyer l’adresse du tableau (http://calc.padagraph.io/cillex-{calc-id}) aux personnes avec qui on veut collaborer sur le corpus extrait de la collection ISTEX encodé dans ce tableau. Le tableau ainsi ajusté pourra ensuite être importé dans cillex pour être étudié.



(6)–>csv(%+)2graph–>(7)

C’est ici qu’on construit le graphe à partir du tableau réifié ci-dessus.

ATTENTION! Si aucune colonne du tableau n’a été réifiée, alors seuls les documents sont les sommets du graphe qui est alors sans arête.

Ce graphe n’a pas d’arête, il n’a donc pas de structures.

III. Analyser les structures du graphe ainsi construit



(8=GRAPHE)–>Métrologie->(Affichage)

On peut afficher les propriétés caractéristiques du GRAPHE (Son pédigrée: Densité, L, C …), ses clusters selon plusieurs métriques, la labelisation de ses clusters selon plusieurs métriques. Les métriques sont défnies par le type de réification (voir : (4)–>réification–>(5))
L’utilisateur peut indépendament choisir une métrique :

L’utilisateur peut librement croiser différentes structures du GRAPHE qui l’intéresse sur une même carte.

(8=GRAPHE)–>Expansion–>(9)

On peut enrichir le GRAPHE avec les résultats d’une nouvelle requête.

(8=GRAPHE)–>Navigation–>(10)

Le GRAPHE ainsi obtenu peut posséder plusieurs centaines de sommets et plusieurs milliers d’arcs (documents–>auteurs, documents–>keywords, documents–> refBibAuteurs, documents–>categories, ... ).
Aussi pour aider à analyser les structures présentes dans le GRAPHE, on navigue sur des sous parties du GRAPHE qui sont extraites par proxémie pour être cartographiées dans graphsearch.

Démonstrateur ISTEX

“Ce démonstrateur permet l’accès à une archive numérique de revues, d’ouvrages scientifiques et de corpus de textes à une échelle inégalée en France (Plus de 21 millions de documents, 54 millions d’Euros consacrés aux acquisitions) ;”

Ce démonstrateur illustre les différents aspects de l’API ISTEX, de la recherche à l’affichage des résultats, en passant par l’utilisation des facettes. Des infobulles sont disponibles sur l’ensemble des fonctionnalités pour vous guider.

http://demo.istex.fr/
https://api.istex.fr/documentation/

Graphsearch cillex

cillex permet la construction de graphes (documents->propriétés) issus du corpus et retournés par le moteur de recherche ISTEX

Avec les résulats des requêtes à l’api, les documents sont de nouveaux noeuds dans le graphe ainsi que les auteurs, refBibAuteurs, keywords et catégories
Les autres champs conservés et fournis par l’api sont des propriétés des documents.

cillex propose de construire un graphe à partir de plusieurs requêtes successives et d’expansion de noeuds. Selon le type du noeud étendu, une nouvelle requête produit un nouveau graphe qui est fusionné dans un graphe global.
La visualisation proposée est celle d’un graphe local qui contient moins de noeuds.
La sélection des noeuds s’effectue selon des rangs proxémiques ou manuellement.

https://github.com/ynnk/cillex-csv

cillex se compose d’une interface de visualisation ainsi que d’un menu contenant les options des composants du moteur cillex

Interface de visualisation

Interaction avec le graphe

On déplace le graphe en laissant appuyé le bouton droit de la souris, pour le zoom on utilise la molette.
Le double click souris dans l’espace dés/active la rotation automatique.

Noeuds et arêtes

champ de recherche

Ce champ permet de rechercher dans le graph global un noeud pour l’ajouter dans le local ou de lancer une nouvelle recherche ISTEX en validant la saisie avec le touche enter.
cf composant graph

labels d’informations du graphe

Informations concernant le graph global :
id n noeuds m relations

Cliquer sur le label id pour ouvrir une fenêtre avec le schema et le pedigree du graphe.

racourcis clavier

touche fonction
enter étendre le noeud sélectionné
backspace cacher le noeud sélectionné
+ augmentation de la taille des noeuds
- réduction de la taille des noeuds
, augmentation de la taille des labels
; réduction de la taille des labels
L affichage des labels des labels
N affichage des noeuds
E affichage des arêtes
R rotation du graphe
S vitesse rotation -
D vitesse rotation +

Fiche détaillée

Indique le type d’un noeud, liste ses propriétés ainsi que ses relations.

Actions
Propriétés

Ensemble des propriétés d’un noeuds extrait de l’api ISTEX.

document est un lien vers le document dans le moteur ISTEX.
fulltext est un lien vers le pdf de l’article.

Relations

Les relations entrantes et sortantes du noeud sont listées avec leurs directions.

Filtre des noeuds
Affiche le nombre de noeuds du graphe local courant et permet de filtrer selon certains critères.
Filtre des arêtes
Affiche le nombre de relations du graphe local courant et permet de filtrer selon certains critères.
Layouts
Choix d’un algorithme de layout parmi une liste.
Clustering
Choix d’un algorithme de clustering parmi une liste.
Composants
Ouverture du menu composant

Les composants modifient la structure du graphe global construits à partir des documents retournés par le moteur de recherche et la visualisation dans le navigateur.

Le menu des paramêtres des composants est accessible à l’aide du bouton engrenage:

search (requêtes au moteur istex)

Récuppere un ensemble de document par une requête au moteur ISTEX et les converti en graphe.

https://api.istex.fr/documentation/

Les requêtes sont additives. Chaque requête successive enrichie le graphe global.

q: {query}, {name} ou {keyword}
field: champ specifique de matching pour la requête envoyé ISTEX

results_count: nb de résultats renvoyé par le moteur

Exploration du graph

Exploration du graphe global par extraction des noeuds selon des scénarios de requêtes et de pondération.

reset reset le graph local selon les options sélectionnées.
all_articles : force la présence des articles
weighting : scénario de pondération des arêtes.

length : longueur de propagation.
cut : nombre de noeuds retenus.

expand

L’expansion d’un noeud s’effectue :

labels

Labellisation des clusters

weighting : scénario de pondération des arêtes. voir (#Exploration-du-graph)[composant graph

count : nombre de labels

export

Sauvegarde du graphe construit dans une feuille de tableur en ligne.

calc_id : identifiant du calc
le calc sera sauvegardé vers l’adresse http://calc.padagraph.io/cillex-{calc-id}

import

Import d’un graphe sauvegardé dans une feuille de tableur en ligne.

calc_id : identifiant du calc,
le calc sera importé depuis l’adresse http://calc.padagraph.io/cillex-{calc-id}

Personnalisation des noeuds et arêtes dans le calc sauvegardé.

editer le pad exporté vers http://calc.padagraph.io/cillex-{calc-id}

_ article_categories color[#CCC] width[1] line[dashed]
_ article_refBibAuteurs color[#666] width[1] line[plain]
_ article_auteurs color[#555] width[3] line[plain]
_ article_keywords color[#EEE] width[1] line[plain]
@keywords: #label shape[triangle-top] color[#EEE]
@refBibAuteurs: #label shape[diamond]
@auteurs: #label shape[circle] size[1.3]
@categories: #label shape[triangle-bottom]

Equipe

Nous avons présenté cillex lors des journées ISTEX du 15 et 16 mars 2018.
Regarder la vidéo

Yannick Chudy - Bruno Gaume - Université de Toulouse/CLLE