Les réseaux sont “l’autre” espace géographique, souvent négligés dans les approches classiques trop focalisées sur l’espace topographique des étendues euclidiennes des surfaces projetées du globe. Dans cet exercice, nous allons examiner comment les réseaux peuvent être formalisés sous formes de données informatiques et comment ces dernières peuvent être analysés visuellement.

La notion mathématique de graphe, vue en cours, est importante à garder à l’esprit.

Songez aussi que du point de vue réseau, tout espace, y compris celui d’un texte, peut être traité comme un espace géographique. Si vous vous intéressez particulièrement à la représentation des flux (migration, matières premières, énergie etc.) voir aussi: “Visualisation de flux géographiques” (PDF, 10MB).

Quelques exemples

The Valaisan mobility network
Exemple 1: Un réseau de mobilité. Voir l’entrée A Valaisan Mobility Network Pour une explication plus détaillée.
Stockholm, ambassade suisse, 1928-1932, réseau sémantique
Exemple 2: Réseau de cooccurrence des lemmes les plus fréquents dans les rapports de l’ambassade de Stockholm, 1928-1932. Seuls les lemmes politiquement signifiants sont conservés (excluant,, e.g. « année » or « voir »). Disposition Fruchterman-Reingold, poids des arrêtes: fréquence de cooccurrence des lemmes; taille des cercles proportionnelle à la fréquence des lemmes. Le socialisme et les mouvements de la classe ouvrière sont des sujets particulièrement importants durant cette période.
Who voted for whom in the Wikipédia sysops elections ?
Exemple 3: Le réseau de votations dans le cadre d’élections de sys_ops dans le Wikipédia francophone. Voir l’article “La réalité c’est moi” – Power Structures in the French Wikipedia pour plus de détails.

Télécharger les données

Vous avez besoin de données pour tester le logiciel. Il y a deux possibilités:

  • Plus difficile: Téléchargez un set de données de votre choix en format GML depuis le site GitHub de Gephi.
  • Plus facile: Téléchargez le fichier unine_exercice2.zip depuis le site du cours. Décompressez le contenu de l’archive zip dans un dossier de votre choix. Vous trouverez 3 fichiers:
    • plz6_edges.csv : [arrêtes] données sur la pendularité entre des régions postales, c’est-à-dire le nombre de déplacements.
    • plz6_nodes.csv : [nœuds] données sur la pendularité entre des régions postales, c’est-à-dire les lieux (régions postales).
    • lesmiserables.gml: compte de cooccurrence des personnages du roman éponyme de Victor Hugo dans les chapitres du roman

Analyse du contenu des fichiers

Il est impossible de bien comprendre ce que vous faites si vous ignorez la structure de vos données. Regarder à l’intérieur d’un fichier informatique permet souvent de le démystifier et de bien mesurer les attentes quant aux résultats de son analyse. La meilleure approche pour voir les données brutes est un éditeur de texte simple comme Visual Studio Code (le choix d’un grand nombre de programmeurs actuels). Sur macOS, je recommande vivement son installation, vu que ce système d’exploitation n’a pas d’éditeur de texte simple installé d’office. Sur Windows, vous pouvez utiliser notepad (installé d’office, mais ne disposant pas coloration syntaxique).

  • Dans le texte brut des fichiers, localisez les noeuds (nodes) du graphe.
  • Localisez les liens (edges).
  • Quelles autres variables voyez vous?

Une fois que vous avez repéré ces trois classes d’éléments, faites-moi signe s.v.p.

Cytoscape_GML
Exemple de contenu d’un fichier GML

Analyse visuelle avec Cytoscape

Vous aurez besoin d’un logiciel pour visualiser les données. Il y a plusieurs choix possibles, évidemment. Ici, nous allons utiliser Cytoscape.

Le logiciel Cytoscape a été développé par des biologistes. Il peut cependant être utilisé pour analyser n’importe quel réseau, comme les réseaux de mobilité, les réseaux politiques ou les réseaux sémantiques.

Installation

Si ce n’est pas déjà fait, installez Cytoscape. Pour cela, téléchargez la dernière version de Cytoscape pour votre système d’exploitation. Puis lancez le script d’installation (généralement, cela se fait par un double-click sur l’icône du programme d’installation).

Charger les données dans Cytoscape

Si vous avez téléchargé les données de l’exercice, chargez les données GML et CSV. Si vous avez trouvé vos propres données, choisissez la marche à suivre adaptée en fonction du type de vos données.

Données GML

import_network_from_file

Cliquez sur le bouton “Import Network from File“.

Dans la boite de dialogue, naviguez vers le dossier où vous avez décompressé les données et choisissez le fichier lesmiserables.gml (ou un autre fichier gml). Sélectionnez-le.

Cliquez sur OK dans la boîte de dialogue qui suit.

Le réseau devrait s’afficher sur votre écran.

Données CSV

import_network_from_file

Cliquez sur le bouton “Import Network from File“.

Dans la boite de dialogue, naviguez vers le dossier où vous avez décompressé les données et choisissez le fichier plz6_edges.csv.

Lorsque vous aurez ouvert le fichier, une boîte de dialogue s’ouvre. :

Dites au logiciel quelle colonne est origine (source) et laquelle la destination (Target) des arrêtes.

Cliquez sur OK dans la boîte de dialogue. Le réseau devrait s’afficher sur votre écran. Mais les nœuds sont dépourvus de noms. Il vous sera difficile d’interpréter les résultats de votre analyse dans ces conditions. Nous allons ajouter des variables aux nœuds. Pour cela, cliquez sur le bouton “Import Table from File” et importez, cette fois, plz6_nodes.csv.

This image has an empty alt attribute; its file name is image-1.png

Pour cela, cliquez sur le bouton “Import Table from File” et importez, cette fois, plz6_nodes.csv.

Dans la boîte de dialogue qui s’ouvre, vous voyez qu’il es possible d’associer les valeurs des nœuds à un réseau existant. C’est exactement ce que vous cherchez à faire. Notez le symbole de clef à côté du nom de valeur “id“. Cela signifie que le logiciel va utiliser cette variable comme “clef de jointure”. Dans ce cas précis, les chiffres des colonnes from et to de la table plz6_edges correspondent en effet à ces chiffres d’identification. Si le logiciel rèpère mal la clef de jointure (il aurait pu, par exemple, prendre la colonne PLZ_simple), vous avez la possibilité de désigner manuellement la colonne des identifiants.

À ce stade, vous devriez voir un réseau de nœuds annotés sur votre écran.

Métriques réseau

Calculez les valeurs de degré entrant et sortant, la betweenness, la shortest path length etc.

Demandez à Cytoscape d’analyser un réseau (plz ou lesmiserables ou un autre que vous auriez importé):

Cytsocape_Analyze Network

Votre réseau est-il directionnel ou non-directionnel? Sélectionnez l’option appropriée avant l’analyse.

Cytoscape_Directionnal

Le processus d’analyse ajoute des variables de métrique réseau aux nœuds et aux arrêtes. Vous pourrez les exploiter par la suite, notamment en les liant à des représentations visuelles. Une boite de dialogue des résultats globaux de l’analyse devrait aussi s’ouvrir lorsque vous cliquez sur OK

Faites une analyse globale de votre réseau

La boîte de dialogue vous permet d’explorer la structure générale de votre réseau. Comment interprétez-vous, par exemple, la distribution (histogramme) des degrés sortants (out-degree)?

Vous pouvez aussi observer les corrélations entre diverses métriques. Dans le menu, choisissez : Tools > NetworkAnalyzer > Network Analysis > Plot Parameters…

Tentez d’expliquer ces corrélations. Par exemple: comment expliquez vous la corrélation entre Degree et AverageShortestPathLength de la figure ci-dessous?

Visualisez le variables

Dans le panneau de gauche, sélectionnez l’onglet supérieur Style et l’onglet inférieur Node. Liez la métrique réseau BetweennessCentrality à la taille des cercles (tip: “Lock node width and height“):

Cytoscape_Visualise

Il est possible de peaufiner ce mapping en double-cliquant sur le mini-graphique. Mappez la taille des cercles entre 10 et 100:

Cytoscape_map_continupus

Testez d’autres paramètres de mapping disponibles pour les nœuds et les arrêtes (onglet inférieur Edge).

Découvrez le fonctionnement du logiciel

Une représentation possible des Misérables. La taille des noeuds représente la betweennness non directionnelle. Que vous disent ces tailles sur les personnages?

Apprenez à découvrir d’autres fonctionnements de base du logiciel par vos propres moyens. Les interfaces de logiciels changent souvent, en effet, il ne faut perdre trop de temps à en “apprendre” le fonctionnement par cœur. Une compétence bien plus essentielle en informatique est de savoir oser se débrouiller face à l’inconnu en développant son intuition et en consultant la documentation du logiciel.

Changez l’apparence des nœuds, des arrêtes et de l’arrière fonds de la visualisation selon vos souhaites. Faites en sorte que les noms de vos nœuds s’affichent à côté ou à l’intérieur des cercles qui les représentent.

Changez l’agencement spatial

Choisissez un agencement spatial. Ici Edge-weighted Force directed avec option weight (le poids des liens est pris en compte):

Cytoscape_Layout

L’exécution de l’algorithme peut durer quelques secondes. Testez ensuite Edge-weighted Spring Embedded, option (none).

Cytoscape_NetworkExample

Analysez et commentez les résultats:

  • Combien de nœuds?
  • Combien d’arêtes?
  • Combien de composantes?
  • Prenez un nœud au hasard et déterminez
    • Son degré entrant
    • Son degré sortant

Enlevez les loops (liens des noeuds avec eux-mêmes):

Cytoscape_RemoveLoops

Re-testez avec des algorithmes d’agencement.

Sélectionnez une partie du réseau et examinez leurs attributs (tip: Show selected):

Cytoscape_ExploreAttributes

Sélectionnez une partie du réseau et exportez-la comme un nouveau réseau:

Recalculez les métriques réseau et refaites des agencements spatiaux.

Déplacez les nœuds manuellement:

Cytoscape_DiplaceManually

Testez l’option “Bundle edges”:

Cytoscape_BundleEdges

Que fait cette option? Quels sont ses avantages cartographiques?

Interprétez vos observations en termes géographiques. Que peut-on dire du territoire à partir de vos observations, y compris si le territoire est un livre?

Exercices Optionnels

Le Hive Plot

Transformez la représentation de votre réseau en HivePlot à l’aide de HiveR. Pour placer les nœuds sur les axes, il est possible, par exemple, de grouper les codes postaux par les deux premiers chiffres…

La ligne de commande de Cytoscape

Cytoscape possède une ligne de commande pour les tâche répétitives. On peut la trouver à des endroits différents, et sous des noms différents en fonction de la version de Cytoscape:

Cyroscape_CommandLineDialog

Dans le champ Command de la fenêtre qui s’affiche écrivez en une seule ligne en changeant le chemin vers votre dossier, votre fichier et vos noms de colonne :

network import file 
file="/votre/dossier/wikitractatus.xls" 
indexColumnSourceInteraction=1 
indexColumnTargetInteraction=2 
firstRowAsColumnNames=true

et pressez sur la touche Retour de votre clavier.

Le réseau devrait s’afficher sur votre écran

Fermez la fenêtre “Command line”.

  •  
  •  
  •  
  •  
  •