query-dd048095e827558ca1adb10443d7a5e9
Exemple de flux de travail DOI-Zotero(Cita)-OpenRefine-QS est réconcilié par OpenRefine. Published inIdéal pour plusieurs articles de différentes revues. À partir d'une liste de DOI. Le champ Exemple de code en Python permettant de récupérer une liste de DOI à partir d'un ISSN (exemple avec Science Fiction Studies)Choisir une base de données. Lancer une requête. Exporter les résultats voulus au format RIS. Extraire une liste de DOI purs (chaque ligne commence par 10.). Il y a un DOI par ligne. )status_code.response ,'Error:'(print :else )'No items found for the specified journal.'(print :else )'DOIs written to "dois.txt"'(print )'\n' + doi(write.file :dois in doi for :file as )'w' ,'dois.txt'(open with # Write DOIs to a text file ]]'items']['message'[data in item for ]'DOI'[item[ = dois ]:'message'[data in 'items' if ()json.response = data # Extract the DOIs from the response :200 == status_code.response if # Check the response status )query_params=params ,base_url(get.requests = response } # Don't increase this number (max quota/threshold for error 400) ,1000 :'rows' ,'type:journal-article,from-pub-date:1973,until-pub-date:2023' :'filter' #'query.container-title': '"Science Fiction Studies"', # Specify the journal's name { = query_params 'https://api.crossref.org/journals/0091-7729/works' = base_url # base_url = 'https://api.crossref.org/works' # Construct the API request URL requests import # https://github.com/CrossRef/rest-api-doc """ @author: Pascaliensis with ChatGPT 3.5 + REST API doc of Crossref Created on Thu Jul 6 10:39:16 2023 """ # -- coding: utf-8 --Titre : ne contient pas = < Langue : ne contient pas = % Extra : ne contient pas = qid Nom : « Final - OK pour QS » Recherche enregistrée finale : liste prête à l'exportation vers QuickStatements. Titre contient : (un par ligne séparé par Au moins une des conditions suivantes) pp. paperback pbk £ $ press isbn Nom : « 4 - book review »Recherche enregistrée 4 : repère quelques compte rendus de lecture. J'ai fait le choix de les supprimer. Titre : contient = < Nom : « 3 : avec hmtl »Recherche enregistrée 3 : repère les codes html dans les titres. À supprimer. Langue : contient = % Nom : « 2 : sans langue »Recherche enregistrée 2 : repère les champs langues vides. Utiliser en, fr, pt, es, ... Extra : contient = qid Nom = « 1 : avec QID »Recherche enregistrée 1 : liste les références qui seront ignorées car déjà présentes dans Wikidata. Dans Zotero, créer des recherches enregistrées qui vont superviser le nettoyage des données : Cet outil se base sur CrossRef, DataCite, etc. (normalement tous les principaux distributeurs de DOI).Attendre un petit peu car cela peut prendre du temps s'il y a beaucoup de DOI (ma limite : 500 à la fois). Copier-coller cette liste de DOI dans Zotero grâce à la baguette magique. Ouvrir le fichier RIS avec Notepad++. Edition > Lignes > Trier : ne garder que les lignes contenant les DOI. Supprimer les débuts de ligne "DO - " par multiremplacements.Il est possible de vérifier que Cita a bien fait son travail avec un test de contrôle : lancer une requête SPARQL pour vérifier (voir plus bas pour la syntaxe à utiliser à partir des DOI). Observer que les références arrivent dans les recherches enregistrées. Attendre un peu. Parfois, Cita bloque donc ne le faire que pour des lots de maximum 200 à la fois.Clic-droit Cita > obtenir les QID Aller dans Ma Bibliothèque pour sélectionner toutes les références.Utiliser Cita pour repérer quels articles sont déjà dans Wikidata. Utiliser des marqueurs colorés _rejeté_QID, _rejeté_BookReview, etc. pour indiquer les articles à ignorer dans le traitement.Problèmes d'encodage de caractères : cédille (François) ou ï (Moïse) ou ü (Pflügers) ou autre : faire une passe de vérification dans le fichier prêt pour QS en cherchant : � Titres tout en majuscules : changer la casse ? Langue : vérifier chacune en fonction du titre (parfois c'est indiqué en alors que c'est fr ou es). EditorialsEnlever les (ça arrive).retractedPublication Pas d'auteur. Titres tout en majuscule : à changer ?Nettoyer le reste des références si besoin : Coller le code : Ouvrir la console Javascript. multiremplacementsNettoyer les codes html dans Zotero avec ;" item(s) updated" + length.ids return }); } }); true :skipDateModifiedUpdate ({save.item await // remplacer par YYYYYYY ));'e' ,/ {2,}/g(replace).fieldID(getField.item ,fieldID(setField.item ;fieldID || mappedFieldID = fieldID let );fieldName ,itemTypeID.item(getFieldIDFromTypeAndBase.ItemFields.Zotero = mappedFieldID let );id(getAsync.Items.Zotero await = item let { )ids of id let( for { () function async(executeTransaction.DB.Zotero await } ;"No items found" return { )length.ids!( if ();search.s await = ids var // chercher XXXXXX );' e' ,'contains' ,fieldName(addCondition.s ;userLibraryID.Libraries.Zotero = libraryID.s ();Search.Zotero new = s var );fieldName(getID.ItemFields.Zotero = fieldID var ;"title" = fieldName varchampsListe des double espace par rien par rien>i</ par rien>i< et YYYYY=e par d'autres séries: >supsup
Use at
- https://query.wikidata.org/sparql
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT DISTINCT ?item ?doi ?itemDescription WHERE {
VALUES ?doi { "10.1002/ab.21963"
"10.1002/ajim.23256"
"10.1016/j.chb.2021.107149"
}
?item wdt:P356 ?doi .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}