Skip to content

Commit 9b011ff

Browse files
committed
update halathon2022 paris cité
1 parent c4b8532 commit 9b011ff

3 files changed

Lines changed: 154 additions & 48 deletions

File tree

2022_halathon.ipynb

Lines changed: 111 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,26 @@
3333
"name": "stdout",
3434
"output_type": "stream",
3535
"text": [
36-
"nb de DOI importés depuis fichier \t1113\n"
36+
"nb de DOI importés depuis fichier \t500\n"
3737
]
3838
}
3939
],
4040
"source": [
4141
"## option A : utiliser un fichier local \n",
4242
"\n",
43-
"utiliser_fichier_local = True # True pour oui False pour non\n",
43+
"utiliser_fichier_local = True\n",
4444
"\n",
4545
"if utiliser_fichier_local : \n",
4646
" ## un fichier local placé dans le dossier *data*\n",
4747
" ## doit être un fichier .csv avec encodage utf8 et ',' comme séparateur\n",
4848
" ## avec au moins une colonne *doi* \n",
49-
" #(pour scopus remplacer DOI par doi)\n",
50-
" df_mydois = pd.read_csv(\"data/2022-04-sciences-ipgp-scopus.csv\", usecols=[\"doi\"]) \n",
49+
" ## precier le nom de cette colonne (DOI, doiId_s etc. )\n",
50+
" doi_col_name = \"DOI\"\n",
51+
" df_mydois = pd.read_csv(\"data/2022-05-05-scopus-sci-ipgp.csv\", usecols=[doi_col_name])\n",
52+
" # dans la suite du code la colonne doit être nommée doi\n",
53+
" df_mydois.rename(columns = {doi_col_name : \"doi\"}, inplace = True)\n",
54+
" ## limiter le nombre de ligne/publication\n",
55+
" df_mydois = df_mydois[:500]\n",
5156
" #df_mydois = pd.read_csv(\"data/up/2021_12_02_scopus_fac_sh__doi.csv\", usecols=[\"doi\"]) \n",
5257
" print(f\"nb de DOI importés depuis fichier \\t{len(df_mydois)}\")\n",
5358
"else : \n",
@@ -101,12 +106,15 @@
101106
"name": "stdout",
102107
"output_type": "stream",
103108
"text": [
104-
" nb de DOI a traiter \t1113\n",
105-
" /!\\ temps estimé ~37 minutes\n"
109+
" nb de DOI a traiter \t500\n",
110+
" /!\\ temps estimé ~17 minutes\n"
106111
]
107112
}
108113
],
109114
"source": [
115+
"# retrait des publications sans DOI\n",
116+
"df.dropna(subset=[\"doi\"], inplace = True)\n",
117+
"# feedback nb de DOI et tps de traitement\n",
110118
"print(f\" nb de DOI a traiter \\t{len(df)}\")\n",
111119
"print(f\" /!\\ temps estimé ~{round(len(df) * 40/1200)} minutes\")"
112120
]
@@ -129,7 +137,7 @@
129137
"name": "stdout",
130138
"output_type": "stream",
131139
"text": [
132-
"nb DOI a verifier dans HAL 1113\n",
140+
"nb DOI a verifier dans HAL 500\n",
133141
"hal 10% \n",
134142
"hal 20% \n",
135143
"hal 30% \n",
@@ -139,9 +147,8 @@
139147
"hal 70% \n",
140148
"hal 80% \n",
141149
"hal 90% \n",
142-
"hal 100% \n",
143150
"hal 100%\n",
144-
"nb de DOI après retrait de ceux en TI Dans HAL 888\n"
151+
"nb de DOI après retrait de ceux en TI dans HAL 411\n"
145152
]
146153
}
147154
],
@@ -150,7 +157,7 @@
150157
"df_hal = enrich_w_hal(df) # renseigner df[:50].copy() pour tester uniquement sur les 50 premiers DOI\n",
151158
"#retirer ce qui est déjà déposé avec fichier\n",
152159
"df_no_file = df_hal[ df_hal[\"submitType\"] != \"file\" ].copy()\n",
153-
"print(f\"nb de DOI après retrait de ceux en TI Dans HAL {len(df_no_file)}\")"
160+
"print(f\"nb de DOI après retrait de ceux en TI dans HAL {len(df_no_file)}\")"
154161
]
155162
},
156163
{
@@ -163,17 +170,17 @@
163170
"name": "stdout",
164171
"output_type": "stream",
165172
"text": [
166-
"nb DOI a verifier dans upw \t888\n",
173+
"nb DOI a verifier dans upw \t411\n",
167174
"upw 10% \n",
168175
"upw 20% \n",
169176
"upw 30% \n",
170177
"upw 40% \n",
171178
"upw 50% \n",
172-
"upw 59% \n",
173-
"upw 69% \n",
174-
"upw 79% \n",
175-
"upw 89% \n",
176-
"upw 99% \n",
179+
"upw 60% \n",
180+
"upw 70% \n",
181+
"upw 80% \n",
182+
"upw 90% \n",
183+
"upw 100% \n",
177184
"upw 100%\n"
178185
]
179186
}
@@ -185,7 +192,7 @@
185192
},
186193
{
187194
"cell_type": "code",
188-
"execution_count": null,
195+
"execution_count": 8,
189196
"id": "2b7c568d",
190197
"metadata": {},
191198
"outputs": [],
@@ -198,18 +205,63 @@
198205
},
199206
{
200207
"cell_type": "code",
201-
"execution_count": null,
208+
"execution_count": 9,
202209
"id": "f79cff8b",
203210
"metadata": {},
204-
"outputs": [],
211+
"outputs": [
212+
{
213+
"name": "stdout",
214+
"output_type": "stream",
215+
"text": [
216+
"doi problem w permissions 10.1038/s41598-022-10647-5\n",
217+
"10.1515/ijmr-2005-0215 publishedVersion accepted ! ouraaaaah \n",
218+
"10.1083/jcb.202110044 publishedVersion accepted ! ouraaaaah \n",
219+
"10.1093/gji/ggac026 publishedVersion accepted ! ouraaaaah \n",
220+
"10.1093/gji/ggac005 publishedVersion accepted ! ouraaaaah \n",
221+
"doi problem w permissions 10.1016/j.rinp.2022.105443\n",
222+
"10.1029/2021GL095557 publishedVersion accepted ! ouraaaaah \n",
223+
"10.1103/PhysRevB.105.165403 acceptedVersion , no embargo\n",
224+
"doi problem w permissions 10.1063/5.0081481\n",
225+
"doi problem w permissions 10.1063/5.0082016\n",
226+
"doi problem w permissions 10.1063/5.0081408\n",
227+
"10.1029/2021JB023715 publishedVersion accepted ! ouraaaaah \n",
228+
"10.1029/2022JB024131 publishedVersion accepted ! ouraaaaah \n",
229+
"doi problem w permissions 10.3847/1538-4365/ac45f7\n",
230+
"10.1107/S1600576722001406 acceptedVersion , no embargo\n",
231+
"doi problem w permissions 10.1515/crelle-2021-0088\n",
232+
"10.1109/TED.2022.3145767 acceptedVersion , no embargo\n",
233+
"doi problem w permissions 10.1073/pnas.2115258119\n",
234+
"10.1029/2021GL097156 publishedVersion accepted ! ouraaaaah \n",
235+
"10.1063/5.0079588 publishedVersion accepted ! ouraaaaah \n",
236+
"10.1029/2021JD036140 publishedVersion accepted ! ouraaaaah \n",
237+
"10.1029/2021GL096990 publishedVersion accepted ! ouraaaaah \n",
238+
"doi problem w permissions 10.1103/PhysRevD.105.064061\n",
239+
"10.1103/PhysRevB.105.125420 acceptedVersion , no embargo\n",
240+
"10.1103/PhysRevB.105.125112 acceptedVersion , no embargo\n",
241+
"10.1242/dev.200159 publishedVersion accepted ! ouraaaaah \n",
242+
"10.1063/5.0083282 publishedVersion accepted ! ouraaaaah \n",
243+
"10.1126/science.abo5791 acceptedVersion , no embargo\n",
244+
"10.1083/jcb.202011085 publishedVersion accepted ! ouraaaaah \n",
245+
"10.1103/PhysRevLett.128.094503 acceptedVersion , no embargo\n",
246+
"10.1182/BLOODADVANCES.2021005983 publishedVersion accepted ! ouraaaaah \n",
247+
"10.1109/TCDS.2020.2986411 acceptedVersion , no embargo\n",
248+
"10.1103/PhysRevC.105.034334 acceptedVersion , no embargo\n",
249+
"10.1103/PhysRevE.105.034504 acceptedVersion , no embargo\n",
250+
"10.1103/PhysRevC.105.034319 acceptedVersion , no embargo\n",
251+
"doi problem w permissions 10.4230/LIPIcs.STACS.2022.9\n",
252+
"doi problem w permissions 10.4230/LIPIcs.STACS.2022.35\n",
253+
"10.1128/aem.02378-21 acceptedVersion , no embargo\n"
254+
]
255+
}
256+
],
205257
"source": [
206258
"# 2.2. ajouter les possibilités de dépôt via l'API Permissions\n",
207259
"df_upw[\"deposit_condition\"] = df_upw.apply(lambda row : add_permissions(row), axis = 1)"
208260
]
209261
},
210262
{
211263
"cell_type": "code",
212-
"execution_count": null,
264+
"execution_count": 10,
213265
"id": "b09e3df9",
214266
"metadata": {},
215267
"outputs": [],
@@ -228,12 +280,20 @@
228280
},
229281
{
230282
"cell_type": "code",
231-
"execution_count": null,
283+
"execution_count": 11,
232284
"id": "05f25ddb",
233285
"metadata": {},
234-
"outputs": [],
286+
"outputs": [
287+
{
288+
"name": "stdout",
289+
"output_type": "stream",
290+
"text": [
291+
"nb DOI retiré car marqué 'open' dans HAL et repository dans upw 82\n"
292+
]
293+
}
294+
],
235295
"source": [
236-
"df_final = df_permissions\n",
296+
"df_final = df_upw\n",
237297
"df_final.fillna(\"\", inplace = True)# sinon nan sera compris comme une string non vide\n",
238298
"\n",
239299
"## retirer ce qui est dans HAL qui a un lien extérieur et qui est signalé en repository dans upw\n",
@@ -244,10 +304,27 @@
244304
},
245305
{
246306
"cell_type": "code",
247-
"execution_count": null,
307+
"execution_count": 12,
248308
"id": "1b7f56c3",
249309
"metadata": {},
250-
"outputs": [],
310+
"outputs": [
311+
{
312+
"name": "stdout",
313+
"output_type": "stream",
314+
"text": [
315+
"\n",
316+
"Statistiques\n",
317+
"\n",
318+
"nb de DOI a traiter\t\t\t329\n",
319+
"creer ou retrouver la notice 123\n",
320+
"ecrire a l auteur pour appliquer la LRN 119\n",
321+
"selon la licence ajouter le PDF editeur 66\n",
322+
"recuperer le PDF editeur et ecrire a l auteur pour accord 15\n",
323+
"verifier les identifiants de la notice 2\n",
324+
"Name: todo, dtype: int64\n"
325+
]
326+
}
327+
],
251328
"source": [
252329
"# deduire la colonne todo\n",
253330
"df_final[\"todo\"] = df_final.apply(lambda row : deduce_todo(row), axis = 1)\n",
@@ -258,7 +335,7 @@
258335
},
259336
{
260337
"cell_type": "code",
261-
"execution_count": null,
338+
"execution_count": 13,
262339
"id": "b40b4884",
263340
"metadata": {},
264341
"outputs": [],
@@ -274,6 +351,14 @@
274351
"\n",
275352
"df_final.to_csv(\"data\\dois_a_traiter_formules.csv\", index = False)"
276353
]
354+
},
355+
{
356+
"cell_type": "code",
357+
"execution_count": null,
358+
"id": "c37e1cc4",
359+
"metadata": {},
360+
"outputs": [],
361+
"source": []
277362
}
278363
],
279364
"metadata": {

casuhal_utils.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -148,17 +148,24 @@ def add_permissions(row) :
148148
if repository and res.get("version") :
149149
if "publishedVersion" in res["version"] :
150150
print(f"{row.doi} publishedVersion accepted ! ouraaaaah ")
151-
return f"publishedVersion ; {res.get('licence')} ; {res.get('embargo_months')}"
151+
return f"publishedVersion ; {res.get('licence')} ; {res.get('embargo_months')} months"
152152

153153

154-
## si on peut deposer laccepted version dans un délai plus court que la loi
155-
if repository and res.get("version") and res.get("embargo_months") :
154+
## si on peut deposer l'accepted version dans un délai plus court que la loi
155+
if repository and res.get("version") :
156156
if "acceptedVersion" in res["version"] :
157-
# fixer ici l'embargo en dessous duquel on récupère l'info
158-
if isinstance(res["embargo_months"], int): # verifier l'embargo est bien du int
159-
if res["embargo_months"] < 6 :
160-
print(f"{row.doi} acceptedVersion embargo of {res.get('embargo_months')} months")
161-
return f"{res['version']} ; {res.get('licence')} ; {res.get('embargo_months')} months"
157+
# si le champs embargo est absent
158+
if not res.get("embargo_months") :
159+
print(f"{row.doi} acceptedVersion , no embargo")
160+
return f"{res['version']} ; {res.get('licence')} ; no months"
161+
else :
162+
# s'assurer que l'embargo est bien du int
163+
if isinstance(res["embargo_months"], int):
164+
# ___PARAM___ fixer ici le nombre de mois d'embargo en dessous duquel l'info est récupérée
165+
if res["embargo_months"] < 6 :
166+
print(f"{row.doi} acceptedVersion embargo of {res.get('embargo_months')} months")
167+
return f"{res['version']} ; {res.get('licence')} ; {res.get('embargo_months')} months"
168+
162169

163170

164171
def deduce_todo(row) :
@@ -168,23 +175,23 @@ def deduce_todo(row) :
168175

169176
#1. si possible archiver la publishedVersion
170177
if "publishedVersion" in str(row["deposit_condition"]) :
171-
return "recuperer PDF publisher et mailto auteur pour accord"
178+
return "recuperer le PDF editeur et ecrire a l auteur pour accord"
172179

173180
#2. si publisher license AND NOT oa via reop
174181
if row["oa_publisher_license"] and not row["oa_repo_link"] :
175-
return "selon licence ajouter PDF publisher"
182+
return "selon la licence ajouter le PDF editeur"
176183

177184
#3. si LRN applicable envoyer email incitation
178185
if row["upw_state"] != "open" and row["has_issn"] :
179-
return "mailto auteur pour appliquer LRN"
186+
return "ecrire a l auteur pour appliquer la LRN"
180187

181188
#4. si c'est dans HAL, sans lien extérieur et pourtant dispo via upw
182189
if row["halId"] and row["linkExtId"] == "" and row["upw_state"] == "open" :
183-
return "verifier identifiants notice"
190+
return "verifier les identifiants de la notice"
184191

185192
#4. si ce n'est pas dans HAL
186193
if row["halId"] == "" :
187-
return "creer/retrouver notice"
194+
return "creer ou retrouver la notice"
188195

189196

190197

readme.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
Code réalisé dans le cadre du [CasuHalathon 2021](https://casuhal2021.sciencesconf.org/resource/page/id/8) permettant de repérer les publications d'un établissement pouvant être déposées en texte intégral dans HAL. Le code récupère des données sur les publications et déduit des actions à réaliser. Les actions sont à réaliser manuellement.
2+
Code initié dans le cadre du [CasuHalathon 2021](https://casuhal2021.sciencesconf.org/resource/page/id/8) et repris lors de Halathons institutionnels. Le code repère les publications d'un établissement pouvant être déposées en texte intégral. Les données sur les publications sont récupérées (HAL, Unpaywall, Permissions de OA.Works) et des actions à réaliser sont déduites. Les actions sont à réaliser manuellement.
33

44

55
## Fonctionnement
@@ -8,23 +8,23 @@ Code réalisé dans le cadre du [CasuHalathon 2021](https://casuhal2021.sciences
88

99
Cinq actions, à réaliser manuellement, sont différenciées :
1010

11-
* **Récupérer le PDF publisher et mailto auteur pour accord** :green_book: :pencil:
11+
* **Récuperer le PDF éditeur et écrire a l'auteur pour accord** :green_book: :pencil:
1212

1313
La publication n'est pas en accès ouvert mais la politique du publisher autorise le partage en archive de la version éditée (eg. la revue [Physical Review B](https://aurehal.archives-ouvertes.fr/journal/read/id/153339)). Reste alors à contacter l'auteur pour avoir son accord.
1414

15-
* **Selon licence ajouter PDF publisher** :green_book:
15+
* **Selon la licence ajouter le PDF éditeur** :green_book:
1616

17-
La publication est en accès ouvert sur le site du publisher avec la mention d'une licence. Si celle-ci le permet (eg. les Creative Commons) ajouter le PDF dans HAL. Nota : le code cible les publications qui ne sont pas déjà dans une archive ouverte (logique de pérennisation).
17+
La publication est en accès ouvert sur le site du publisher avec la mention d'une licence. Si celle-ci le permet (Creative Commons) ajouter le PDF dans HAL. Nota : le code cible les publications qui ne sont pas déjà dans une archive ouverte (logique de pérennisation).
1818

19-
* **Mailto auteur pour appliquer LRN** :pencil:
19+
* **Ecrire à l'auteur pour appliquer la LRN** :pencil:
2020

2121
La publication n'est pas en accès ouvert, solliciter l'auteur afin qu'il applique la Loi pour une République Numérique.
2222

23-
* **Vérifier identifiants notice** :link:
23+
* **Vérifier les identifiants de la notice** :link:
2424

2525
La publication est référencée dans HAL, elle est bien marquée _open access_ dans Unpaywall mais HAL n'a pas fait le lien (métadonnée *linkExtId*). Il faut alors vérifier les identifiants (DOI, Arxiv) de la notice.
2626

27-
* **Créer/retrouver notice** :mag_right:
27+
* **Créer ou retrouver la notice** :mag_right:
2828

2929
Le DOI n'a pas été trouvé dans HAL. Faites une recherche par titre dans HAL afin de rectifier un éventuel oubli du DOI, créer la notice si nécessaire.
3030

@@ -73,7 +73,20 @@ Le DOI n'a pas été trouvé dans HAL. Faites une recherche par titre dans HAL a
7373

7474
### Statistiques
7575

76-
Obtenues pour Université Paris Cité avec des DOIs de 2021 venant de Scopus
76+
77+
Halathon 2022 Université Paris Cité (Faculté Sciences + IPGP). Scopus. Limités aux 500 récentes publications.
78+
```
79+
nb de DOI a traiter 329
80+
81+
creer ou retrouver la notice 123
82+
ecrire a l auteur pour appliquer la LRN 119
83+
selon la licence ajouter le PDF editeur 66
84+
recuperer le PDF editeur et ecrire a l auteur pour accord 15
85+
verifier les identifiants de la notice 2
86+
```
87+
88+
89+
CasuHalathon 2021 Université Paris Cité. Scopus.
7790
```
7891
nb de DOI a traiter 1062
7992
mailto auteur pour appliquer LRN 564
@@ -82,7 +95,7 @@ selon licence ajouter PDF publisher 204
8295
verifier identifiants notice 5
8396
recuperer PDF publisher et mailto auteur pour accord 5
8497
```
85-
Traitements réalisés à Université de Paris (sur 3 semaines)
98+
Traitements réalisés sur 3 semaines
8699
```
87100
DOI traités 200
88101
mails envoyés 96
@@ -91,6 +104,7 @@ notices créées 53
91104
```
92105

93106

107+
94108
Partagez les votres en issue dans github
95109

96110

0 commit comments

Comments
 (0)