« GallicaSPARQLBot » : différence entre les versions

De Wikipast
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 5 : Ligne 5 :
Dans un premier temps, le bot cherche, à travers des requêtes SPARQL, l'intégralité des auteurs appartenant à la base de données de la BnF.
Dans un premier temps, le bot cherche, à travers des requêtes SPARQL, l'intégralité des auteurs appartenant à la base de données de la BnF.


Le fichier json de l'auteur est récupéré. Il contient les informations suivantes:
A partir de la liste d'auteur sont récupérés les fichiers json de chaque auteur. Ils contiennent les informations suivantes:
* Sa date/son lieu de Naissance,
* La date/son lieu de Naissance de l'auteur,
* Sa date/son lieu de Mort,
* La date/son lieu de Mort de l'auteur,
* Ses œuvres principales.
* Une liste des œuvres principales de l'auteur,
* Une image de profil de l'auteur (si elle existe).


A partir de ces informations, le bot crée ou modifie la page Wikipast liée à chaque auteur en y ajoutant leurs dates de naissance et de mort et ajoute de la même façon les œuvres principales de l'auteur et leurs pages associées (leurs informations sont elles aussi récupérées à travers les json des œuvres). Ces ajouts sont chacun accompagnés de liens renvoyant vers le site de la BnF et sont normalisés de la façon suivante:
A partir de la liste des œuvres principales de chaque auteur sont récupérés les fichiers json de chaque auteur. Ils contiennent les informations suivantes:
* La date de création de l’œuvre,
* Le type de l’œuvre (Art Graphique, Livre, ...),
* L'Auteur de l’œuvre,
* Une illustration de l’œuvre (si elle existe).
 
A partir de ces fichiers, le bot crée la page Wikipast liée à chaque auteur en y ajoutant un lien vers l'image de profil (si elle existe dans la BnF), leurs dates de naissance et de mort ainsi que ses œuvres principales (uniquement celles contenant une date); une page Wikipast est créée pour chacune de ces œuvres avec une illustration (si elle existe dans la BnF). Ces ajouts sont chacun accompagnés de liens renvoyant vers le site de la BnF et sont normalisés de la façon suivante:


Pour la date de naissance : <pre> 1840.11.14 / Paris 9e. Naissance de Claude Monet. </pre>
Pour la date de naissance : <pre> 1840.11.14 / Paris 9e. Naissance de Claude Monet. </pre>
Ligne 21 : Ligne 28 :


[http://wikipast.epfl.ch/wikipast/index.php/Sym%C3%A9on_le_Nouveau_Th%C3%A9ologien Exemple d'auteur ayant des dates compliqués à gérer]
[http://wikipast.epfl.ch/wikipast/index.php/Sym%C3%A9on_le_Nouveau_Th%C3%A9ologien Exemple d'auteur ayant des dates compliqués à gérer]
Afin d'éviter des collisions entre le nom de plusieurs œuvres ainsi qu'entre le nom d'une œuvre et celui d'un auteur, il a donc été choisi de nommer les œuvres de la façon suivante : Nom de l’œuvre + Nom de l'auteur (Exemple :  Claude Monet de Camille sur son lit de mort (Monet) ).
La Gestion des homonymes utilise la politique du premier arrivé, premier servi. Si nous voulons insérer un auteur et que son nom n'existe pas encore sur Wikipast, alors une page est créée normalement, au contraire, si il existe déjà une page avec le nom de l'auteur alors une page est créée mais son titre sera composé du nom de l'auteur suivi identifiant utilisateur de la Bnf (uid) entre parenthèse (Exemple : .......).


Les pages Wikipast de chacune des œuvres de l'auteur sont aussi créées.  
Chacune des pages explorées par le bot sont agrémentées d'un identifiant BnF (BnF id) et de leur type Wikidata.


Afin d'éviter des collisions entre le nom de plusieures œuvres ainsi qu'entre le nom d'une œuvre et celui d'un auteur, il a été choisi de nommer ces pages avec le nom de l’œuvre suivi du nom de l'auteur (par exemple: .......... ).


Chacune des pages explorées par le bot seront agrémentées d'un identifiant BnF (Bnf id) et de leur type wikidata.


== Performances ==
== Performances ==

Version du 14 mai 2019 à 12:49

Le GallicaSPARQLBot est un bot python complétant ou générant automatiquement des pages Wikipast à partir des données de la Bibliothèque nationale de France (BnF).

Le code pour le bot est disponible sur ce repo GitHub. Pour exécuter le bot, il suffit de lancer le fichier python execute_bot.py en passant le mot de passe du GallicaSPARQLBot en argument.

Dans un premier temps, le bot cherche, à travers des requêtes SPARQL, l'intégralité des auteurs appartenant à la base de données de la BnF.

A partir de la liste d'auteur sont récupérés les fichiers json de chaque auteur. Ils contiennent les informations suivantes:

  • La date/son lieu de Naissance de l'auteur,
  • La date/son lieu de Mort de l'auteur,
  • Une liste des œuvres principales de l'auteur,
  • Une image de profil de l'auteur (si elle existe).

A partir de la liste des œuvres principales de chaque auteur sont récupérés les fichiers json de chaque auteur. Ils contiennent les informations suivantes:

  • La date de création de l’œuvre,
  • Le type de l’œuvre (Art Graphique, Livre, ...),
  • L'Auteur de l’œuvre,
  • Une illustration de l’œuvre (si elle existe).

A partir de ces fichiers, le bot crée la page Wikipast liée à chaque auteur en y ajoutant un lien vers l'image de profil (si elle existe dans la BnF), leurs dates de naissance et de mort ainsi que ses œuvres principales (uniquement celles contenant une date); une page Wikipast est créée pour chacune de ces œuvres avec une illustration (si elle existe dans la BnF). Ces ajouts sont chacun accompagnés de liens renvoyant vers le site de la BnF et sont normalisés de la façon suivante:

Pour la date de naissance :

 1840.11.14 / Paris 9e. Naissance de Claude Monet. 

Pour la date de décès :

 1926.12.06 / Giverny. Décès de Claude Monet. 

Pour une œuvre :

 1879. Création par Claude Monet de Camille sur son lit de mort (Monet). 

Exemple d'œuvre complète

Exemple d'auteur ayant des dates compliqués à gérer

Afin d'éviter des collisions entre le nom de plusieurs œuvres ainsi qu'entre le nom d'une œuvre et celui d'un auteur, il a donc été choisi de nommer les œuvres de la façon suivante : Nom de l’œuvre + Nom de l'auteur (Exemple : Claude Monet de Camille sur son lit de mort (Monet) ).

La Gestion des homonymes utilise la politique du premier arrivé, premier servi. Si nous voulons insérer un auteur et que son nom n'existe pas encore sur Wikipast, alors une page est créée normalement, au contraire, si il existe déjà une page avec le nom de l'auteur alors une page est créée mais son titre sera composé du nom de l'auteur suivi identifiant utilisateur de la Bnf (uid) entre parenthèse (Exemple : .......).

Chacune des pages explorées par le bot sont agrémentées d'un identifiant BnF (BnF id) et de leur type Wikidata.


Performances

Le bot permet de créer en moyenne 1000 pages d'auteurs (sans compter les pages d'œuvres) en environ 7 minutes. Ceci fait fait que l'import total (environ 500'000 auteurs) ne devrait pas prendre plus de 2.5 jours. Cette vitesse a été atteinte en parallélisant le programme, permettant une diminution très importante du temps total.

Suite à la création de 7000 auteurs (ainsi que de nombreuses œuvres), les estimations pratiques se rangent plutôt dans les 7 jours.


Exemple d'utilisation

Pour un auteur:


Page Audran.png


Pour une œuvre:


Oeuvre Audran.png