gismap 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gismap-0.2.1 → gismap-0.2.2}/HISTORY.md +8 -1
- {gismap-0.2.1 → gismap-0.2.2}/PKG-INFO +1 -1
- {gismap-0.2.1 → gismap-0.2.2}/docs/conf.py +3 -4
- {gismap-0.2.1 → gismap-0.2.2}/docs/reference/lab.md +33 -8
- {gismap-0.2.1 → gismap-0.2.2}/docs/reference/utils.md +1 -1
- {gismap-0.2.1 → gismap-0.2.2}/docs/tutorials/egomap.ipynb +39 -65
- {gismap-0.2.1 → gismap-0.2.2}/docs/tutorials/lab_tutorial.ipynb +28 -13
- {gismap-0.2.1 → gismap-0.2.2}/gismap/gismo.py +2 -2
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/__init__.py +5 -5
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/egomap.py +11 -11
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/expansion.py +3 -3
- gismap-0.2.2/gismap/lab/filters.py +93 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/graph.py +13 -7
- gismap-0.2.1/gismap/lab/lab.py → gismap-0.2.2/gismap/lab/labmap.py +29 -10
- gismap-0.2.2/gismap/lab/lincs.py +44 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/lip6.py +8 -4
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/toulouse.py +3 -3
- {gismap-0.2.1 → gismap-0.2.2}/gismap/sources/hal.py +1 -1
- {gismap-0.2.1 → gismap-0.2.2}/gismap/sources/multi.py +4 -2
- {gismap-0.2.1 → gismap-0.2.2}/pyproject.toml +1 -1
- {gismap-0.2.1 → gismap-0.2.2}/uv.lock +35 -35
- gismap-0.2.1/gismap/lab/filters.py +0 -18
- {gismap-0.2.1 → gismap-0.2.2}/.coveragerc +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.editorconfig +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.gitattributes +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.github/ISSUE_TEMPLATE.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.github/workflows/build.yml +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.github/workflows/docs.yml +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.github/workflows/release.yml +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.gitignore +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.run/All tests.run.xml +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/.run/Generate docs.run.xml +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/AUTHORS.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/CONTRIBUTING.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/README.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/citation.cff +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/favicon.ico +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/index.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/logo.png +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/presentation/authors.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/presentation/contributing.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/presentation/history.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/presentation/index.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/presentation/installation.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/presentation/readme.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/reference/database.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/reference/gismo.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/reference/index.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/docs/tutorials/index.md +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/__init__.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/author.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/gismap.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/lab_author.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/lab/vis.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/search.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/sources/__init__.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/sources/dblp.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/sources/models.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/utils/__init__.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/utils/common.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/utils/logger.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/utils/requests.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/gismap/utils/text.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/tests/__init__.py +0 -0
- {gismap-0.2.1 → gismap-0.2.2}/tests/test_gismap.py +0 -0
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
- Colors and size
|
|
8
8
|
- Groups
|
|
9
9
|
|
|
10
|
+
## 0.2.2 (2025-09-08): Various upgrades
|
|
11
|
+
|
|
12
|
+
- Breaking change: renaming some methods/attributes (e.g. *sun* is now *star* in EgoMap)
|
|
13
|
+
- Graphs now include unconnected non-empty nodes (their display will be an option in the next version)
|
|
14
|
+
- Typos here and there
|
|
15
|
+
- New Lab class: LINCS
|
|
16
|
+
|
|
10
17
|
## 0.2.1 (2025-09-01): Minor VisJS enhancements
|
|
11
18
|
|
|
12
19
|
- Better handling of dark/light mode (should be compatible with Pydata, Jupyter, and System).
|
|
@@ -16,7 +23,7 @@
|
|
|
16
23
|
## 0.2.0 (2025-08-31): EgoMaps!
|
|
17
24
|
|
|
18
25
|
- New lab structure: EgoMap shows the people that revolves around you!
|
|
19
|
-
- New lab method: expansion, which adds *moons* (neighbor
|
|
26
|
+
- New lab method: expansion, which adds *moons* (neighbor researchers).
|
|
20
27
|
- Add filters when building authors and publications.
|
|
21
28
|
- Physic engine changed fo better visualization.
|
|
22
29
|
- Multi-source handling fine-tuned.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gismap
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: GISMAP leverages DBLP and HAL databases to provide cartography tools for you and your lab.
|
|
5
5
|
Project-URL: Repository, https://github.com/balouf/gismap
|
|
6
6
|
Project-URL: Documentation, https://balouf.github.io/gismap
|
|
@@ -46,10 +46,9 @@ extensions = [
|
|
|
46
46
|
]
|
|
47
47
|
|
|
48
48
|
# Remote NB execution
|
|
49
|
-
nbsphinx_execute =
|
|
50
|
-
nbsphinx_execute_arguments = [
|
|
51
|
-
|
|
52
|
-
]
|
|
49
|
+
nbsphinx_execute = "always"
|
|
50
|
+
nbsphinx_execute_arguments = ["--InlineBackend.figure_formats={'svg', 'pdf'}"]
|
|
51
|
+
|
|
53
52
|
|
|
54
53
|
def setup(app):
|
|
55
54
|
app.add_css_file("https://unpkg.com/vis-network/styles/vis-network.min.css")
|
|
@@ -1,45 +1,70 @@
|
|
|
1
1
|
# Laboratory
|
|
2
2
|
|
|
3
|
-
Management of a group of people and their publications is made with the {class}`~gismap.lab.
|
|
3
|
+
Management of a group of people and their publications is made with the {class}`~gismap.lab.labmap.LabMap` abstract class.
|
|
4
4
|
|
|
5
|
+
## LabMaps
|
|
5
6
|
|
|
6
7
|
```{eval-rst}
|
|
7
|
-
.. automodule:: gismap.lab.
|
|
8
|
+
.. automodule:: gismap.lab.labmap
|
|
8
9
|
:members:
|
|
9
10
|
```
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## EgoMaps
|
|
12
13
|
|
|
13
14
|
```{eval-rst}
|
|
14
|
-
.. automodule:: gismap.lab.
|
|
15
|
+
.. automodule:: gismap.lab.egomap
|
|
15
16
|
:members:
|
|
16
17
|
```
|
|
17
18
|
|
|
19
|
+
## Lab library
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
### LIP6
|
|
20
22
|
|
|
21
23
|
```{eval-rst}
|
|
22
24
|
.. automodule:: gismap.lab.lip6
|
|
23
25
|
:members:
|
|
24
26
|
```
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
### Toulouse
|
|
27
29
|
|
|
28
30
|
```{eval-rst}
|
|
29
31
|
.. automodule:: gismap.lab.toulouse
|
|
30
32
|
:members:
|
|
31
33
|
```
|
|
32
34
|
|
|
33
|
-
##
|
|
35
|
+
## Utilities
|
|
36
|
+
|
|
37
|
+
### Lab author
|
|
38
|
+
|
|
39
|
+
```{eval-rst}
|
|
40
|
+
.. automodule:: gismap.lab.lab_author
|
|
41
|
+
:members:
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Graphs
|
|
45
|
+
|
|
46
|
+
```{eval-rst}
|
|
47
|
+
.. automodule:: gismap.lab.graph
|
|
48
|
+
:members:
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### VisJS interface
|
|
34
52
|
|
|
35
53
|
```{eval-rst}
|
|
36
54
|
.. automodule:: gismap.lab.vis
|
|
37
55
|
:members:
|
|
38
56
|
```
|
|
39
57
|
|
|
40
|
-
|
|
58
|
+
### Expansion
|
|
41
59
|
|
|
42
60
|
```{eval-rst}
|
|
43
61
|
.. automodule:: gismap.lab.expansion
|
|
44
62
|
:members:
|
|
45
63
|
```
|
|
64
|
+
|
|
65
|
+
### Filters
|
|
66
|
+
|
|
67
|
+
```{eval-rst}
|
|
68
|
+
.. automodule:: gismap.lab.filters
|
|
69
|
+
:members:
|
|
70
|
+
```
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
"id": "1",
|
|
14
14
|
"metadata": {},
|
|
15
15
|
"source": [
|
|
16
|
-
"Every researcher is the center of her own universe. With EgoMaps, everyone can visualize that universe!\n",
|
|
16
|
+
"Every researcher is the center of his/her own universe. With EgoMaps, everyone can visualize that universe!\n",
|
|
17
17
|
"\n",
|
|
18
18
|
"Concretely, your EgoMap is a co-publication graph containing:\n",
|
|
19
19
|
"\n",
|
|
20
|
-
"- The *
|
|
20
|
+
"- The *star*, i.e. you, the center of the universe\n",
|
|
21
21
|
"- The *planets*, i.e. your co-authors\n",
|
|
22
22
|
"- The *moons*, e.g. the co-authors of your co-authors\n",
|
|
23
23
|
"\n",
|
|
24
|
-
"By default, EgoMaps comprise up to 50 researchers, selecting first planets, then moons."
|
|
24
|
+
"By default, EgoMaps comprise up to 50 researchers, selecting first planets (sorted by number of collaborations), then moons (sorted by connectivity)."
|
|
25
25
|
]
|
|
26
26
|
},
|
|
27
27
|
{
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"id": "2",
|
|
30
30
|
"metadata": {},
|
|
31
31
|
"source": [
|
|
32
|
-
"##
|
|
32
|
+
"## Disclaimer"
|
|
33
33
|
]
|
|
34
34
|
},
|
|
35
35
|
{
|
|
@@ -37,19 +37,17 @@
|
|
|
37
37
|
"id": "3",
|
|
38
38
|
"metadata": {},
|
|
39
39
|
"source": [
|
|
40
|
-
"
|
|
40
|
+
"**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.\n",
|
|
41
|
+
"\n",
|
|
42
|
+
"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."
|
|
41
43
|
]
|
|
42
44
|
},
|
|
43
45
|
{
|
|
44
|
-
"cell_type": "
|
|
45
|
-
"execution_count": null,
|
|
46
|
+
"cell_type": "markdown",
|
|
46
47
|
"id": "4",
|
|
47
48
|
"metadata": {},
|
|
48
|
-
"outputs": [],
|
|
49
49
|
"source": [
|
|
50
|
-
"
|
|
51
|
-
"celine = Map(\"Céline Comte\")\n",
|
|
52
|
-
"celine.build()"
|
|
50
|
+
"## Simple case"
|
|
53
51
|
]
|
|
54
52
|
},
|
|
55
53
|
{
|
|
@@ -57,7 +55,7 @@
|
|
|
57
55
|
"id": "5",
|
|
58
56
|
"metadata": {},
|
|
59
57
|
"source": [
|
|
60
|
-
"
|
|
58
|
+
"For basic scenarios, you just need to enter the name of the researcher. For example:"
|
|
61
59
|
]
|
|
62
60
|
},
|
|
63
61
|
{
|
|
@@ -67,7 +65,10 @@
|
|
|
67
65
|
"metadata": {},
|
|
68
66
|
"outputs": [],
|
|
69
67
|
"source": [
|
|
70
|
-
"
|
|
68
|
+
"from gismap.lab import EgoMap as Map\n",
|
|
69
|
+
"\n",
|
|
70
|
+
"celine = Map(\"Céline Comte\")\n",
|
|
71
|
+
"celine.build()"
|
|
71
72
|
]
|
|
72
73
|
},
|
|
73
74
|
{
|
|
@@ -75,122 +76,95 @@
|
|
|
75
76
|
"id": "7",
|
|
76
77
|
"metadata": {},
|
|
77
78
|
"source": [
|
|
78
|
-
"
|
|
79
|
-
]
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"cell_type": "markdown",
|
|
83
|
-
"id": "8",
|
|
84
|
-
"metadata": {},
|
|
85
|
-
"source": [
|
|
86
|
-
"Depending on your degree, you may want to adjust the size of your universe with `target`."
|
|
87
|
-
]
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"cell_type": "code",
|
|
91
|
-
"execution_count": null,
|
|
92
|
-
"id": "9",
|
|
93
|
-
"metadata": {},
|
|
94
|
-
"outputs": [],
|
|
95
|
-
"source": [
|
|
96
|
-
"fabien = Map(\"Fabien Mathieu\")\n",
|
|
97
|
-
"fabien.build(target=70)"
|
|
79
|
+
"You can display your EgoMap with `show_html` and save it with `save_html`"
|
|
98
80
|
]
|
|
99
81
|
},
|
|
100
82
|
{
|
|
101
83
|
"cell_type": "code",
|
|
102
84
|
"execution_count": null,
|
|
103
|
-
"id": "
|
|
85
|
+
"id": "8",
|
|
104
86
|
"metadata": {},
|
|
105
87
|
"outputs": [],
|
|
106
88
|
"source": [
|
|
107
|
-
"
|
|
89
|
+
"celine.show_html()"
|
|
108
90
|
]
|
|
109
91
|
},
|
|
110
92
|
{
|
|
111
93
|
"cell_type": "markdown",
|
|
112
|
-
"id": "
|
|
94
|
+
"id": "9",
|
|
113
95
|
"metadata": {},
|
|
114
96
|
"source": [
|
|
115
|
-
"##
|
|
97
|
+
"## Adjusting the size"
|
|
116
98
|
]
|
|
117
99
|
},
|
|
118
100
|
{
|
|
119
101
|
"cell_type": "markdown",
|
|
120
|
-
"id": "
|
|
102
|
+
"id": "10",
|
|
121
103
|
"metadata": {},
|
|
122
104
|
"source": [
|
|
123
|
-
"
|
|
105
|
+
"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."
|
|
124
106
|
]
|
|
125
107
|
},
|
|
126
108
|
{
|
|
127
109
|
"cell_type": "code",
|
|
128
110
|
"execution_count": null,
|
|
129
|
-
"id": "
|
|
111
|
+
"id": "11",
|
|
130
112
|
"metadata": {},
|
|
131
113
|
"outputs": [],
|
|
132
114
|
"source": [
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
115
|
+
"nidhi = Map(\"Nidhi Hegde\")\n",
|
|
116
|
+
"nidhi.star.metadata.img = \"https://sites.ualberta.ca/~nidhih/images/circle1.png\"\n",
|
|
117
|
+
"nidhi.build(target=70)"
|
|
136
118
|
]
|
|
137
119
|
},
|
|
138
120
|
{
|
|
139
121
|
"cell_type": "code",
|
|
140
122
|
"execution_count": null,
|
|
141
|
-
"id": "
|
|
123
|
+
"id": "12",
|
|
142
124
|
"metadata": {},
|
|
143
125
|
"outputs": [],
|
|
144
126
|
"source": [
|
|
145
|
-
"
|
|
127
|
+
"nidhi.show_html()"
|
|
146
128
|
]
|
|
147
129
|
},
|
|
148
130
|
{
|
|
149
131
|
"cell_type": "markdown",
|
|
150
|
-
"id": "
|
|
132
|
+
"id": "13",
|
|
151
133
|
"metadata": {},
|
|
152
134
|
"source": [
|
|
153
|
-
"##
|
|
135
|
+
"## Using specific DBs"
|
|
154
136
|
]
|
|
155
137
|
},
|
|
156
138
|
{
|
|
157
139
|
"cell_type": "markdown",
|
|
158
|
-
"id": "
|
|
140
|
+
"id": "14",
|
|
159
141
|
"metadata": {},
|
|
160
142
|
"source": [
|
|
161
|
-
"
|
|
162
|
-
"\n",
|
|
163
|
-
"- Publications with too many authors. They are usually not relevant in fields like computer science.\n",
|
|
164
|
-
"- Publications that look like editorials.\n",
|
|
165
|
-
"\n",
|
|
166
|
-
"Filters can customized. \n",
|
|
167
|
-
"For example, this publication about horse locomotion is wrongly referenced in DBLP:\n",
|
|
168
|
-
"https://dblp.org/rec/journals/sensors/PasquietBTDDF22.html\n",
|
|
169
|
-
"\n",
|
|
170
|
-
"It can be discarded by ignoring all publications about horses."
|
|
143
|
+
"You can specify the DB(s) you want to use. For example, if you are a French researcher not working in computer science, HAL is enough."
|
|
171
144
|
]
|
|
172
145
|
},
|
|
173
146
|
{
|
|
174
147
|
"cell_type": "code",
|
|
175
148
|
"execution_count": null,
|
|
176
|
-
"id": "
|
|
149
|
+
"id": "15",
|
|
177
150
|
"metadata": {},
|
|
178
151
|
"outputs": [],
|
|
179
152
|
"source": [
|
|
180
|
-
"
|
|
181
|
-
"
|
|
182
|
-
"
|
|
183
|
-
"
|
|
153
|
+
"mathilde = Map(\"Mathilde Labbé\", dbs=\"hal\")\n",
|
|
154
|
+
"mathilde.star.metadata.img = (\n",
|
|
155
|
+
" \"https://0.academia-photos.com/282997/7894577/15068468/s200_mathilde.labbe.jpg\"\n",
|
|
156
|
+
")\n",
|
|
157
|
+
"mathilde.build(target=25)"
|
|
184
158
|
]
|
|
185
159
|
},
|
|
186
160
|
{
|
|
187
161
|
"cell_type": "code",
|
|
188
162
|
"execution_count": null,
|
|
189
|
-
"id": "
|
|
163
|
+
"id": "16",
|
|
190
164
|
"metadata": {},
|
|
191
165
|
"outputs": [],
|
|
192
166
|
"source": [
|
|
193
|
-
"
|
|
167
|
+
"mathilde.show_html()"
|
|
194
168
|
]
|
|
195
169
|
}
|
|
196
170
|
],
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"outputs": [],
|
|
33
33
|
"source": [
|
|
34
34
|
"from gismap.lab import LabAuthor\n",
|
|
35
|
+
"\n",
|
|
35
36
|
"maria = LabAuthor(\"Maria Potop\")\n",
|
|
36
37
|
"maria.auto_sources()"
|
|
37
38
|
]
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
"id": "6",
|
|
60
61
|
"metadata": {},
|
|
61
62
|
"source": [
|
|
62
|
-
"This is actually
|
|
63
|
+
"This is actually: Maria has multiple identities in Hal. The warning is there to tell there is a possibility of homonyms but that is not the case here. Note that an author can have many names."
|
|
63
64
|
]
|
|
64
65
|
},
|
|
65
66
|
{
|
|
@@ -88,6 +89,7 @@
|
|
|
88
89
|
"outputs": [],
|
|
89
90
|
"source": [
|
|
90
91
|
"from gismap.sources.hal import HAL\n",
|
|
92
|
+
"\n",
|
|
91
93
|
"celine = LabAuthor(\"Céline Comte\")\n",
|
|
92
94
|
"celine.auto_sources(dbs=[HAL])\n",
|
|
93
95
|
"celine.sources"
|
|
@@ -132,13 +134,13 @@
|
|
|
132
134
|
"id": "14",
|
|
133
135
|
"metadata": {},
|
|
134
136
|
"source": [
|
|
135
|
-
"In GISMAP, a
|
|
137
|
+
"In GISMAP, a LabMap is a class whose instances have three methods:\n",
|
|
136
138
|
"\n",
|
|
137
139
|
"- `update_authors` automatically refresh the members of the lab. It is useful at creation or when a lab evolves.\n",
|
|
138
140
|
"- `update_publications` makes a full refresh of the publications of a lab. All publications from lab members are considered (temporal filtering may be enabled later).\n",
|
|
139
141
|
"- `expand` adds *moons*, i.e. additional researchers that gravitate around the lab.\n",
|
|
140
142
|
"\n",
|
|
141
|
-
"The simplest usable subclass of Lab is `
|
|
143
|
+
"The simplest usable subclass of Lab is `ListMap`, which uses a list of names. For example, consider the executive committee of the LINCS."
|
|
142
144
|
]
|
|
143
145
|
},
|
|
144
146
|
{
|
|
@@ -148,8 +150,18 @@
|
|
|
148
150
|
"metadata": {},
|
|
149
151
|
"outputs": [],
|
|
150
152
|
"source": [
|
|
151
|
-
"from gismap.lab import
|
|
152
|
-
"
|
|
153
|
+
"from gismap.lab import ListMap\n",
|
|
154
|
+
"\n",
|
|
155
|
+
"lab = ListMap(\n",
|
|
156
|
+
" author_list=[\n",
|
|
157
|
+
" \"Tixeuil Sébastien\",\n",
|
|
158
|
+
" \"Kofman Daniel\",\n",
|
|
159
|
+
" \"Baccelli François\",\n",
|
|
160
|
+
" \"Noirie Ludovic\",\n",
|
|
161
|
+
" \"Bassi Francesca\",\n",
|
|
162
|
+
" ],\n",
|
|
163
|
+
" name=\"toy_example\",\n",
|
|
164
|
+
")\n",
|
|
153
165
|
"lab.update_authors()\n",
|
|
154
166
|
"lab.authors"
|
|
155
167
|
]
|
|
@@ -170,7 +182,7 @@
|
|
|
170
182
|
"id": "17",
|
|
171
183
|
"metadata": {},
|
|
172
184
|
"source": [
|
|
173
|
-
"
|
|
185
|
+
"Maps can be saved to you don't have to re-update them all the time."
|
|
174
186
|
]
|
|
175
187
|
},
|
|
176
188
|
{
|
|
@@ -188,7 +200,7 @@
|
|
|
188
200
|
"id": "19",
|
|
189
201
|
"metadata": {},
|
|
190
202
|
"source": [
|
|
191
|
-
"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 (`iframe`
|
|
203
|
+
"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`).\n",
|
|
192
204
|
"\n",
|
|
193
205
|
"You can also display it directly inside a notebook:"
|
|
194
206
|
]
|
|
@@ -238,7 +250,7 @@
|
|
|
238
250
|
"source": [
|
|
239
251
|
"Few things about the generated graph:\n",
|
|
240
252
|
"\n",
|
|
241
|
-
"- Singletons (authors with no co-publications) are
|
|
253
|
+
"- Singletons (authors with no co-publications with the other nodes) are kept by default.\n",
|
|
242
254
|
"- Authors are represented with their initials unless some picture url is provided (implicitly or explictly).\n",
|
|
243
255
|
"- You can hover an author to get her name. If you click, you have a modal with the list of publications.\n",
|
|
244
256
|
"- 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."
|
|
@@ -249,7 +261,7 @@
|
|
|
249
261
|
"id": "25",
|
|
250
262
|
"metadata": {},
|
|
251
263
|
"source": [
|
|
252
|
-
"## Make your own
|
|
264
|
+
"## Make your own LabMap"
|
|
253
265
|
]
|
|
254
266
|
},
|
|
255
267
|
{
|
|
@@ -257,9 +269,11 @@
|
|
|
257
269
|
"id": "26",
|
|
258
270
|
"metadata": {},
|
|
259
271
|
"source": [
|
|
260
|
-
"
|
|
272
|
+
"Gismap is intended to make easy the creation of LabMaps in many contexts.\n",
|
|
261
273
|
"\n",
|
|
262
|
-
"
|
|
274
|
+
"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.\n",
|
|
275
|
+
"\n",
|
|
276
|
+
"How the iterator works is 100% up to you. Most of the time, this is done by scrapping some Web page(s) (see the references for examples), but many other options exist, e.g. read authors from a file, from a LDAP..."
|
|
263
277
|
]
|
|
264
278
|
},
|
|
265
279
|
{
|
|
@@ -275,7 +289,7 @@
|
|
|
275
289
|
"id": "28",
|
|
276
290
|
"metadata": {},
|
|
277
291
|
"source": [
|
|
278
|
-
"The `
|
|
292
|
+
"The `Solace` class automatically builds a LabMap based on https://solace.cnrs.fr/people.html"
|
|
279
293
|
]
|
|
280
294
|
},
|
|
281
295
|
{
|
|
@@ -286,10 +300,11 @@
|
|
|
286
300
|
"outputs": [],
|
|
287
301
|
"source": [
|
|
288
302
|
"from gismap.lab import Solace\n",
|
|
303
|
+
"\n",
|
|
289
304
|
"solace = Solace()\n",
|
|
290
305
|
"solace.update_authors()\n",
|
|
291
306
|
"solace.update_publis()\n",
|
|
292
|
-
"solace.expand(
|
|
307
|
+
"solace.expand()"
|
|
293
308
|
]
|
|
294
309
|
},
|
|
295
310
|
{
|
|
@@ -11,7 +11,7 @@ def make_post_publi(lab):
|
|
|
11
11
|
|
|
12
12
|
Parameters
|
|
13
13
|
----------
|
|
14
|
-
lab: :class:`~gismap.lab.
|
|
14
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
15
15
|
Lab that contains the corpus publications.
|
|
16
16
|
|
|
17
17
|
Returns
|
|
@@ -32,7 +32,7 @@ def make_gismo(lab, vectorizer_parameters=None):
|
|
|
32
32
|
|
|
33
33
|
Parameters
|
|
34
34
|
----------
|
|
35
|
-
lab: :class:`~gismap.lab.
|
|
35
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
36
36
|
Lab that contains publications.
|
|
37
37
|
vectorizer_parameters: :class:`dict`
|
|
38
38
|
Overriding parameters for the Countvectorizer of the gismo.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
from gismap.lab.
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
from gismap.lab.labmap import (
|
|
2
|
+
LabMap as Map,
|
|
3
|
+
ListMap as ListMap,
|
|
4
4
|
)
|
|
5
|
-
from gismap.lab.lip6 import
|
|
6
|
-
from gismap.lab.toulouse import
|
|
5
|
+
from gismap.lab.lip6 import Lip6Full as Lip6Full, Lip6Map as Lip6
|
|
6
|
+
from gismap.lab.toulouse import SolaceMap as Solace, LaasMap as Laas
|
|
7
7
|
from gismap.lab.graph import lab2graph as lab2graph
|
|
8
8
|
from gismap.lab.vis import generate_html as generate_html
|
|
9
9
|
from gismap.lab.egomap import EgoMap as EgoMap
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
from gismap.lab.
|
|
1
|
+
from gismap.lab.labmap import LabMap
|
|
2
2
|
from gismap.lab.lab_author import LabAuthor
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class EgoMap(
|
|
5
|
+
class EgoMap(LabMap):
|
|
6
6
|
"""
|
|
7
7
|
Parameters
|
|
8
8
|
----------
|
|
9
|
-
|
|
9
|
+
star
|
|
10
10
|
args
|
|
11
11
|
kwargs
|
|
12
12
|
|
|
@@ -20,21 +20,21 @@ class EgoMap(Lab):
|
|
|
20
20
|
'Siu-Wai Ho', 'Sébastien Tixeuil', 'The-Dang Huynh', 'Yannick Carlinet']
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
|
-
def __init__(self,
|
|
24
|
-
if isinstance(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
self.
|
|
23
|
+
def __init__(self, star, *args, **kwargs):
|
|
24
|
+
if isinstance(star, str):
|
|
25
|
+
star = LabAuthor(star)
|
|
26
|
+
star.metadata.position = (0, 0)
|
|
27
|
+
self.star = star
|
|
28
28
|
super().__init__(*args, **kwargs)
|
|
29
29
|
|
|
30
30
|
def _author_iterator(self):
|
|
31
|
-
yield self.
|
|
31
|
+
yield self.star
|
|
32
32
|
|
|
33
33
|
def build(self, **kwargs):
|
|
34
34
|
target = kwargs.pop("target", 50)
|
|
35
35
|
group = kwargs.pop("group", "moon")
|
|
36
|
-
self.update_authors(desc="
|
|
37
|
-
self.update_publis(desc="
|
|
36
|
+
self.update_authors(desc="Star metadata")
|
|
37
|
+
self.update_publis(desc="Star publications")
|
|
38
38
|
kwargs["target"] = target - len(self.authors)
|
|
39
39
|
self.expand(group=None, desc="Planets", **kwargs)
|
|
40
40
|
kwargs.update({"target": target - len(self.authors), "group": group})
|
|
@@ -53,7 +53,7 @@ def count_prospect_entries(lab):
|
|
|
53
53
|
|
|
54
54
|
Parameters
|
|
55
55
|
----------
|
|
56
|
-
lab: :class:`~gismap.lab.
|
|
56
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
57
57
|
Reference lab.
|
|
58
58
|
|
|
59
59
|
Returns
|
|
@@ -117,7 +117,7 @@ def get_prospects(lab):
|
|
|
117
117
|
"""
|
|
118
118
|
Parameters
|
|
119
119
|
----------
|
|
120
|
-
lab: :class:`~gismap.lab.
|
|
120
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
121
121
|
Reference lab.
|
|
122
122
|
|
|
123
123
|
Returns
|
|
@@ -150,7 +150,7 @@ def get_member_names(lab):
|
|
|
150
150
|
"""
|
|
151
151
|
Parameters
|
|
152
152
|
----------
|
|
153
|
-
lab: :class:`~gismap.lab.
|
|
153
|
+
lab: :class:`~gismap.lab.labmap.LabMap`
|
|
154
154
|
Reference lab.
|
|
155
155
|
|
|
156
156
|
Returns
|