EgoMaps#

Every researcher is the center of his/her own universe. With EgoMaps, everyone can visualize that universe!

Concretely, your EgoMap is a co-publication graph containing:

  • The star, i.e. you, the center of the universe

  • The planets, i.e. your co-authors

  • The moons, e.g. the co-authors of your co-authors

By default, EgoMaps comprise up to 50 researchers, selecting first planets (sorted by number of collaborations), then moons (sorted by connectivity).

Important

EgoMaps provide an engaging visualization of a researcher’s egosystem. In essence, they offer an intuitive way to explore and identify the research community or communities surrounding a given individual. By highlighting connections and relationships within a research network, EgoMaps aim to facilitate a deeper understanding of collaborative and thematic clusters in a researcher’s environment.

It is important to emphasize that EgoMaps are not designed nor intended to support any form of quantitative evaluation or ranking of researchers’ work or impact. Any such interpretation or usage is strongly discouraged, as the feature’s primary purpose is to assist with qualitative exploration and visualization of research communities, not research assessment.

Note

Before the introduction of LDB, mixing HAL and DBLP took a lot of time due to DBLP request limitations. Now dual requests can be performed transparently.

Simple case#

For basic scenarios, you just need to enter the name of the researcher. For example:

[1]:
from gismap.lab import EgoMap as Map

celine = Map("Céline Comte")
celine.build()

You can display your EgoMap with show_html and save it with save_html

[2]:
celine.show_html()
© GisMap 2025

Adjusting the size#

Depending on your degree, you may want to adjust the size of your universe with target. You can also personalize the star with a picture.

[3]:
nidhi = Map("Nidhi Hegde (img: https://sites.ualberta.ca/~nidhih/images/circle1.png)")
nidhi.build(target=80)
INFO:GisMap:Multiple entries for Nidhi Hegde in ldb
[4]:
nidhi.show_html()
© GisMap 2025

Not a researcher based in France and working in Computer Science?#

You can specify the DB(s) you want to use.

  • If you work in Computer Science but are not based in France, you should use DBLP;

  • If you are a researcher based in France, HAL should work (example below);

  • If you are not based in France and not working on Computer Science, you should find a developper that can add your DB to Gismap!

[5]:
julie = Map(
    "Julie Pagis (img: https://iris.ehess.fr/docannexe/file/3472/pagis_julie_photo_patrice_normand_2024.jpg)",
    dbs="hal",
)
julie.build()
INFO:GisMap:Multiple entries for Julie Pagis in hal
[6]:
julie.show_html()
© GisMap 2025
[7]:
kathrin = Map(
    "Kathrin Hanauer (img: https://homepage.univie.ac.at/kathrin.hanauer/assets/img/portrait.jpg)",
    dbs="ldb",
)
kathrin.build()
[8]:
kathrin.show_html()
© GisMap 2025

Analyzing sources#

GisMap can help you compare what different databases know about a researcher.

  • Use diff_sources to find publications present in one database but not the other. This is helpful if you want to manually update one database using inputs from another one.

  • Use find_duplicates to spot duplicate entries within a single database. This is helpful if you want to track multiple entries of the same paper (e.g. entered independently by several co-authors).

[9]:
# Compare what HAL and LDB know about Céline Comte
print(celine.star.diff_sources("hal", "ldb"))
=== Only in hal (9) ===
"Modèle de couplage stochastique non-biparti" (2021, conference) - https://hal.science/hal-03219422v1
"0 = 0, c'est le truc du noyau ! Application aux files d'attente" (2019, conference) - https://hal.science/hal-02118156v1
"Performance of a Server Cluster with Parallel Processing and Randomized Load Balancing" (2016, report) - https://hal.science/hal-01306343v1
"Online Stochastic Matching: A Polytope Perspective" (2025, report) - https://hal.science/hal-03502084v6
"Un seul serveur vous manque, et tout est découplé !" (2018, conference) - https://hal.science/hal-01773674v1
"À la racine du parallélisme" (2017, conference) - https://hal.science/hal-01517150v1
"Optimization Trade-offs in Asynchronous Federated Learning: A Stochastic Networks Approach" (2026, report) - https://hal.science/hal-05568760v1
"Rien ne sert de prédire ; il faut servir ancien." (2019, conference) - https://hal.science/hal-02118170v1
"La Grille de Kleinberg, l’Univers et le Reste" (2017, conference) - https://hal.science/hal-01517123v1
=== Only in ldb (3) ===
"Score-Aware Policy-Gradient Methods and Performance Guarantees using Local Lyapunov Conditions: Applications to Product-Form Stochastic Networks and Queueing Systems." (2023, journal) - https://doi.org/10.48550/ARXIV.2312.02804
"Networks of multi-server queues with parallel processing." (2016, journal) - http://arxiv.org/abs/1604.06763
"Stochastic dynamic matching: A mixed graph-theory and linear-algebra approach." (2021, journal) - https://arxiv.org/abs/2112.14457
[10]:
# Find duplicate entries in HAL for Céline Comte
print(celine.star.find_duplicates("hal"))
=== Duplicates in hal (2 groups) ===
  Group 1:
  "À la racine du parallélisme" (2017, conference) - https://hal.science/hal-01517150v1
  "À la racine du parallélisme" (2017, report) - https://inria.hal.science/hal-01476889v3
  Group 2:
  "Dynamic load balancing with tokens" (2019, journal) - https://hal.science/hal-02340255v1
  "Dynamic Load Balancing with Tokens" (2018, conference) - https://hal.science/hal-01758912v2

You can also compare different search strategies for the same database. For example, if a researcher’s HAL pid only captures part of their publications, you can force a fullname search with hal:fullname and compare:

[11]:
from gismap.lab import LabAuthor

author = LabAuthor("Élie de Panafieu")
author.auto_sources("hal")
author.sources
[11]:
[HALAuthor(name='Élie de Panafieu', key='1319887', key_type='pid')]

Once you have identified the pid from the source above, you can compare it with a fullname search:

[12]:
author = LabAuthor("Élie de Panafieu (hal:1319887, hal:fullname)")
print(author.diff_sources(0, 1))
=== Only in hal (0) (0) ===
=== Only in hal (1) (5) ===
"Enumeration and structure of inhomogeneous graphs" (2015, conference) - https://hal.science/hal-01337762v1
"Counting connected graphs with large excess" (2016, conference) - https://hal.science/hal-02166341v1
"Complexity Estimates for Two Uncoupling Algorithms" (2013, conference) - https://inria.hal.science/hal-00780010v2
"0 = 0, c'est le truc du noyau ! Application aux files d'attente" (2019, conference) - https://hal.science/hal-02118156v1
"Of Kernels and Queues: when network calculus meets analytic combinatorics" (2018, conference) - https://hal.science/hal-01889101v1