LabMaps#
Note
For small tests, we query both HAL and DBLP (default behavior), but for large retrievals we use HAL only, as it is faster.
Your first lab#
In GISMAP, a LabMap is a class whose instances have three methods:
update_authorsautomatically refresh the members of the lab. It is useful at creation or when a lab evolves.update_publicationsmakes a full refresh of the publications of a lab. All publications from lab members are considered (temporal filtering may be enabled later).expandadds moons, i.e. additional researchers that gravitate around the lab.
The simplest usable subclass of Lab is ListMap, which uses a list of names. For example, consider the former team Gangsta from my Bell Labs days.
[7]:
from gismap.lab import ListMap
lab = ListMap(
author_list=[
"Fabien Mathieu",
"Philippe Jacquet",
"Alonso Silva",
"Anne Bouillard",
"François Durand (hal: fradurand)",
"Amira Alloum",
"Marc-Olivier Buob",
"Mohamed Lamine Lamali",
],
name="Gangsta",
dbs="hal",
)
lab.update_authors()
lab.update_publis()
len(lab.publications)
[7]:
409
Maps can be saved withe the dump method so you don’t have to re-update them all the time.
When you have a populated lab, you can produce a standalone HTML of the collaboration graph with save_html. That graph is a standalone HTML that can be displayed in a notebook or saved for inclusion in a web page (e.g. with iframe).
You can also display it directly inside a notebook:
[8]:
lab.show_html()
Let’s add some context with a few moons.
[9]:
lab.expand(target=4)
[10]:
lab.show_html()
Few things about the generated graph:
Authors are represented with their initials unless some picture url is provided (implicitly or explictly).
Comets are singletons (authors with no co-publications with the other nodes). They are hidden by default. For example, if you only show the moons, Bernard becomes a comet and is hidden.
You can hover an author to get her name. If you click, you have a modal with the list of publications.
The width and length of an edge depend on the number of co-publications. If you click you have a modal with the list of co-publications.
Make your own LabMap#
Gismap is intended to make easy the creation of LabMaps in many contexts.
The easiest way to manage a lab, apart from using ListMaps as shown above, is to specify an internal method _author_iterator that returns Lab authors. When it’s done, you can create/refresh LabMaps as you see fit.
How the iterator works is 100% up to you. Most of the time, this is done by scrapping some Web page(s) (see the gallery for examples), but many other options exist, e.g. read authors from a file, from a LDAP…
For example, this is the entire code required for handling the Solace team.