fr.planet.wikimedia

November 29, 2016

Wikimédia France

Soutenir Wikimédia France

Comme chaque année, à la même période, Wikimédia France fait appel à la générosité du public pour financer une partie de son activité.

Cette période réveille toujours les mêmes questions :

– quelles différences entre Wikimédia et Wikipédia ?

– quelles différences entre Wikimédia France et Wikimedia Foundation ?

Pour prendre les devants, Émeric Vallespi (Président) et Nathalie Martin (Directrice exécutive) ont décidé d’amorcer la campagne de levée de fonds, dans une courte vidéo explicative.
Bon visionnage et n’oubliez pas de soutenir Wikimédia France.

 

On a besoin de vous !

 

by Sarrah Krichen at November 29, 2016 03:46 PM

November 25, 2016

Wikimédia France

Les gagnants de Wiki Loves Monuments 2016 !

Le choix a été difficile et a pris plus de temps que prévu mais voici finalement les 10 gagnants de Wiki Loves Monuments de l’édition 2016.

Merci encore à tous les participants ainsi qu’aux membres du jury et rendez-vous le 6 décembre à partir de 20 heures pour la remise officielle des prix au musée de Cluny.

1er : palais de justice d’Aix-en-Provence par Ddeveze

2e : crypte de la basilique Saint-Eutrope de Saintes par JGS25

3e : piles creuses du pont de la citadelle du Château-d’Oléron par Simon de l’Ouest

4e : Moulin à eau du hameau de la Reine, Versailles, par Jacky Delville

5e : Menhir d’Aire-Peyronne par Michael Niessen

6e : cale couverte du canal du Midi à Toulouse par MathieuMD

7e : chambre de Léonard de Vinci par Château du Clos Lucé

8e : pont du Gard par Clown522

9e : cité de Carcassonne par Meria Geoian

10e : beffroi d’Arras par Acd1066

Vous pouvez voir les gagnants des éditions dans les autres pays sur cette page.

by Nicolas Vigneron at November 25, 2016 09:32 AM

November 24, 2016

Wikimédia France

Benvinguda Lingua Libre !

Après plusieurs mois de travail et grâce à l’implication sans faille des membres et bénévoles, l’outil Lingua Libre est entré dans une phase de test avec les premières sessions d’enregistrements qui se sont déroulées dans les locaux de Wikimedia France.

Session d'enregistrement LinguaLibre le 9 novembre 2016 à Paris.

Session d’enregistrement LinguaLibre le 9 novembre 2016.

Face aux difficultés rencontrées par les locuteurs de langues minoritaires pour contribuer sur Wikipedia, Lingua Libre vise à proposer aujourd’hui et demain une nouvelle porte d’entrée vers le mouvement Wikimedia. Ainsi, bien que Lingua Libre ait d’abord été pensé pour encourager la participation de ces locuteurs, en réalité, il permet la contribution de toutes et tous et dans n’importe quelle langue ou dialecte.

Depuis la Wikiconvention francophone d’août dernier, plusieurs séances de travail ont permis d’aboutir aujourd’hui à la mise en ligne d’un système d’enregistrement simple et rapide permettant à chacun de participer à une grande collecte de sons à destination des projets.

Présentation de Lingua Libre à la Ubuntu party samedi 12 novembre

Présentation de Lingua Libre à la Ubuntu party samedi 12 novembre

Depuis lors, des séances de tests d’enregistrements sont effectués régulièrement. Une présentation de l’outil a eu lieu lors de la dernière Ubuntu Party. L’objectif est de tester le système avant les prochaines échéances.

En effet, le 9 et 10 décembre prochain, un premier edit-a-thon en occitan se tiendra à Pau en partenariat avec Lo Congrès et l’In’Oc Aquitaine, des partenaires incontournables dans le développement de Lingua Libre. Ainsi, des séances d’enregistrements se tiendront sur les deux jours. Le 17 décembre, c’est à Strasbourg que se tiendra une nouvelle séance Lingua Libre avec un groupe de locuteurs alsaciens.

Cependant, tout n’est pas terminé. Certaines étapes importantes doivent encore être franchies. Tout d’abord le versement de l’outil sur Tool Labs et le développement du système de versement et de catégorisation sur Commons et puis bien sûr la traduction de l’interface de manière à diffuser l’utilisation de Lingua Libre.
Pour finaliser le projet et aider à son développement futur n’hésitez pas à vous inscrire à la prochaine réunion sur la page projet Lingua Libre

by Rémy Gerbet at November 24, 2016 09:58 AM

October 31, 2016

Ash Crow

Bon anniversaire, Wikidata !

Wikidata a quatre ans aujourd’hui, et il me semble que c’est le bon moment pour faire un petit retour sur mon expérience avec ce projet[1]Et puis, Auregann m’a demandé de le faire ;)..

Wikidata est un projet qui m’intéresse vivement depuis bien longtemps avant sa création effective. Si j’avais lu le nom ici et là sur le bistro de Wikipédia depuis que j’ai commencé à contribuer en 2005, la première fois qu’il a retenu mon attention, pour autant que je m’en souvienne, est cette discussion  en novembre 2006[2]Au passage, en cherchant à la retrouver, je suis tombé sur la plus ancienne mention de Wikidata que j’aie vu sur la Wikipédia en français, qui remonte quand même à août 2004! : un dépôt commun pour les données, fonctionnant de la même façon que Commons, c’était exactement ce qui manquait à Wikipédia !

Et je n’étais apparemment pas le seul à avoir cet avis : c’était à l’époque l’opinion générale sur le bistro. Un autre avantage qui y était mentionné à l’époque, c’était que cela pourrait remplacer avantageusement le système de catégories foireux de l’époque (enfin… l’actuel quoi.) Une fonctionnalité que je suis toujours impatient de voir arriver.

Avec le temps, je suis devenu de plus en plus impliqué dans la communauté, et pour finir j’ai sauté dans le wiki-train pour Gdańsk en 2010 pour participer à ma première Wikimania.

1280px-wiki-train_poznan_dinner
*Record scratch* Yup, that’s me. You’re probably wondering how I ended up in this situation.

Là, l’une des présentations dont je me souviens le plus[3]Enfin à part celles avec de l’alcool. était celle d’un système centralisé pour la gestion des liens interwiki. Cette présentation ne faisait à l’époque aucune mention d’autre (méta-)données que les interwikis et éventuellement des libellés lisibles dans plusieurs langues, et ne parlait pas du tout de Wikidata. Pourtant, ces deux choses sont ce qui est devenu la « phase l » du développement de Wikidata le 29 octobre 2012. Quand j’ai commencé à y contribuer, le 17 décembre de la même année, le projet était encore naissant et ne permettait toujours de faire que ces deux choses : gérer les interwikis de Wikipédia, et mettre des libellés. C’est donc ce que j’ai fait : J’ai créé un nouvel élément, lui ai donné une paire de libellés et ait déplacé les liens externes depuis Wikipédia.

capture-du-2016-10-28-01-26-15
Ta-da !

Je me suis arrêté là à l’époque. Il n’y avait alors aucun moyen d’ajouter des déclarations plus utiles, et n’ayant pas la passion de la gestion des interwikis, j’ai laissé cette tâche aux robots et à leurs dresseurs. Pendant longtemps après ça, j’ai simplement fait des modifications par-ci par-là, mais sans m’atteler à un gros projet. J’avais cependant envie de passer au cran supérieur, et je me suis donc demandé à quoi m’atteler… En 2006 ou 2007, j’avais refait entièrement la liste des empereurs du Japon sur Wikipédia, et je me suis dit que ça pourrait être une bonne idée d’avoir les mêmes données de base (c’est-à-dire noms, dates de naissance/règne/mort, lieux de naissance et de mort, etc.) sur Wikidata également.

À l’époque, j’utilisais très peu d’outils ou de gadgets, et ça a donc été assez long et fastidieux (et sans l’outil missingprops.js de Magnus[4]Personnalisé pour mes besoins, ça l’aurait été encore plus), mais j’ai fini par en voir le bout.

capture-du-2016-10-28-21-33-36

Mon pic d’activité suivant a eu lieu quelques temps plus tard, quand j’ai décidé de créer chaque corps céleste de l’univers de Serenity/Firefly[5]Oui, pour info, je suis un Browncoat.. Le faire uniquement avec l’interface de Wikidata aurait relevé de la folie pure, et j’ai donc utilisé un autre outil de Magnus : QuickStatements. Si vous vous en êtes déjà servi, vous savez qu’une simple textarea où coller un blob de tab separated values n’est pas l’interface la plus pratique du monde… Du coup, j’ai décidé à l’époque de créer un outil moi-même pour résoudre le problème  : un  convertisseur CSV vers QuickStatements convertor qui permet de travailler avec un tableur organisé de façon plus traditionnelle.

Après ça, parmi d’autres choses, j’ai décidé d’importer tous les épisodes d’xkcd, et également aidé Harmonia Amanda dans son travail avec les courses de chiens de traîneaux puis les écoles d’art dramatique. Cela m’a incité à me plonger plus avant dans Python et écrire des scripts pour récupérer et traiter les données.

I know you all are xkcd fans.
Je sais que vous êtes tous fans d’xkcd.

 

Dans l’intervalle, j’ai également suivi la première édition du MOOC d’Inria sur le web sémantique, durant lequel j’ai appris plein de choses, et en particulier le langage SPARQL. Et là, c’est vraiment parti en roue libre : quand le point d’accès SPARQL pour Wikidata a été mis à disposition, j’ai écrit un billet ici à ce sujet. Des gens ont commencé à me poser des questions dessus, ou à me demander d’écrire des requêtes pour eux, et cet article est devenu le premier d’une longue série qui continue encore avec les #SundayQuery.

En résumé, en quatre ans :

  • J’ai commencé à coder des outils et les mettre à disposition de la communauté
  • J’ai écrit des scripts d’extraction et conversion de données en Python
  • J’ai beaucoup appris sur le web sémantique
  • Je suis devenu un ninja du SPARQL.

Et tout ça à cause de Wikidata. Et j’espère bien que ça va continuer sur cette lancée !

Image d’en-tête: Wikidata Birthday Cake par Jason Krüger (CC-BY-SA 4.0)

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Notes   [ + ]

1. Et puis, Auregann m’a demandé de le faire ;).
2. Au passage, en cherchant à la retrouver, je suis tombé sur la plus ancienne mention de Wikidata que j’aie vu sur la Wikipédia en français, qui remonte quand même à août 2004!
3. Enfin à part celles avec de l’alcool.
4. Personnalisé pour mes besoins
5. Oui, pour info, je suis un Browncoat.

Cet article Bon anniversaire, Wikidata ! est apparu en premier sur The Ash Tree.

by Ash_Crow at October 31, 2016 12:49 PM

October 29, 2016

Gratus

Wikipédia terroriste

Wikipédia est monté d’un cran puisqu’elle ne se contente plus de relater en direct les actes de terrorismes  mais elle espère en provoquer… si on en crois Orange.

Capture d'écran site de redirection du ministère de l'interieur.
Drôle de surprise !!

Le fournisseur d’accès à Internet a en effet redirigé ses abonnés qui visitaient Wikipédia, Google ou OVH vers le site du ministère de l’intérieur le 17 octobre entre 9h30 et 11h30.

En classant le premier et le cinquième site le plus visité en France comme site faisant publiquement l’apologie d’actes de terrorisme, Orange a fait une belle boulette.

D’ailleurs en parlant de boulette, ça me rapelle quelque chose, mais quoi ?

orange

Il semble que les stagiaires d’Orange qui s’occupent de la communication et de la maintenance technique vont passer un mauvais moment🙂

 


by gratusfr at October 29, 2016 06:08 AM

October 14, 2016

Wikimédia France

7 500 clichés de monuments français pour Wiki Loves Monuments 2016

Reflet du château de Vaux-le-Vicomte sur le miroir d'eau à l'aube (Jcvaux BY-SA 4.0)

Reflet du château de Vaux-le-Vicomte sur le miroir d’eau à l’aube (Jcvaux, CC BY-SA 4.0)

Discrètement mais sûrement, la sixième édition 2016 du concours Wiki Loves Monuments suit son cours : la période de soumission des photographies s’est terminée le 30 septembre. Tout au long du mois, plus 7 500 clichés de monuments historiques français ont été importés par 302 participants sur Wikimedia Commons, la médiathèque de fichiers sous licence libre qui alimente notamment Wikipédia. Au cours des six dernières éditions du concours, pas moins de 109 268 photographies de monuments français ont été récoltées. Au-delà de la France, une quarantaine de pays participent au concours, ce qui s’est traduit cette année par l’apport de plus de 268 000 photos sur Wikimedia Commons (voir plus de statistiques).

L’échéance de la période de soumission des photographies ouvre désormais la voie à une étape tout aussi importante : la sélection des meilleures images par les jurys nationaux. Pour Wiki Loves Monuments France, les cinq jurés, photographes amateurs ou professionnels et contributeurs aux projets Wikimédia, auront recours à pas moins de trois phases de sélection pour départager les 7 500 images en lice, d’ici fin octobre. L’objectif ? N’en garder que dix, classées par ordre de préférence, qui apporteront à leurs auteurs la reconnaissance de leur travail bénévole et de leur talent. Chacun d’entre eux se verra également décerner un prix, ainsi qu’un tirage d’art de leur cliché pour les trois premiers.

Rendez-vous, donc, en novembre, pour l’annonce des résultats. Suivra, le 6 décembre, la soirée de remise officielle des prix, au musée de Cluny à Paris.

by Jules Xénard at October 14, 2016 02:10 PM

October 11, 2016

Wikimédia France

Se former à Wikidata

WP-WD

Infobox Wikipédia mise en forme à gauche et données brutes Wikidata à droite (copies d’écran de Wikipédia en CC-BY-SA et de Wikidata CC-0 GPLv2+, montage CC-BY par VIGNERON).

Wikidata est une base de connaissances. C’est un projet frère de Wikipédia, développé par Wikimedia Deutschland et hébergé par la Wikimedia Foundation. Wikidata stocke des informations structurées, sourcées et réutilisables par l’ensemble des projets Wikimedia. Lorsqu’une information évolue, elle peut être reportée automatiquement sur l’ensemble des projets Wikimedia. Par exemple, lors de la mise à jour annuelle de la population d’une commune, l’information peut être mise à jour dans Wikidata et reportée automatiquement sur l’ensemble des Wikipédias utilisant cette information.
Autre exemple de l’avantage de ce dépôt centralisé : Wikidata stocke les liens interwikis des projets Wikimedia. Auparavant, lorsque l’on changeait le nom d’une page Wikipédia, il était nécessaire de reporter ce changement manuellement sur toutes les autres versions linguistiques de Wikipédia et tous les projets Wikimedia. Aujourd’hui, le changement se fait à un seul endroit, avec une interface adaptée.
La traduction des articles est également simplifiée : un lien dans une langue est facilement identifiable dans une autre langue. Quand vous traduisez un article avec l’outil de traduction, vous gagnez en fluidité. Quand vous modifiez un article pour y insérer un lien vers un autre article, vous avez aujourd’hui une courte description illustrée issue de Wikidata vous permettant de faire le meilleur choix.
Wikidata est un projet encore jeune : il fêtera ses 4 ans en octobre prochain. Toutefois, si l’on regarde le nombre croissant d’ateliers Wikidata organisés chaque année dans la francophonie, l’intérêt pour ce projet se développe régulièrement. Le besoin de formation est donc réel, comme l’a montré l’atelier de formation à Wikidata lors de la Wikiconvention francophone et la série d’ateliers Wikidata organisés depuis l’automne dernier à Paris et cet été à Rennes. Tout d’abord, ces ateliers sont un succès certain — une trentaine de participant-e-s lors de la Wikiconvention (dont de nombreux nouveaux contributeurs – nouvelles contributrices), une quarantaine lors de l’atelier organisé à l’université Paris-Sud, une douzaine au total lors des ateliers rennais — et durable — les trois quarts des participant-e-s aux ateliers rennais ont pris part à au moins deux ateliers. Ensuite, ils permettent aux contributeurs – contributrices, expérimenté-e-s ou non sur d’autres projets Wikimedia, d’appréhender Wikidata et d’être autonomes dans son utilisation. Enfin, ils sont un vecteur d’émulation, comme en témoignent les outils de contribution et de visualisation créés lors de ces ateliers.
201608 WikiConvention Paris

Contributeurs pendant l’atelier Wikidata de la Wikiconvention (Ziko van Dijk, CC BY-SA 4.0).

Si vous n’avez pas eu l’occasion de participer à un de ces ateliers, il est encore temps d’apprendre ! Par exemple, vous pouvez :
Wikidata étant un projet transverse à tous les projets Wikimedia, vous pouvez également trouver de l’aide sur chaque projet, par exemple sur le projet Wikidata sur Wikipédia ou dans la page d’aide sur Wikisource.

 

 Auteurs : Envel Le Hir, Trizek, Nicolas Vigneron

 

by Envel Le Hir at October 11, 2016 08:46 AM

October 09, 2016

Ash Crow

Sunday Query : où meurent les Bretons ?

Cette #SundayQuery part d’une question de @belett sur Twitter : comment afficher des points de différentes couleurs sur une carte générée sur le point d’accès SPARQL de Wikidata ?

Première requête

En l’occurrence, il cherchait à afficher le lieu de mort des personnes nées à Rennes ou à Brest, avec une couleur différente selon leur lieu de naissance. À ma connaissance, on ne peut pas spécifier directement la couleur des points d’une carte avec un paramètre ?rgb comme on peut le faire avec un graphe. En revanche, si la requête comporte un paramètre ?layer, la carte l’utilisera pour gérer des couches avec des points de couleurs différentes et, encore mieux, qu’on peut afficher et masquer à volonté.

Voici donc ma première réponse, en donnant à mes couches le nom de la ville via la fonction BIND, qui permet de définir à la main le contenu d’une variable :

#defaultView:Map
SELECT ?coord ?layer WHERE {
  {
    ?item wdt:P31 wd:Q5 ; # On cherche, pour des êtres humains
          wdt:P19 wd:Q647 ; # nés à Rennes
          wdt:P20 ?place . # leur lieu de décès
    ?place wdt:P625 ?coord . # enfin ses oordonnées
    BIND("Rennes" AS ?layer) . # On met manuellement "Rennes" comme valeur de ?layer
  } UNION {
    ?item wdt:P31 wd:Q5 ;  # Idem avec Brest
          wdt:P19 wd:Q12193 ;
          wdt:P20 ?place .
    ?place wdt:P625 ?coord .
    BIND("Brest" AS ?layer) .
  }

  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}

http://tinyurl.com/jyzaa9o

Carte d'Europe, avec des points surtouts concentrés sur l'Ouest de la France
Carte avec deux couches, une pour Rennes et une pour Brest, et montrant le sélecteur.

Avec VALUES

Mais je ne suis pas fan des UNION quand je peux les éviter, ou de mettre le nom des ?layer à la main avec un BIND : tout ça est so SPARQL 1.0 ! Heureusement, SPARQL 1.1 apporte un mot-clef pratique pour définir une liste de valeurs autorisées pour une variable[1]Ou plusieurs d’ailleurs. : VALUES. Voici la requête améliorée pour l’utiliser, et au passage chercher les gens nés à Nantes, tant qu’à y être :

#defaultView:Map
SELECT ?item ?itemLabel ?placeOfBirth ?placeOfBirthLabel ?placeOfDeath ?placeOfDeathLabel ?image ?coord ?layer  WHERE {
  ?item wdt:P31 wd:Q5 ; # On cherche des êtres humains
        wdt:P19 ?placeOfBirth ; # Leur lieu de naissance
        wdt:P20 ?placeOfDeath . # Leur lieu de décès
  ?placeOfDeath wdt:P625 ?coord . # les coordonnées de celui-ci
  
  VALUES ?placeOfBirth { # Si le lieu de naissance est dans cette liste :
    wd:Q647    # Rennes
    wd:Q12193  # Brest
    wd:Q12191  # Nantes
  }
  
  ?placeOfBirth rdfs:label ?layer . # On définit un calque par lieu de naissance
  FILTER(LANG(?layer) = "fr") .  # en ne gardant que les noms de lieu de naissance en français
  
  OPTIONAL { ?item wdt:P18 ?image . } # S'il y a une image, on l'affiche
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" . }
}

http://tinyurl.com/zgr6lle

Carte d'Europe, avec des points surtouts concentrés sur l'Ouest de la France
Les points de Rennes et Brest sont toujours là, Nantes est venue s’y rajouter

J’en ai profité pour ajouter l’image si elle existe, qu’on voit en cliquant sur un point.

Dans toute la Bretagne

Mais pourquoi s’arrêter à quelques villes ? Autant y aller carrément avec toutes les personnes nées en Bretagne, par lieu de naissance.

#defaultView:Map
SELECT ?item ?itemLabel ?placeOfBirth ?placeOfBirthLabel ?placeOfDeath ?placeOfDeathLabel ?image ?coord ?layer WHERE {
  ?item wdt:P31 wd:Q5 ; # On cherche des êtres humains
        wdt:P19 ?placeOfBirth ; # Leur lieu de naissance
        wdt:P20 ?placeOfDeath . # Leur lieu de décès
  ?placeOfDeath wdt:P625 ?coord . # les coordonnées de celui-ci
  
  ?placeOfBirth (wdt:P131|wdt:P706|wdt:P276)* wd:Q12130 . # nés dans un lieu situé en Bretagne administrative
  
  ?placeOfBirth rdfs:label ?layer . # On définit un calque par lieu de naissance
  FILTER(LANG(?layer) = "fr") . # en ne gardant que les noms de lieu de naissance en français
  
  OPTIONAL { ?item wdt:P18 ?image . } # S'il y a une image, on l'affiche
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" . }
}

http://tinyurl.com/zx7rww7

Il suffit de remplacer la liste de valeurs autorisées par la propriété disant que le lieu est situé en Bretagne[2]Administrative sur cette requête.… Seulement, suivant les éléments, plusieurs propriétés peuvent être utilisées : localisation administrative (P131), localisation géographique (P706), ou tout simplement lieu (P276)… Heureusement, SPARQL permet d’interroger toutes ces propriétés à la fois, en les séparant par des « | ». Les parenthèses sont optionnelles, on aurait aussi bien pu écrire  

?placeOfBirth wdt:P131*|wdt:P706*|wdt:P276* wd:Q12130 .
  qui donne les mêmes résultats. Notez au passage qu’il faut alors mettre l’étoile au niveau de chaque propriété. Cette étoile sert à dire qu’il faut si besoin remonter plusieurs niveaux de résultats jusqu’à atterrir sur Q12130.

Carte d'Europe, avec de nombreux points de toutes les couleurs
Tiens, un sapin de Noël.

Oups : comme il y a une couche par lieu de naissance, ça fait beaucoup de calques, ce qui fait que la carte devient illisible… Et que le sélecteur de calques ne peut pas tout afficher à l’écran.

Optimisation

Heureusement, il est possible d’arranger ça facilement: il suffit de demander au passage le département de naissance[3]Il y a les cinq départements cette fois, puisque la requête porte sur la Bretagne historique cette fois. et l’utiliser comme ?layer à la place du lieu. Histoire de rester concis, je profite du fait qu’on peut utiliser la virgule pour plusieurs valeurs partageant le même sujet et la même propriété, de la même façon qu’on peut utiliser le point virgule pour des couples propriété-valeur ayant le même sujet.

#defaultView:Map
SELECT ?item ?itemLabel ?placeOfBirth ?placeOfBirthLabel ?placeOfDeath ?placeOfDeathLabel ?image ?coord ?layer WHERE {
  ?item wdt:P31 wd:Q5 ; # On cherche des êtres humains
        wdt:P19 ?placeOfBirth ; # Leur lieu de naissance
        wdt:P20 ?placeOfDeath . # Leur lieu de décès
  ?placeOfDeath wdt:P625 ?coord . # les coordonnées de celui-ci
  
  ?placeOfBirth (wdt:P131|wdt:P706|wdt:P276)* wd:Q327, # Nés en Bretagne
                                              ?departement . # Dans un lieu...
  ?departement wdt:P31 wd:Q6465 . # Qui est un département français
  
  ?departement rdfs:label ?layer . # On définit ce département comme calque
  FILTER(LANG(?layer) = "fr") . # en ne gardant que les noms de département en français
  
  OPTIONAL { ?item wdt:P18 ?image . } # S'il y a une image, on l'affiche
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" . }
}

http://tinyurl.com/z3cttt3

Résultat final

capture-du-2016-10-09-13-54-30

La carte montre deux résultats intéressants : beaucoup de gens meurent dans leur département de naissance et encore plus meurent à Paris[4]Le gros tas de points autour de la gare Montparnasse..

Ces deux remarques rappellent la question de savoir quelle est la distance moyenne entre le lieu de naissance et celui de décès des gens. Plusieurs études se sont plongées dessus, notamment celle-ci, publiée dans Science en 2014 et qui se base sur Freebase[5]Ainsi que sur deux bases d’artistes célèbres, non nommées dans l’article du Boston Globe., qui a depuis été intégrée dans Wikidata, et a des caractéristiques similaires, notamment le biais de sélection inhérent[6]Il faut être notoire pour une raison ou une autre pour être dans la base..

De fait, l’étude ne visait pas tant à mesurer la distance moyenne globale pour l’ensemble de l’humanité[7]Je n’arrive pas à retrouver les chiffres, mais il me semble me souvenir que la majeure partie de la population mondiale vit et meurt à moins de 30 km de son lieu de naissance… Le livre The Limits to Travel de David Metz ne donne pas de chiffres pour les décès mais note que de nos jours, l’écart moyen entre les lieux de naissance de deux mariés britanniques est d’un peu plus de 50 mi., mais à s’appuyer sur ce biais de sélection pour identifier des « attracteurs de mort », c’est à dire des lieux où il meurt plus de gens notables qu’il n’en naît, et par ricochet identifier des capitales culturelles. C’est le cas de Paris, où Wikidata recense 18 532 naissances contre 22 205 décès.

Ils constataient cependant qu’au cours du temps, la distance moyenne entre le lieu de naissance et celui de décès des personnes étudiées augmentait, passant de 215 km au 14e siècle à 380 km au 21e. Les Bretons présents sur Wikidata, toutes époques confondues, semblent encore plus voyageurs, avec une distance moyenne de 473 km, mais pas mal de variation entre les départements : cela va de 420 km pour les Morbihannais⋅e⋅s à 510 pour les Brétilien⋅ne⋅s.

Image d’en-tête : Les Merveilles de la nuit de Noël / Burzudou Nedellek (détail), par Émile Souvestre, 1844.

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Notes   [ + ]

1. Ou plusieurs d’ailleurs.
2. Administrative sur cette requête.
3. Il y a les cinq départements cette fois, puisque la requête porte sur la Bretagne historique cette fois.
4. Le gros tas de points autour de la gare Montparnasse.
5. Ainsi que sur deux bases d’artistes célèbres, non nommées dans l’article du Boston Globe.
6. Il faut être notoire pour une raison ou une autre pour être dans la base.
7. Je n’arrive pas à retrouver les chiffres, mais il me semble me souvenir que la majeure partie de la population mondiale vit et meurt à moins de 30 km de son lieu de naissance… Le livre The Limits to Travel de David Metz ne donne pas de chiffres pour les décès mais note que de nos jours, l’écart moyen entre les lieux de naissance de deux mariés britanniques est d’un peu plus de 50 mi.

Cet article Sunday Query : où meurent les Bretons ? est apparu en premier sur The Ash Tree.

by Ash_Crow at October 09, 2016 01:42 PM

October 03, 2016

Alphos

SPARQuickL 3 – Bonne compagnie

Entreprises

# List of business enterprises SELECT ?business { ?business wdt:P31/wdt:P279* wd:Q4830453 . # item is a business enterprise or subclass thereof }

Essayez

Entreprises avec leur date de création

# List of business enterprises, with their date of creation SELECT ?business ( SAMPLE( ?date ) AS ?date ) WHERE { ?business

Continue reading « SPARQuickL 3 – Bonne compagnie »

by Alphos at October 03, 2016 05:12 PM

Wikimédia France

L’Été des régions Wikipédia

 

Dédiée à la valorisation de nos territoires sur la plus grande encyclopédie au monde, l’Été des régions Wikipédia, seconde édition, s’est terminée ce 21 septembre.

Cette action invite les français (et les touristes) à photographier villes, villages, paysages, ou encore statues,artisanat et personnalités locales, en bref, ce qui fait la richesse et le charme des territoires de France. Ces photos téléversées sur Commons permettent ensuite d’illustrer les articles Wikipédia relatifs aux sujets photographiés.

Pourquoi s’intéresser à nos territoires ?

Aujourd’hui les articles relatifs à nos territoires ne sont pas encore assez illustrés. Suite à ce constat, nous avons fait le pari d’inciter les habitants et les touristes à photographier eux-mêmes les richesses du patrimoine local. Cela nous permet à la fois de développer le réseau de contributeurs mais aussi d’apporter un nombre important de nouvelles photos sur les articles Wikipédia.

Les mairies françaises, partenaires indispensables de la valorisation de nos territoires.

Pour cette édition, nous avons communiqué auprès des mairies rurales et des grandes villes françaises en leur proposant de téléverser cinq photos emblématiques du territoire.

Plusieurs centaines de mairies ont répondu à l’appel et téléversés des photos dans la campagne “Été des régions 2016” sur la médiathèque en ligne Commons.

La suite ?

Cibler les mairies françaises nous a permis de tisser de nouveaux liens avec des acteurs du territoire qui ne connaissaient pas encore l’association Wikimédia France et l’importance de la diffusion du patrimoine local. De plus, elles disposent de sources et ressources humaines essentielles à l’amélioration des articles sur Wikipédia.
Cependant, nombre d’entre elles nous ont contacté cet été en nous questionnant et en relayant des informations utiles pour améliorer des articles relatifs aux communes.
Les mois à venir seront donc consacrés à la réalisation de tutoriels à destination des mairies pour les aider à mieux comprendre la contribution sur Wikipédia et leur permettre de diffuser et de partager de façon autonome, avec les habitants, ce qui fait le charme de nos territoires.

À l’image du concours Wiki Loves Monuments qui se veut international, l’Été des régions Wikipédia pourrait s’internationaliser dès l’été prochain.

D’autres chapitres du mouvement Wikimedia ont pris contact avec Wikimédia France pour étudier la faisabilité d’un tel événement dans leurs pays.
Nous disposerions ainsi d’une multitude de nouvelles photos pouvant alimenter les articles relatifs aux territoires sur Wikipédia répondant ainsi à un réel besoin sur les articles concernés.

 

by Pierre-Antoine at October 03, 2016 01:47 PM

September 28, 2016

Gratus

PDD Wikidata : 2nd tour

Dès aujoud’hui et jusqu’au 28 octobre 2016 inclus, vous pouvez donner votre avis sur la prise de décision (enfin l’étape 2 sur 3) concernant les conditions d’utilisation des données Wikidata dans les articles.

>> Voir la prise de décision

Voir ci-dessous les questions posées :

La liste ci-dessous est publié sous licence Creative Commons attribution, partage dans les mêmes conditions.

  1. Une donnée Wikidata non triviale ne peut être affichée sur Wikipédia que si elle comporte une source dans Wikidata (par donnée non triviale, on entend une donnée qui doit être sourcée sur Wikipédia selon la règle de la vérifiabilité ; par source dans Wikidata, on entend une source externe et non la référence à la version linguistique de Wikipédia d’où la donnée a été importée).
  2. Lorsqu’un modèle affiche en provenance de Wikidata une donnée non triviale, il est autorisé de lui faire afficher dans Wikipédia les sources associées à cette donnée dans Wikidata (par donnée non triviale, on entend une donnée qui doit être sourcée sur Wikipédia selon la règle de la vérifiabilité ; par source dans Wikidata, on entend une source externe et non la référence à la version linguistique de Wikipédia d’où la donnée a été importée).
  3. Les données Wikidata utilisées dans un article doivent être identifiables lors de la consultation de l’article.
  4. Lorsqu’une donnée Wikidata est utilisée dans un article, elle ne peut pas être présentée comme un lien interne qui pointerait vers l’élément Wikidata correspondant. Ainsi, si la donnée Wikidata « écrivain » est affichée dans l’article, elle ne peut pas être présentée « Écrivain » (lien caché vers l’élément Wikidata) mais les présentations « Écrivain » (aucun lien), « Écrivain » (lien interne vers l’article Wikipédia correspondant), « Écrivain (d) » (lien vers l’élément Wikidata séparé de la donnée elle-même) ou encore « Écrivain (d) » (lien rouge suivi d’un lien vers l’élément Wikidata) restent possibles.
  5. Aucun lien vers Wikidata n’est affiché dans un article en présentant l’identifiant Wikidata de la donnée (exemple : « d:Q36180 » ou « Q36180 » sont interdits).
    • L’ajout ou le retrait de champs Wikidata dans un modèle,
    • l’introduction dans de nombreux articles d’un modèle (par exemple une infobox) ajoutant ou retirant des champs Wikidata,

    doivent être effectués en accord avec l’espace communautaire pertinent rassemblant les contributeurs concernés (par exemple le projet correspondant).

  6. Lorsqu’une ou plusieurs données Wikidata sont ajoutées à un article ou introduites en remplacement d’informations déjà présentes dans l’article (par exemple, remplacement d’un modèle par un modèle utilisant des données Wikidata), le contributeur qui procède à cette action doit contrôler la cohérence (et en particulier l’absence de contradiction) des nouvelles données avec les autres données présentes dans l’article ainsi qu’avec les données remplacées ; il est tenu de traiter les incohérences constatées.
  7. On ne peut afficher dans un article une donnée Wikidata qu’à l’aide d’un modèle qui évite de renseigner dans le code de l’article un identifiant de propriété Wikidata « Pxx » (des syntaxes telles que {{Wikidata|Pxx}} ou {{#property:Pxx}} ne sont pas autorisées dans le code des articles).
  8. Un modèle affichant des données Wikidata dans un article doit permettre de forcer l’affichage d’une donnée locale Wikipédia ou de forcer l’absence d’affichage de la donnée Wikidata. La documentation du modèle doit être suffisamment détaillée pour que la mise en œuvre de ces deux possibilités soit aisée. Le forçage de l’affichage d’une donnée locale ou de l’absence d’affichage de la donnée n’altère pas la présentation du modèle.
  9. En cas d’utilisation d’un modèle affichant des données Wikidata, tous les paramètres du modèle doivent être listés dans le code de l’article pour permettre de forcer facilement l’affichage de données locales ou de ne pas afficher certains champs.

Nous pouvons également signaler la présence de deux sondages en cours :


by gratusfr at September 28, 2016 06:36 PM

Wiki Loves Monuments (fr)

Coup de cœur du 27 septembre

Le Pont neuf au couché du soleil Par Ben.detto (Travail personnel) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

by Sarah Krichen at September 28, 2016 03:43 PM

September 27, 2016

Wiki Loves Monuments (fr)

Coup de cœur du 26 septembre 2016 !

Intérieur du château de Versailles par Anitsircana (CC-BY-CA)

by Sarah Krichen at September 27, 2016 04:18 PM

Photo coup de coeur du 25 semptembre 2016 !

La collégiale Notre-Dame est une ancienne collégiale devenue l’église paroissiale Notre-Dame et Saint-Nicolas située à Briançon. Elle est classée au titre des monuments historiques en 19311.

Photo par Michel Couprie (Travail personnel) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

by Sarah Krichen at September 27, 2016 09:29 AM

Image du jour du 24 septembre !

Pour cette photo du jour de notre concours WLM 2016 voici l’intérieur du Palais de Justice de la ville d’Aix-en-Provence. Par Ddeveze (Travail personnel) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

by Sarah Krichen at September 27, 2016 09:22 AM

Image du jour du 23 septembre !

Direction Arras pour profiter du magnifique beffroi de l’hôtel de ville. Le beffroi est classé depuis 1840 parmi les monuments historiques et, depuis 2005, fait partie du patrimoine mondial de l’Unesco en étant compris dans les beffrois de Belgique et de France.

Photo par Acd1066 (Travail personnel) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

by Sarah Krichen at September 27, 2016 09:09 AM

September 24, 2016

Ash Crow

Sunday Query : utiliser SPARQL et Python pour corriger des coquilles sur Wikidata

À mon tour de faire une #SundayQuery! Comme Harmonia Amanda l’a dit dans son propre billet, j’envisageais de faire un article expliquant comment créer un script Python permettant de corriger les résultats de sa requête.. Finalement, j’ai préféré en faire un autre, au fonctionnement similaire mais plus court et plus simple à comprendre. Le script pour Harmonia est cependant disponible en ligne ici.

Jeudi, j’ai publié un article au sujet des  batailles du Moyen Âge, et depuis, j’ai commencé à corriger les éléments correspondants sur Wikidata

L’une des corrections les plus répétitives était la capitalisation des libellés en français : comme ils ont été importés de Wikipédia, ils ont une majuscule inutile au début ( « Bataille de Saint-Pouilleux en Binouze » instead of « bataille de Saint-Pouilleux en Binouze »…)

La requête

Commençons par trouver tous les éléments présentant cette coquille.

SELECT ?item ?label WHERE {
  ?item wdt:P31/wdt:P279* wd:Q178561 .
  ?item rdfs:label ?label . FILTER(LANG(?label) = "fr") .
  FILTER(STRSTARTS(?label, "Bataille ")) .
}

http://tinyurl.com/jljf6xr

Quelques explications de base :

  • ?item wdt:P31/wdt:P279* wd:Q178561 .
      cherche les éléments qui sont des batailles ou des sous-classes de batailles, pour être bien sûr que je ne vais pas virer sa majucule à un bouquin intitulé  « Bataille de Perpète-les-Olivettes »…
  • Sue la ligne suivante, je demande les libellés pour les éléments en question 
    ?item rdfs:label ?label .
      et les filtre pour ne garder que ceux en français
    FILTER(LANG(?label) = "fr") .
    . Comme j’ai besoin d’utiliser le libellé dans la requête et pas juste de l’afficher (et comme Harmonia Amanda l’a expliqué dans son billet de dimanche), je ne peux pas utiliser le servicce wikibase:label, et je me rabats donc sur le standard du web sémantique rdfs:label.
  • La dernière ligne est un
    FILTER
      (filtre), qui ne garde que les résultats qui répondent à la fonction à l’intérieur. Ici,
    STRSTARTS
      vérifie si
    ?label
      commence avec
    "Bataille "
     .

Au moment où j’ai écrit la version anglaise de ce texte, la requête renvoyait 3521 résultats. Beaucoup trop pour les corriger à la main, et je ne connais aucun outil déjà existant qui pourrait faire ça pour moi… Je suppose qu’il est temps de dégainer Python, du coup !

Le script Python

J’aime Python. J’adore carrément Python, même. Ce langage est génial pour créer une une application utile en une poignée de minutes, facile à lire (pour peu qu’on lise l’anglais) et pas constellé de séries d’accolades ou de points-virgules, et a des libs géniales pour les choses que je fais le plus avec : récupérer le contenus de pages web, trier des données, vérifier des ISBNs [1]J’espère pouvoir bientôt quelque chose ici sur ce sujet. et faire des sites web. Oh, et pour faire des requêtes SPARQL et traiter les résultats [2]En plus, les exemples dans la doc officielle sont basés sur Firefly. Yes sir, Captain Tightpants..

Deux charmeurs de serpent avec un python et deux cobras.
Et puis le nom du langage a un petit côté « charmeur de serpents » 😉

Premières remarques

Si vous ne connaissez pas du tout le Python, cet article n’est pas le bon endroit pour ça, mais il y a de nombreuses ressources disponibles en ligne [3]Par exemple, https://www.codecademy.com/learn/python ou https://docs.python.org/3.5/tutorial/.. Assurez-vous juste qu’elles sont à jour et pensées pour Python 3. La suite de cet article part du principe que vous avez une connaissance basique de Python (indentation, variables, chaînes de caractères, listes, dictionnaires, imports et boucles for.), et que Python 3 et pip sont installés sur votre machine.

Pourquoi Python 3 ? Parce que nous allons manipuler des chaînes qui viennent de Wikidata et sont donc encodées en UTF-8 et que Python 2 n’est pas hyper pratique pour ça. Et puis mince, on est en 2016, par Belenos !

Pourquoi pip ? Parce qu’on a besoin d’une libraire non-standard pour faire des requêtes SPARQL, appelée SPARQLwrapper, et que cette commande est le moyen le plus simple de l’installer :

pip install sparqlwrapper

Allez, on commence à scripter !

Pour commencer, un script qui fait une requête Sparql retournant la liste des sièges à corriger [4]Oui, les sièges, j’ai déjà corrigé les batailles avant d’écrire le billet 😉 :

#!/usr/bin/env python3

from SPARQLWrapper import SPARQLWrapper, JSON
from pprint import pprint

endpoint = "https://query.wikidata.org/bigdata/namespace/wdq/sparql"

sparql = SPARQLWrapper(endpoint)
sparql.setQuery("""
SELECT ?item ?label WHERE {{
  ?item wdt:P31/wdt:P279* wd:Q178561 .
  ?item rdfs:label ?label . FILTER(LANG(?label) = "fr") .
  FILTER(STRSTARTS(?label, "Siège ")) .
}}
""")  # Link to query: http://tinyurl.com/z8bd26h

sparql.setReturnFormat(JSON)

results = sparql.query().convert()

pprint(results)

Ça fait un bon petit paquet de lignes, mais que font-elles ? Comme on va le voir, la plupart vont en fait être incluses à l’identique dans tout script qui fait une requête  SPARQL.

  • Pour commencer, on importe deux choses du module  SPARQLWrapper : la classe SPARQLWrapper elle-même et la constante « JSON » qu’elle va utiliser plus tard (pas d’inquiétude, on n’aura pas à manipuler du json directement.)
  • On import aussi le module « Pretty printer » pour afficher les résultats de manière plus lisible.
  • Ensuite, on crée une variable qu’on nomme « endpoint », qui contient l’URL complète vers le point d’accès SPARQL de Wikidata [5]Et non son accès web qui est simplement « https://query.wikidata.org/ ».
  • Ensuite, on crée une instance de la classe SPARQLWrapper qui utilisera ce point d’accès pour faire des requêtes, et on les met dans une variable simplement appelée  « sparql ».
  • On applique à cette variable la fonction setQuery, qui est l’endroit où l’on rentre la requête de tout à l’heure. Attention, il faut doublonner les accolades (remplacer { et } par {{ et }}, car elles sont des caractères réservés dans les chaînes Python.
  • sparql.setReturnFormat(JSON)
      dit au script que le résultat sera retourné en json.
  • results = sparql.query().convert()
    , enfin, fait la requête elle-même et convertit la réponse dans un dictionnaire Python appelé  « results ».
  • Et pour l’instant, on va juste afficher le résultat à l’écran pour voir ce qu’on obtient.

Ouvrons un terminal et lançons le script :

$ python3 fix-battle-labels.py 
{'head': {'vars': ['item', 'label']},
 'results': {'bindings': [{'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q815196'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Pskov',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q815207'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Silistra',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q815233'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Tyr',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q608163'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Cracovie',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q1098377'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Narbonne',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q2065069'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Hloukhiv',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q4087405'},
                           'label': {'type': 'literal',
                                     'value': "Siège d'Avaricum",
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q2284279'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Fort Pulaski',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q4337397'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Liakhavitchy',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q4337448'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Smolensk',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q701067'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Rhodes',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q7510162'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Cracovie',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q23013145'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Péronne',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q10428014'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Pskov',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q3090571'},
                           'label': {'type': 'literal',
                                     'value': 'Siège du Hōjūjidono',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q3485893'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Fukuryūji',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q4118683'},
                           'label': {'type': 'literal',
                                     'value': "Siège d'Algésiras",
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q5036985'},
                           'label': {'type': 'literal',
                                     'value': 'Siège de Berwick',
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q17627724'},
                           'label': {'type': 'literal',
                                     'value': "Siège d'Ilovaïsk",
                                     'xml:lang': 'fr'}},
                          {'item': {'type': 'uri',
                                    'value': 'http://www.wikidata.org/entity/Q815112'},
                           'label': {'type': 'literal',
                                     'value': "Siège d'Antioche",
                                     'xml:lang': 'fr'}}]}}

C’est un gros paquet de résultats mais on peut voir que c’est un dictionnaire qui contient deux entrées :

  • « head », qui contient les noms des deux variables renvoyées par la requête,
  • et « results », qui contient lui-même un autre dictionnaire avec la clef « bindings », associée avec la liste des résultats eux-mêmes, chacun d’entre eux étant lui-même un dictionnaire  Python. Pfiou…

Examinons un desdits résultats :

{'item': {'type': 'uri',
          'value': 'http://www.wikidata.org/entity/Q17627724'},
 'label': {'type': 'literal', 
           'value': "Siège d'Ilovaïsk",
           'xml:lang': 'fr'}}

C’est un dictionnaire avec deux clefs (label et item), chacune ayant pour valeur un autre dictionnaire qui à son tour a une clef « value » associée avec, cette fois, la valeur qu’on veut au final. Enfin !

Parcourir les résultats

Parcourons la liste « bindings » avec une boucle « for » de Python, pour pouvoir en extraire les résultats.

for result in results["results"]["bindings"]:
    qid = result['item']['value'].split('/')[-1]
    label = result['label']['value']

    print(qid, label)

Rapide explication sur la ligne 

qid = result['item']['value'].split('/')[-1]
  : comme l’identifiant de l’élément est en fait stocké sous la forme d’une URL complète (« https://www.wikidata.org/entity/Q17627724 » et pas juste « Q17627724 »), il nous faut séparer cette chaîne à chaque caractère ‘/’, ce qu’on fait à l’aide de la fonction « split()« , qui transforme la chaîne en une liste Python contenant ceci :

['https:', '', 'www.wikidata.org', 'entity', 'Q17627724']

Nous ne voulons que le dernier élément de cette liste. En Python, c’est celui avec l’index -1, d’où le [-1] à la fin de la ligne. Enfin, nous stockons cette valeur dans la variable qid.

Lançons le script ainsi modifié :

$ python3 fix-battle-labels.py 
Q815196 Siège de Pskov
Q815207 Siège de Silistra
Q815233 Siège de Tyr
Q608163 Siège de Cracovie
Q1098377 Siège de Narbonne
Q2065069 Siège de Hloukhiv
Q4087405 Siège d'Avaricum
Q2284279 Siège de Fort Pulaski
Q4337397 Siège de Liakhavitchy
Q4337448 Siège de Smolensk
Q701067 Siège de Rhodes
Q7510162 Siège de Cracovie
Q23013145 Siège de Péronne
Q10428014 Siège de Pskov
Q3090571 Siège du Hōjūjidono
Q3485893 Siège de Fukuryūji
Q4118683 Siège d'Algésiras
Q5036985 Siège de Berwick
Q17627724 Siège d'Ilovaïsk
Q815112 Siège d'Antioche

Corriger le problème

On y est presque ! Maintenant, il reste à remplacer cet orgueilleux « S » majuscule par un plus modeste « s » minuscule :

label = label[:1].lower() + label[1:]

Que se passe-t-il ici ? Une chaîne Python fonctionne comme une liste, on peut donc lui demander de prendre la partie située entre le début de la chaîne « label » et la position qui suit le premier caractère (« label[:1] ») et forcer celui-ci en bas-de-casse (« .lower() »). Ensuite, on y concatène le reste de la chaîne (de la position 1 à la fin, donc « label[1:] ») et on réassigne ce résultat à la variable « label ».

Dernière chose, formater le résultat de manière compatible à QuickStatements:

out = "{}\tLfr\t{}".format(qid, label)
print(out)

Cette ligne semble barbare ? Elle est en fait assez simple :

"{}\tLfr\t{}"
  est une chaîne qui contient un premier emplacement pour le résultat d’une variable (« {} »), puis une tabulation, (« \t »), puis le mot-clef Quickstatements pour le libellé français (« Lfr »), une autre tabulation et enfin le second emplacement pour une variable. Ensuite, la fonction « format() » se charge de mettre le contenu des variables « qid » et « label » dedans. Le script final devrait ressembler à ça :

#!/usr/bin/env python3

from SPARQLWrapper import SPARQLWrapper, JSON

endpoint = "https://query.wikidata.org/bigdata/namespace/wdq/sparql"

sparql = SPARQLWrapper(endpoint)
sparql.setQuery("""
SELECT ?item ?label WHERE {{
  ?item wdt:P31/wdt:P279* wd:Q178561 .
  ?item rdfs:label ?label . FILTER(LANG(?label) = "fr") .
  FILTER(STRSTARTS(?label, "Siège ")) .
}}
""")  # Link to query: http://tinyurl.com/z8bd26h

sparql.setReturnFormat(JSON)

results = sparql.query().convert()

for result in results["results"]["bindings"]:
    qid = result['item']['value'].split('/')[-1]
    label = result['label']['value']

    label = label[:1].lower() + label[1:]

    out = "{}\tLfr\t{}".format(qid, label)
    print(out)

C’est parti :

$ python3 fix-battle-labels.py 
Q815196	Lfr	siège de Pskov
Q815207	Lfr	siège de Silistra
Q815233	Lfr	siège de Tyr
Q2065069	Lfr	siège de Hloukhiv
Q2284279	Lfr	siège de Fort Pulaski
Q1098377	Lfr	siège de Narbonne
Q608163	Lfr	siège de Cracovie
Q4087405	Lfr	siège d'Avaricum
Q4337397	Lfr	siège de Liakhavitchy
Q4337448	Lfr	siège de Smolensk
Q701067	Lfr	siège de Rhodes
Q10428014	Lfr	siège de Pskov
Q17627724	Lfr	siège d'Ilovaïsk
Q23013145	Lfr	siège de Péronne
Q815112	Lfr	siège d'Antioche
Q3090571	Lfr	siège du Hōjūjidono
Q3485893	Lfr	siège de Fukuryūji
Q4118683	Lfr	siège d'Algésiras
Q5036985	Lfr	siège de Berwick

On est bons ! Il ne reste plus qu’à copier-coller le résultat dans QuickStatements et attendre qu’il fasse le boulot tout seul.

Image à la une : Photographie de fontes de caractères par Andreas Praefcke (domaine public)

Enregistrer

Enregistrer

Notes   [ + ]

1. J’espère pouvoir bientôt quelque chose ici sur ce sujet.
2. En plus, les exemples dans la doc officielle sont basés sur Firefly. Yes sir, Captain Tightpants.
3. Par exemple, https://www.codecademy.com/learn/python ou https://docs.python.org/3.5/tutorial/.
4. Oui, les sièges, j’ai déjà corrigé les batailles avant d’écrire le billet 😉
5. Et non son accès web qui est simplement « https://query.wikidata.org/ »

Cet article Sunday Query : utiliser SPARQL et Python pour corriger des coquilles sur Wikidata est apparu en premier sur The Ash Tree.

by Ash_Crow at September 24, 2016 08:58 AM

September 23, 2016

Wiki Loves Monuments (fr)

Image du jour du 22 septembre !

Aperçu des jardin du château de Villandry en Indre-et-Loire. Par Marcok  [CC BY-SA 4.0]

by Sarah Krichen at September 23, 2016 10:07 AM

Coup de cœur du 21 septembre !

Photo en noir et blanc du canal St Martin pour ce mercredi 21 septembre ! Par FrantzJRF (Travail personnel) [CC BY-SA 4.0]

by Sarah Krichen at September 23, 2016 10:02 AM

Image du 20 septembre !

Pour changer de prise de vue, voici un détail de la façade de la maison à tourelle du XVe siècle à Verneuil-sur-Avre dans l’Eure.

Par Eponimm (Travail personnel) [CC BY-SA 4.0 ]

by Sarah Krichen at September 23, 2016 09:22 AM

September 20, 2016

Wiki Loves Monuments (fr)

Image coup de coeur du 19 septembre

Pour cette image du jour voici la fontaine de la place du Docteur Pierre-Walter, ancienne place du marché de Berghein en Alsace.

N’hésitez pas à améliorez sa page Wikipédia si vous avez des informations dessus !

by Sarah Krichen at September 20, 2016 03:13 PM

Gratus

Attentats : Wikipédia charognard ?

Bonjour, aujourd’hui nous allons nous intéresser au traitement des attentats récents par Wikipédia.

Action Date de l’action Date de la création de l’article sur Wikipédia Temps de réaction
Attentats de mars 2012 en France 11 mars 2012 vers 16 h 10
15 mars 2012, à 14 h 10
19 mars 2012 vers 8 h [0]
19 mars 2012 à 11:26‎ 3 h 26
Attentat contre Charlie Hebdo 7 janvier 2015 vers 11 h 30 7 janvier 2015 à 12:19‎ 0 h 49
Prise d’otages du magasin Hyper Cacher de la porte de Vincennes 9 janvier 2015 vers 13 h 9 janvier 2015 à 22:54‎ 9 h 54
Attentat de Saint-Quentin-Fallavier 26 juin 2015 vers 9 h 30 26 juin 2015 à 10:17‎ 0 h 47
Attentats du 13 novembre 2015 en France 21 h 17 [1] 13 novembre 2015 à 22:00‎ 0 h 43
Attentat du train Thalys le 21 août 2015 21 août 2015 vers 17 h 45 22 août 2015 à 07:35‎ 13 h 50
Double meurtre du 13 juin 2016 à Magnanville 13 juin 2016 vers
21 h
14 juin 2016 à 09:57‎ 12 h 57
Attentat du 14 juillet 2016 à Nice 14 juillet 2016 vers 22 h 40 14 juillet 2016 à 23:52‎ 1 h 12
Fusillade du 22 juillet 2016 à Munich 22 juillet 2016
vers 17 h 52
22 juillet 2016 à 18:48‎ 0 h 56
Attentat de l’église de Saint-Étienne-du-Rouvray 26 juillet 2016 vers 10 h 26 juillet 2016 à 10:55‎ 0 h 55

[0] Date de l’action la plus importante, rendant l’article clairement admissible

[1] Heure de la première action de cette triste série

graphique
Délai entre l’acte et la création de son article sur Wikipédia

Nous pouvons remarquer que tous les articles sont écrits dans les 24 heures et que la moitié des articles le sont dans l’heure qui suit.

On peut donc affirmer qu’il existe bel et bien une précipitation pour écrire ces articles. Et cette précipitation ne concerne pas seulement un ou deux contributeurs avides d’évènements sanglants puisque dans le cas de Charlie Hebdo, l’article a été modifié près de 900 fois par 221 auteurs distincts durant les 24 heures qui suivèrent la création de la page, de plus l’article sera créer dans 46 langues durant cette même période, preuve que cette précipitation n’est pas une spécificité française.

Le terme précipitation peut être considéré comme péjoratif car incluant une notion de travail mal fait, bâclé. Cependant ce reproche, amha, ne peut s’appliquer à Wikipédia car cette « offre » répond à une demande réelle. En effet, après des évènements de ce genre, il n’est pas rare que Wikipédia connaîsse un pic de consultation.

Ces pics de consultation démontrent que des gens ont le réflexe « Wikipédia » afin d’en savoir plus. C’est ici que je voudrait tordre le cou à un reproche que l’on voit souvent sur le bistro de Wikipédia : « Wikipédia est un site encyclopédique et pas un site d’actualité ».

Or l’approche des Wikipédiens lors de ces attentats est, amha, encyclopédique car dès le départ un travail d’analyse des sources et de synthèse est effectué. D’ailleurs il suffit de voir le nombre de références pour en avoir la confirmation.

Lorsqu’un évènement est clairement admissible, pourquoi attendre avant de créer son article ? Pourquoi faut-il priver le lecteur d’informations vérifiées et synthétisées ? Pourquoi ?

Parce qu’il faut être sûr qu’une tuerie de militaires et d’enfants ayant mené au niveau écarlate du plan vigipirate soit admissible, que des attaques de masse dans de grandes villes soit admissible …

Ou alors parce qu’il faut faire tourner un projet concurrant frère Wikinews qui est un site d’information sur l’actualité. Or, pour reprendre les termes de Jonathan Dee « Wikipedia a, par inadvertance, fini par étrangler un de ses projets-frères, Wikinews » (source). Dans cette sombre série d’attaques, nous pouvons en effet remarquer que Wikipédia a été plus réactif et plus rédigé que Wikinews.

 Prenons l’exemple de l’affaire du double meurtre à Magnanville. La page Wikinews France : un couple de policiers tué dans leur quartier à Magnanville (Yvelines) fait 3 082 octets tandis qu’à la même période la page Wikipédia correspondante fait 22 597 octets.

Au lieu de mettre en concurrence Wikipédia et Wikidata [édit : Wikinews], il vaut mieux les considérer comme deux sites distincts et ne pas s’interdire de créer un article au motif qu’il devrait d’abord/seulement être présent sur l’autre site.

En épluchant les articles de Wikinews, on peut remarquer que ce site (et donc ses contributeurs) gère très bien les actualités qui ne sont clairement pas admissible sur Wikipédia mais qui a sa place sur un site d’actualité (quoique) ou des sujets qui n’intéresse pas la masse de contributeur francophone. Cependant dès que l’évènement est plus important, Wikipédia tend à prendre le relais en proposant un contenu plus détaillé et ne s’arrêtant pas seulement à l’actualité (enquête etc. qui suivent).

Et Wikidata ?


by gratusfr at September 20, 2016 11:03 AM

September 19, 2016

Wiki Loves Monuments (fr)

Photo coup de cœur du 18 septembre !

Voilà une photo très graphique, presque abstraite pour cette photo coup de cœur de la Tour Eiffel du 18 septembre. [CC-BY-SA] Warren Kornberg

by Sarah Krichen at September 19, 2016 03:07 PM

September 18, 2016

Ash Crow

Sunday Query : use SPARQL and Python to fix typographical errors on Wikidata

My turn to make a #SundayQuery! As Harmonia Amanda just said in her own article, I’ll explain tomorrow (or Tuesday) how to make a script to fix the results of her request… But I thought I should start with another script, shorter and easier to understand.

On Thursday, I published an article about medieval battles, and since then, I did start to fix battle items on Wikidata. One of the most repetitive fixes is the capitalization of the French labels: as they have been imported from Wikipedia, the labels have an unnecessary capital first letter (« Bataille de Saint-Pouilleux en Binouze » instead of « bataille de Saint-Pouilleux en Binouze »)

The query

So first, we need to find all the items that have this typo:

SELECT ?item ?label WHERE {
  ?item wdt:P31/wdt:P279* wd:Q178561 .
  ?item rdfs:label ?label . FILTER(LANG(?label) = "fr") .
  FILTER(STRSTARTS(?label, "Bataille ")) .
}

http://tinyurl.com/jljf6xr

Some basic explanations :

  • ?item wdt:P31/wdt:P279* wd:Q178561 .
      looks for items that are battles or subclasses of battles, just to be sure I’m not making changes to some book called « Bataille de Perpète-les-Olivettes »…
  • On the next line, I query the labels for the items 
    ?item rdfs:label ?label .
      and filter to keep only those in French
    FILTER(LANG(?label) = "fr") .
    . As I need to use the label inside the query and not merely for display (as Harmonia Amanda just explained in her article), I cannot use the wikibase:label, and so I use the semantic web standard rdfs:label.
  • The last line is a
    FILTER
     , that keeps only those of the results that matches the function inside it. Here,
    STRSTARTS
      checks if
    ?label
      begins with
    "Bataille "
     .

As of the time I write this, running the query returns 3521 results. Far too much to fix it by hand, and I know no tool that already exists and would fix that for me. So, I guess it’s Python time!

The script

I love Python. I absolutely love Python. The language is great to put up a useful app within minutes, easily readable (It’s basically English, in fact), not cluttered with gorram series of brackets or semicolons, and generally has great libraries for the things I do the most: scraping webpages, parsing and sorting data, checking ISBNs[1] and making websites. Oh and making SPARQL queries of course[2].

Not to mention that the name of the language has a « snake charmer » side ;)

Preliminary thoughts

If you don’t know Python, this article is not the right place to learn it, but there are numerous resources available online[3]. Just make sure they are up-to-date and for Python 3. The rest of this articles assumes that you have a basic understanding of Python (indentation, variables, strings, lists, dictionaries, imports and « for » loops.), and that Python 3 and pip are installed on your system.

Why Python 3? Because we’ll handle strings that come from Wikidata and are thus encoded in UTF-8, and Python 2 makes you jump through some loops to use it. Plus, we are in 2016, for Belenos’ sake.

Why pip? because we need a non-standard library to make SPARQL queries, called SPARQLwrapper, and the easiest way to install it is to use this command:

pip install sparqlwrapper

Now, let’s start scripting!

For a start, let’s just query the full list of the sieges[4]:

#!/usr/bin/env python3

from SPARQLWrapper import SPARQLWrapper, JSON

endpoint = "https://query.wikidata.org/bigdata/namespace/wdq/sparql"

sparql = SPARQLWrapper(endpoint)
sparql.setQuery("""
SELECT ?item ?label WHERE {{
  ?item wdt:P31/wdt:P279* wd:Q178561 .
  ?item rdfs:label ?label . FILTER(LANG(?label) = "fr") .
  FILTER(STRSTARTS(?label, "Siège ")) .
}}
""")  # Link to query: http://tinyurl.com/z8bd26h

sparql.setReturnFormat(JSON)

results = sparql.query().convert()

print(results)

That’s quite a bunch of lines, but what does this script do? As we’ll see, most of this will be included in every script that uses a SPARQL query.

  • First, we import two things from the SPARQLWrapper module: the SPARQLWrapper object itself and a « JSON » that it will use later (don’t worry, you won’t have to manipulate json files yourself.)
  • Next, we create a « endpoint » variable, which contains the full URL to the SPARQL endpoint of Wikidata[5].
  • Next, we create a SPARQLWrapper object that will use this endpoint to make queries, and put it in a variable simply called « sparql ».
  • We apply the setQuery function to this variable, which is where we put the query we used earlier. Notice that we need to replace { and } by {{ and }} : { and } are reserved characters in Python strings.
  • sparql.setReturnFormat(JSON)
      tells the script that what the endpoint will return is formated in  json.
  • results = sparql.query().convert()
    actually makes the query to the server and converts the response to a Python dictionary called « results ».
  • And for now, we just want to print the result on screen, just to see what we get.

Let’s open a terminal and launch the script:

$ python3 fix-battle-labels.py 
{'head': {'vars': ['item', 'label']}, 'results': {'bindings': [{'label': {'value': 'Siège de Pskov', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q815196', 'type': 'uri'}}, {'label': {'value': 'Siège de Silistra', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q815207', 'type': 'uri'}}, {'label': {'value': 'Siège de Tyr', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q815233', 'type': 'uri'}}, {'label': {'value': 'Siège de Cracovie', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q608163', 'type': 'uri'}}, {'label': {'value': 'Siège de Narbonne', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q1098377', 'type': 'uri'}}, {'label': {'value': 'Siège de Hloukhiv', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q2065069', 'type': 'uri'}}, {'label': {'value': "Siège d'Avaricum", 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q4087405', 'type': 'uri'}}, {'label': {'value': 'Siège de Fort Pulaski', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q2284279', 'type': 'uri'}}, {'label': {'value': 'Siège de Liakhavitchy', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q4337397', 'type': 'uri'}}, {'label': {'value': 'Siège de Smolensk', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q4337448', 'type': 'uri'}}, {'label': {'value': 'Siège de Rhodes', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q701067', 'type': 'uri'}}, {'label': {'value': 'Siège de Cracovie', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q7510162', 'type': 'uri'}}, {'label': {'value': 'Siège de Péronne', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q23013145', 'type': 'uri'}}, {'label': {'value': 'Siège de Pskov', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q10428014', 'type': 'uri'}}, {'label': {'value': 'Siège du Hōjūjidono', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q3090571', 'type': 'uri'}}, {'label': {'value': 'Siège de Fukuryūji', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q3485893', 'type': 'uri'}}, {'label': {'value': "Siège d'Algésiras", 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q4118683', 'type': 'uri'}}, {'label': {'value': 'Siège de Berwick', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q5036985', 'type': 'uri'}}, {'label': {'value': "Siège d'Ilovaïsk", 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q17627724', 'type': 'uri'}}, {'label': {'value': "Siège d'Antioche", 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q815112', 'type': 'uri'}}]}}

That’s a bunch of things, but we can see that it contains a dictionary with two entries:

  • « head », which contains the name of the two variables returned by the query,
  • and « results », which itself contains another dictionary with a « bindings » key, associated with a list of the actual results, each of them being a Python dictionary. Pfew…

Let’s examine one of the results:

{'label': {'value': 'Siège de Pskov', 'type': 'literal', 'xml:lang': 'fr'}, 'item': {'value': 'http://www.wikidata.org/entity/Q815196', 'type': 'uri'}}

It is a dictionary that contains two keys (label and item), each of them having for value another dictionary that has a « value » key associated with, this time, the actual value we want to get. Yay, finally!

Parsing the results

Let’s parse the « bindings » list with a Python « for » loop, so that we can extract the value:

for result in results["results"]["bindings"]:
    qid = result['item']['value'].split('/')[-1]
    label = result['label']['value']

    print(qid, label)

Let me explain the 

qid = result['item']['value'].split('/')[-1]
  line: as the item name is stored as a full url (« https://www.wikidata.org/entity/Q815196 » and not just « Q815196 », we need to separate each part of it that is between a ‘/’ character. For this, we use the « split() » function of Python, which transforms the string to a Python list containing this:

['https:', '', 'www.wikidata.org', 'entity', 'Q815196']

We only want the last item in the list. In Python, that means the item with the index -1, hence the [-1] at the end of the line. We then store this in the qid variable.

Let’s launch the script:

$ python3 fix-battle-labels.py 
Q815196 Siège de Pskov
Q815207 Siège de Silistra
Q815233 Siège de Tyr
Q608163 Siège de Cracovie
Q1098377 Siège de Narbonne
Q2065069 Siège de Hloukhiv
Q4087405 Siège d'Avaricum
Q2284279 Siège de Fort Pulaski
Q4337397 Siège de Liakhavitchy
Q4337448 Siège de Smolensk
Q701067 Siège de Rhodes
Q7510162 Siège de Cracovie
Q23013145 Siège de Péronne
Q10428014 Siège de Pskov
Q3090571 Siège du Hōjūjidono
Q3485893 Siège de Fukuryūji
Q4118683 Siège d'Algésiras
Q5036985 Siège de Berwick
Q17627724 Siège d'Ilovaïsk
Q815112 Siège d'Antioche

Fixing the issue

We are nearly there! Now what we need is to replace this first proud capital « S » initial by a modest « s »:

label = label[:1].lower() + label[1:]

What is happening here? a Python string works like a list, so we take the part of the string between the beginning of the « label » string and the position after the first character (« label[:1] ») and force it to lower case (« .lower() »). We then concatenate it with the rest of the string (position 1 to the end or « label[1:] ») and assign all this back to the « label » variable.

Last thing, print it in a format that is suitable for QuickStatements:

out = "{}\tLfr\t{}".format(qid, label)
print(out)

That first line seems barbaric? it’s in fact pretty straightforward:

"{}\tLfr\t{}"
is a string that contains a first placeholder for a variable (« {} »), then a tabulation (« \t »), then the QS keyword for the French label (« Lfr »), then another tabulation and finally the second placeholder for a variable. Then, we use the « format() » function to replace the placeholders with the content of the « qid » and « label » variables. The final script should look like this:

#!/usr/bin/env python3

from SPARQLWrapper import SPARQLWrapper, JSON

endpoint = "https://query.wikidata.org/bigdata/namespace/wdq/sparql"

sparql = SPARQLWrapper(endpoint)
sparql.setQuery("""
SELECT ?item ?label WHERE {{
  ?item wdt:P31/wdt:P279* wd:Q178561 .
  ?item rdfs:label ?label . FILTER(LANG(?label) = "fr") .
  FILTER(STRSTARTS(?label, "Siège ")) .
}}
""")  # Link to query: http://tinyurl.com/z8bd26h

sparql.setReturnFormat(JSON)

results = sparql.query().convert()

for result in results["results"]["bindings"]:
    qid = result['item']['value'].split('/')[-1]
    label = result['label']['value']

    label = label[:1].lower() + label[1:]

    out = "{}\tLfr\t{}".format(qid, label)
    print(out)

Let’s run it:

$ python3 fix-battle-labels.py 
Q815196	Lfr	siège de Pskov
Q815207	Lfr	siège de Silistra
Q815233	Lfr	siège de Tyr
Q2065069	Lfr	siège de Hloukhiv
Q2284279	Lfr	siège de Fort Pulaski
Q1098377	Lfr	siège de Narbonne
Q608163	Lfr	siège de Cracovie
Q4087405	Lfr	siège d'Avaricum
Q4337397	Lfr	siège de Liakhavitchy
Q4337448	Lfr	siège de Smolensk
Q701067	Lfr	siège de Rhodes
Q10428014	Lfr	siège de Pskov
Q17627724	Lfr	siège d'Ilovaïsk
Q23013145	Lfr	siège de Péronne
Q815112	Lfr	siège d'Antioche
Q3090571	Lfr	siège du Hōjūjidono
Q3485893	Lfr	siège de Fukuryūji
Q4118683	Lfr	siège d'Algésiras
Q5036985	Lfr	siège de Berwick

Yay! All we have to do now is to copy and paste the result to QuickStatements and we are done.

Title picture: Photograph of typefaces by Andreas Praefcke (public domain)

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

  1. I hope I’ll be able to write something about it sometime soon.
  2. Plus, the examples in the official documentation are Firefly-based. Yes sir, Captain Tightpants.
  3. For example, https://www.codecademy.com/learn/python or https://learnpythonthehardway.org/book/.
  4. I’ve fixed the battles in the meantime 😉
  5. And not the web access to the endpoint, which is just « https://query.wikidata.org/ »

by Ash_Crow at September 18, 2016 04:30 PM

Wiki Loves Monuments (fr)

Ash Crow

Sunday Query: all surnames marked as disambiguation pages, with an English Wikipedia link and with « (surname) » in their English label

It’s Sunday again! Time for the queries! Last week I showed you the basics of SPARQL; this week I wanted to show you how we could use SPARQL to do maintenance work. I assume you now understand the use of PREFIX, SELECT, WHERE.

I have been a member of the WikiProject:Names for years. When I’m not working on Broadway and the Royal Academy of Dramatic Art archives,[1] I am one of the people who ensure that “given name:Christopher (Iowa)” is transformed back to “given name:Christopher (given name)”. Over the last weeks I’ve corrected thousands of wrong uses of the given name/family name properties, and for this work, I used dozens of SPARQL queries. I thought it could be interesting to show how I used SPARQL to create a list of strictly identical errors that I could then treat automatically.

What do we search?

If you read the constraints violations reports, you’ll see that the more frequent error for the property “family name” (P734) is the use of a disambiguation page as value instead of a family name. We can do a query like that:

SELECT ?person ?personLabel ?name ?nameLabel
WHERE {
    ?person wdt:P734 ?name . #the person has a family name
    ?name wdt:P31 wd:Q4167410 . #the item used as family name is a disambiguation page
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en,fr" . } #We want to have the results in English or in French if there is no English label
}

link to the query. The results are in the thousands. Sigh.

But then we find something more interesting: there are entities which are both a disambiguation page and a family name. What?! That’s ontologically wrong. To use the wrong value as family name is human error; but an entity can’t be both a specific type of Wikimedia page and a family name. It’s like saying a person could as well be a book. Ontologically absurd. So all items with both P31 need to be corrected. How many are there?

SELECT DISTINCT ?name ?nameLabel (LANG(?label) AS ?lang)
WHERE {
    ?name wdt:P31 wd:Q101352 ; #the entity is a family name
          wdt:P31 wd:Q4167410 . #the entity is also a disambiguation page
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en,fr" . } #We want to have the results in English or in French if there is no English label
}

link to the query.
Several thousands again. Actually, there are more entities which are both a disambiguation page and a family name than there are person using disambiguation pages as family names. This means there are family names/disambiguation pages in the database which aren’t used. They’re still wrong but it doesn’t show in violation constraints reports.

If we explore, we see than there are different cases out there: some of the family names/disambiguation pages are in reality disambiguation pages, some are family names, some are both (they link to articles on different Wikipedia, some about a disambiguation page and some about a family name; these need to be separated). Too many different possibilities: we can’t automatize the correction. Well… maybe we can’t.

Restraining our search

If we can’t treat in one go all disambig/family name pages, maybe we can ask a more precise question. In our long list of violations, I asked for English label and I found some disbelieving ones. There were items named “Poe (surname)”. As disambiguation pages. That’s a wrong use of label, which shouldn’t have precisions about the subject in brackets (that’s what the description is for) but if they are about a surname they shouldn’t be disambiguation pages too! So, so wrong.

Querying labels

But still, the good news! We can isolate these entries. For that we’ll have to query not the relations between items but the labels of the items. Until now, we had used the SERVICE wikibase:label workaround, a tool which only exists on the Wikidata endpoint, because it was really easy and we only wanted to have human-readable results, not really to query labels. But now that we want to, the workaround isn’t enough, we’ll need to do it the real SPARQL way, using rdfs.

Our question now is: can I list all items which are both family names and disambiguation pages, whose English label contains “(surname)”?

SELECT DISTINCT ?name ?label (LANG(?label) AS ?lang)
WHERE {
    ?name wdt:P31 wd:Q101352 ; #the entity is a family name
          wdt:P31 wd:Q4167410 ; #the entity is also a disambiguation page
          rdfs:label ?label . #the entity have a label
    FILTER(LANG(?label) IN ("en")). #this label exists in English
    FILTER(CONTAINS(?label, "(surname)")). #this label contains a specific string
}

link to the query. We had several hundreds results.[2] You should observe the changes I made in the SELECT DISTINCT as I don’t use the SERVICE wikibase:label workaround.

Querying sitelinks

Can we automatize correction now? Well… no. There is still problems. In this list, there are items which have links to several Wikipedia, the English one about the surname and the other(s) ones about a disambiguation page. Worse, there are items which don’t have an English interwiki any longer, because it was deleted or linked to another item (like the “real” family name item) and the wrong English label persisted. Si maybe we can filter our list to only items with a link to the English Wikipedia. For this, we’ll use schema.

SELECT DISTINCT ?name ?label (LANG(?label) AS ?lang)
WHERE {
    ?name wdt:P31 wd:Q101352 ; #the entity is a family name
          wdt:P31 wd:Q4167410 ; #the entity is also a disambiguation page
          rdfs:label ?label . #the entity have a label
    ?sitelink schema:about ?name .  #We want the entity to have a sitelink
              schema:inLanguage "en" ; #this sitelink is in English
              schema:isPartOf  <https://en.wikipedia.org/> . #and link to the English WP (and not Wikisource or others projects)
    FILTER(LANG(?label) IN ("en")). #the label exists in English
    FILTER(CONTAINS(?label, "(surname)")). #the label contains a specific string
}

link to the query. Well, that’s better! But our problem is still here: if they have several sitelinks, maybe the other(s) sitelink are not about the family name. So we want the items with an English interwiki and only an English interwiki. Like this:

SELECT DISTINCT ?name ?label (LANG(?label) AS ?lang)
WHERE {
    ?name wdt:P31 wd:Q101352 ; #the entity is a family name
          wdt:P31 wd:Q4167410 ; #the entity is also a disambiguation page
          rdfs:label ?label . #the entity have a label
    ?sitelink schema:about ?name .  #We want ?name to have a sitelink
    ?WParticle schema:about ?name ; #We'll define the characteristic of the sitelink
               schema:inLanguage "en" ; #this sitelink is in English
               schema:isPartOf  <https://en.wikipedia.org/> . #and link to the English WP (and not Wikisource or others projects)
    FILTER(LANG(?label) IN ("en")). #the label exists in English
    FILTER(CONTAINS(?label, "(surname)")). #the label contains a specific string
} GROUP BY ?name ?label HAVING (COUNT(DISTINCT ?sitelink) = 1) #With only one sitelink

link to the query.

Several things: we separated ?sitelink and ?WParticle. We use ?sitelink to query the number of sitelinks, and ?WParticle to query the particular of this sitelink. Note that we need to use GROUP BY, like last week.

Polishing of the query

Just to be on the safe side (we are never safe enough before automatizing corrections) we’ll also check that all items on our list are only family name/disambiguation pages; they’re not also marked as a location or something equally strange. So we query that they have only two P31 (instance of), these two being defined as Q101352 (family name) and Q4167410 (disambiguation page).

SELECT DISTINCT ?name ?label (LANG(?label) AS ?lang)
WHERE {
    ?name wdt:P31 ?type ; #the entity use the property P31 (instance of)
          wdt:P31 wd:Q101352 ; #the entity is a family name
          wdt:P31 wd:Q4167410 ; #the entity is also a disambiguation page
          rdfs:label ?label . #the entity have a label
    ?sitelink schema:about ?name .  #We want ?name to have a sitelink
    ?WParticle schema:about ?name ; #We'll define the characteristic of the sitelink
               schema:inLanguage "en" ; #this sitelink is in English
               schema:isPartOf  <https://en.wikipedia.org/> . #and link to the English WP (and not Wikisource or others projects)
    FILTER(LANG(?label) IN ("en")). #the label exists in English
    FILTER(CONTAINS(?label, "(surname)")). #the label contains a specific string
} GROUP BY ?name ?label HAVING ((COUNT(DISTINCT ?type) = 2) && (COUNT(DISTINCT ?sitelink) = 1)) #With only two P31 and one sitelink

link to the query.

It should give you a beautiful “no matching records found”. Yesterday, it gave me 175 items which I knew I could correct automatically. Which I have done, with a python script made by Ash_Crow. If you are good, he’ll make a #MondayScript in response to this #SundayQuery!

(Main picture: Name List of Abhiseka – Public Domain, photograph done by Kūkai.)

  1. Yes, I really want you to read this one.
  2. Then. We had several hundreds result then. I’m happy to say it isn’t true now.

by Harmonia Amanda at September 18, 2016 12:51 PM

September 17, 2016

Wiki Loves Monuments (fr)

Coup de cœur du 16 septembre !

Et voilà le chien de pierre qui garde les jardins du Château de Villandry en Indre-et-Loire. Photo coup de coeur par DOGr CC-BY-SA 4.0.

by Sarah Krichen at September 17, 2016 02:44 PM

September 16, 2016

Wiki Loves Monuments (fr)

Photo du jour du 15 septembre !

Le château d’Angles-sur-l’Anglin qui domine la vallée du haut de sa falaise.

Par Bachelier Jacky (Travail personnel) [CC BY-SA 4.0]

by Sarah Krichen at September 16, 2016 04:07 PM

Wikimédia France

Plaidoyer pour enseigner Wikipédia, suite mais pas fin.

Après avoir écrit le billet Plaidoyer pour enseigner Wikipédia, j’ai participé à une table ronde Wikipédia à l’école à la Wikiconvention francophone puis discuté de l’enseignement de Wikipédia à l’EdCamp Paris à l’ICP, dans le cadre d’un “kindergarten” organisé par Wikimédia France. J’ai pu échanger avec des enseignants et contributeurs de Wikipédia sur ce thème, et j’en profite ainsi pour écrire une suite au premier billet qui tiendra également lieu de compte rendu pratique.

Il existe tout d’abord plusieurs façons d’utiliser Wikipédia dans l’enseignement supérieur et la vision des objectifs pédagogiques vus par Wikipédia et par l’enseignant ne sont pas forcément les mêmes. Ziko Van Dijk, autre intervenant de la table ronde à la Wikiconvention exprime cela en distinguant que l’objectif d’améliorer l’encyclopédie (c’est à dire produire du contenu), et former de nouveaux wikipédiens n’est pas forcément contenue dans l’idée pédagogique de l’universitaire.

Les collègues enseignants les plus réticents à Wikipédia ont comme objectif d’apprendre à s’en méfier : Wikipédia est associée à la peur du plagiat et à la question de la fiabilité. Nombreux sont ceux qui ont une vision très négative et stéréotypée. Il y a ensuite l’objectif d’apprendre à s’en servir, parfois pas très éloigné parfois d’ apprendre à s’en servir à des fins autopromotionelles : c’est la vision de “valorisation” du travail de recherche.

D’autres encore voient en Wikipédia la possibilité d’évaluer l’étudiant par l’écriture d’articles. Apprendre à écrire pour de vrai et être jugé par des pairs est déjà une activité plus en phase avec Wikipédia. L’une des variantes consiste à apprendre une matière en écrivant ; se pose alors le problème de la répétabilité d’une année sur l’autre. Une autre variante est d’apprendre à sourcer. C’est un objectif pédagogique constituant une des meilleures réponses à la vision méfiante vis-à-vis de Wikipédia.

Enfin il est possible d’utiliser Wikipédia comme vecteur ; apprendre à pénétrer un monde nouveau (dans le cours de Lionel Barbe, enseignant à Paris-Ouest également, ce dernier se définit comme un passeur de sciences plutôt qu’un maître). Dans mon cas, Wikipédia est un vecteur d’apprentissage de littératie numérique, ou plus exactement, comme le rappelle Milad Douheihi à la conférence inaugurale de l’EdCamp, une littératie numérique en tant que culture plutôt que technique ; développer une culture numérique critique de Wikipédia et du monde numérique par Wikipédia

Mon but est de parvenir à faire partager ma vision distanciée mais pas complètement de Wikipédia, faire toucher du doigt comment Wikipédia est un monde avec des aspects techniques, des aspects politiques, des aspects sociologiques, démocratiques, juridiques, épistémologiques….uniques et surtout complètement entremêlés les uns aux autres, et je le fais en racontant des anecdotes….des anecdotes qui ont pour but de révéler ces enchevêtrements en racontant une histoire. L’anecdote est censée surprendre sur un sujet que tout le monde connaït mais que personne ne connaît ET révéler les tensions et interpénétrations de tous ces thèmes, mais aussi provoquer des questions-réponses, particulièrement si l’anecdote a ou a eu un succès médiatique, si elle a été relatée dans la presse…

Par exemple : quand est abordée dans la pédagogie de l’écriture la question de l’ajout de photos, les principes de wikimedia commons, et/ou les règles du copyvio, l’anecdote du selfie du macaque met en lumière ces sujets, leur enchevêtrement, et leurs implications à la fois juridiques, techniques, procédurales, et de choix de licence, tout en traitant du militantisme du copyleft. L’anecdote est donc tout sauf futile : elle met en lumière cette complexité.

Mais dans la pratique, pour l’enseigner, la structure académique pose d’autres problèmes qu’un manque de vision pédagogique. Elle pose aussi des problèmes concrets à la fois pédagogiques et techniques :
Le premier problème est la nécessité (pour l’enseignant et l’étudiant) d’un cours hybride : à moitié en présentiel et à moitié en ligne. Dans la mesure où intervenir dans Wikipédia est une activité propre à une communauté en ligne et qui réagit de manière asynchrone, la partie active de l’enseignement n’est pas du tout adaptée à être présents obligatoirement en classe/amphi tout le temps en même temps ensemble. Pour tout ce qui est présentation, exemples, principes, débat dans la classe… le présentiel s’impose, il est même crucial : enseigner Wikipédia en ligne serait possible mais la description critique des mécanismes d’une part, l’accompagnement dans les premiers pas et la conclusion d’autre part sont plus faciles en présentiel. Mais d’un autre côté, dans toute la partie où l’étudiant doit plonger dans Wikipédia, y agir, y interagir ne se prête pas du tout à des séances en présentiel à heures et durée fixes : l’interaction avec la communauté est asynchrone.

Pire, obliger les étudiants à intervenir ensemble en même temps sur Wikipédia est une aberration technique : puisque tous les ordinateurs d’une même salle (voire même de toute une université ) sont vus par l’extérieur comme une seule adresse IP, la probabilité d’être vu comme une attaque en déni de service par Wikipédia est énorme et rend l’écriture dans Wikipédia impraticable. Wikipédia, pour se protéger, possède un mécanisme : pas plus de quelques interventions par minute provenant d’une même adresse IP avant blocage. La conséquence est de rendre impossible l’écriture dans Wikipédia dès que le nombre d’étudiants dépasse une poignée.

Une des conséquences de cet asynchronisme souhaité, est que la remise d’un écrit, d’une contribution à Wikipédia ne devrait PAS être l’aboutissement, ni d’un rendu, ni d’un cours, parce qu’il faut laisser le temps à la communauté de réagir ET à la classe d’en discuter. C’est une notion qui perturbe le schéma pédagogique ou le rendu conclut traditionnellement un cours, laissant au maître le soin d’évaluer, une fois le cours fini.

La question de l’évaluation s’est de fait beaucoup posée à la Wikiconvention. Si les enseignants savent tirer profit de Wikipédia pour imaginer une évaluation “par les pairs”, ils se posent souvent la question de comment évaluer l’évaluation, ou plus prosaïquement, comment transformer cette évaluation en note quantitative et compatible avec la logique universitaire de notation. Cet abandon de souveraineté de l’enseignant aux pairs est aussi à mettre en parallèle avec la question de choix du sujet de contribution d’un étudiant: en laissant à ce dernier la possibilité de s’exprimer (comme Wikipédia le recommande) dans un domaine qui lui est cher, l’enseignant est possiblement confronté à la possibilité de ne pas être l’expert du sujet.

De cette interrogation venant de collègues qui n’ont pas hésiter à plonger dans Wikipédia, on peut déduire qu’il n’est pas conseillé d’imaginer un cours et une évaluation de ce style sans avoir un minimum d’expérience de Wikipédia, d’être soit même lettré en Wikipédia.

Il reste beaucoup de choses à faire pour rendre l’Université et l’enseignement de Wikipédia compatibles, mais de plus en plus de gens s’y mettent…et en débattent.

Ce billet, deuxième d’une série sur l’enseignement de Wikipédia à l’Université est écrit par Alexandre Hocquet (Membre de Wikimédia France, Professeur des Universités à l’Université de Lorraine, appartenant au laboratoire de philosophie et d’histoire des sciences « Archives Henri Poincaré » dont le domaine est les STS, ou plus spécifiquement les Software Studies, et sa méthode l’analyse de conversations en fil).

by Mathieu Denel at September 16, 2016 02:00 PM

Alphos

SPARQuickL 2 – Risque de décès

Étape 1 : Pays

SELECT ?country ?countryLabel WHERE { ?country wdt:P31 wd:Q6256 . # countries SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } }

Essayez

Étape 2 : Personnes mortes en 2015 et leur nationalité

SELECT ?person ?dod ?country WHERE { ?person wdt:P31 wd:Q5 . # humans ?person wdt:P570 ?dod . # of

Continue reading « SPARQuickL 2 – Risque de décès »

by Alphos at September 16, 2016 01:22 PM

Wiki Loves Monuments (fr)

Image du jour du 14 septembre !

Appréciez l’entrée de la crypte de l’abbassiale de cruas du 10° siècle pour cette photo coup de cœur WLM 2016 ! Photo réalisée par Celeda CC-BY-SA 4.0

by Sarah Krichen at September 16, 2016 10:15 AM

September 15, 2016

Ash Crow

De la classification sur Wikidata

Quand on classe des trucs, on a grosso-modo deux approches possibles : des cases hyper-pointues allant aussi loin que possible dans le détail, ou au contraire des cases très larges en laissant à l’utilisa⋅teur⋅trice le soin de croiser pour trouver ce qui l’intéresse. Wikimedia Commons a grosso-modo choisi la première approche, avec des catégories comme « [[Category:Castles in Andalusia at night]] [1]Je suis déçu : il n’y a pas de sous-catégorie [[Category:Castles in Andalusia at night facing left]]. », alors que Wikidata a plutôt choisi l’approche inverse, avec un grand nombre de propriétés que l’on peut croiser par le biais de requêtes SPARQL (entre autres), ce qui donne pour l’Alhambra de Grenade : « Nature de l’élément (P31) → château fort (Q23413) » et « Pays (P17) → Espagne (Q29) » et tout un tas d’autres déclarations [2]Wikipédia, quant à elle, hésite entre ces deux approches, selon les catégories..

Un château en Espagne (allégorie)
Un château en Espagne (satire)

Je dis « plutôt choisi » parce qu’il arrive qu’on tombe sur des cas où une classe tente de mélanger plusieurs axes, et qui suffisent généralement à démontrer pourquoi cette approche est une mauvaise idée. En l’espèce, je vais me pencher sur l’élément « bataille du Moyen Âge (Q15991159) » : ça tombe bien, c’est un domaine qui me botte.

Le problème des classes aux limites arbitraires

Le premier problème qui vient à l’esprit, c’est les limites de la classe : si on se fie à sa description en français, la seule présente lors de sa création, cette classe est censée contenir des « bataille[s] ayant eu lieu pendant la période du moyen âge, en occident ». Bon, la description précise explicitement l’Occident qui n’était qu’implicitement défini par le fait que le Moyen Âge est une notion d’historiographie occidentale, mais les limites restent assez floues.

  • Bataille en soi est discutable (on peut se poser la question d’y inclure ou non les sièges, par exemple), mais partons du principe que l’on a la même définition que pour l’élément « bataille (Q178561) » tout court qu’il remplace en tant que nature de l’élément (P31).
  • Par contre, « la période du moyen âge », c’est largement plus subjectif. Les dates varient pas mal. Si la plupart des historiens s’accordent à situer le début à l’année 476 [3]En revanche, la culture populaire a tendance à ignorer complètement le haut Moyen Âge. Tous les jeux de stratégie médiévale que je connais commencent en 1066 avec l’expédition de Guillaume le Conquérant. Si la période précédente est abordée, c’est dans des extensions, comme Crusader Kings II avec Charlemagne., la fin est plus floue. Même en ignorant le « long Moyen Âge » de Jacques Le Goff qui s’étend en gros de Justinien à la Révolution française, les dates généralement admises varient par pays mais sont situées dans la seconde moitié du XVe siècle.
  • Enfin, comme dit plus haut, le Moyen Âge est un concept occidental, ce qui recouvre une zone aux contours flous, aussi bien à l’époque actuelle que si on se limite au Moyen Âge : au début de la période, c’est l’Empire romain d’Occident, celui qui vient de s’effondrer sous les coups des barbares assoiffés de sang qui, etc., vous connaissez le roman national. À la fin, c’est, pour faire simple, la Chrétienté [4]enfin pas l’Éthiopie non plus, faut pas déconner., ce qui pose d’autres questions : à partir de quand peut-on inclure les batailles dans les pays orthodoxes ? Et dans les pays scandinaves/germaniques/nordiques ? Et les batailles impliquant des forces européennes mais se passant ailleurs, comme les Croisades, on les compte ? Autrement dit pour ce dernier cas, on définit « Occident » par le lieu de l’action ou par l’origine des belligérants ?

Par comparaison, l’approche standard de Wikidata (en utilisant « nature de l’élément (P31)bataille (Q178561) », date (P585) [5]ou « date de début (P580) » et « date de fin (P582) » si besoin., « lieu (P276) » et « participant (P710) » pour les cas abordés dans la liste ci-dessus) se révèle à la fois plus souple (on peut être très précis⋅e sur la date comme sur le lieu) et moins subjective que l’apposition de la classe bataille du moyen Âge…

Les données réelles

Du coup, avec des définitions aussi floues, on peut se demander comment les données sont utilisées…

Cherchons donc ça.

# Batailles du moyen-âge
SELECT ?item ?itemLabel ?lieuLabel ?date ?coords WHERE {
  ?item wdt:P31 wd:Q15991159 .
  
  OPTIONAL{ ?item wdt:P276 ?lieu . }
  OPTIONAL{ ?item wdt:P585 ?date . }
  OPTIONAL{ ?item wdt:P625 ?coords . }
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" }
} ORDER BY ?itemLabel

On a donc 687 éléments ayant cette nature, dont voici la liste par ordre alphabétique.

Répartition géographique

Plaçons donc les résultats sur une carte :

bataillesmoyenagecarte

http://tinyurl.com/jf4kvzw

Ouch, ça pique. Je veux bien admettre qu’on compte les batailles au Proche Orient, probablement liées aux Croisades, mais des chevaliers médiévaux dans le Golfe de Guinée ? au Mexique ? au Japon ? Il semblerait que la limitation de la classe à l’Occident ne soit pas une évidence pour tout le monde. Argh. Mais on est au moins raccord sur la période alors ?

Répartition temporelle

bataillesmoyenagefrisehttp://tinyurl.com/hkb6cqf

Si on place les résultats sur une frise, c’est nettement meilleur que sur la carte, avec seulement deux résultats manifestement erronés : la bataille d’Andrinople en 378 et celle de Szikszó en 1588 (vous ne devriez pas les voir ressurgir dans les résultats, j’ai corrigé ça.) Reste que la limite de fin reste arbitraire, contrairement à une requête normale où l’on peut choisir celle qui nous intéresse, que ça soit 1453 [6]Quand les Bretons sont venus sauver le cul des Français une énième fois à la bataille de Castillon. Ou alors c’est pour l’invention de l’imprimerie mobile par Gutenberg, ou la chute de Constantinople, allez savoir., 1492 [7]Quand les Français, ingrats (cf. note précédente), s’emparent de « la ville de Rennes et la fille qui est dedans », à moins que ça n’ait trait à la fin de la Reconquista et à l’expédition de Christophe Colomb…, ou n’importe quelle autre.

Si on résume, l’arbitraire des choix impliqués par une classe croisant de multiples critères la rend inutilisable en pratique, tout en compliquant la recherche des batailles « normales » puisque qu’on doit du coup inclure les sous-classes, juste pour récupérer les batailles ayant eu lieu en Europe (ou pas) entre 476 et 1453, ou 1492, ou 1500 (enfin on l’espère).

Ma conclusion ? Comme disait Jeanne la Flamme au siège d’Hennebont, foutez-y-moi le feu.

jeanne_flamme
Jeanne la Flamme, par Jeanne Malivel (1926)

Image d’en-tête : Le Combat des Trente (détail), par Pierre Le Baud (1480-1482)

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Enregistrer

Notes   [ + ]

1. Je suis déçu : il n’y a pas de sous-catégorie [[Category:Castles in Andalusia at night facing left]].
2. Wikipédia, quant à elle, hésite entre ces deux approches, selon les catégories.
3. En revanche, la culture populaire a tendance à ignorer complètement le haut Moyen Âge. Tous les jeux de stratégie médiévale que je connais commencent en 1066 avec l’expédition de Guillaume le Conquérant. Si la période précédente est abordée, c’est dans des extensions, comme Crusader Kings II avec Charlemagne.
4. enfin pas l’Éthiopie non plus, faut pas déconner.
5. ou « date de début (P580) » et « date de fin (P582) » si besoin.
6. Quand les Bretons sont venus sauver le cul des Français une énième fois à la bataille de Castillon. Ou alors c’est pour l’invention de l’imprimerie mobile par Gutenberg, ou la chute de Constantinople, allez savoir.
7. Quand les Français, ingrats (cf. note précédente), s’emparent de « la ville de Rennes et la fille qui est dedans », à moins que ça n’ait trait à la fin de la Reconquista et à l’expédition de Christophe Colomb…

Cet article De la classification sur Wikidata est apparu en premier sur The Ash Tree.

by Ash_Crow at September 15, 2016 06:00 AM

September 14, 2016

Wikitraits

Wiki Loves Monuments (fr)

Image du jour du 13 septembre !

Et voici pour la photo du jour le moulin à eau du Hameau de la Reine Marie Antoinette. On distingue même sur cette façade la roue en chêne qui n’était en fait qu’un décor. Par Jacky Delville (Travail personnel) [CC BY-SA]

Pour en savoir plus sur le hameau de la Reine, lisez l’article de qualité sur Wikipédia !

by Sarah Krichen at September 14, 2016 03:31 PM

September 13, 2016

Wiki Loves Monuments (fr)

Ash Crow

Prototypage rapide d’entités Wikidata

W

ikidata est un projet puissant, mais pour pouvoir en profiter, il faut le remplir. Bien sûr, il est possible d’ajouter des données à la main directement sur le site : ça fonctionne sans souci mais que faire quand on a plusieurs dizaines d’entrées ? Plusieurs centaines ? Avec le temps, quelques outils ont vu le jour permettant d’automatiser un peu ce processus, comme l’indispensable QuickStatements ; là encore, il faut bien lui fournir les données qu’il mange et tout ceci est parfois bien fastidieux. Est-ce qu’on ne peut pas aller plus loin ?

Une entrée wikidatienne sur un être humain, par exemple, possède des champs plus ou moins codifiés :

  • Une nature de l’élément égal à Q5, « être humain »
  • Un genre (masculin, féminin, etc.)
  • Une date et un lieu de naissance
  • Une date et un lieu de décès
  • Un pays de nationalité
  • Une occupation
  • Un prénom et un nom de famille

Toutes ces propriétés ne se rencontrent pas à chaque fois et on peut en rajouter d’autres, mais est-ce que ça ne serait pas intéressant d’avoir une sorte de formulaire où on se contenterait de remplir les cases correspondantes, histoire de créer rapidement un squelette d’entité Wikidata ? Pour voir, j’ai codé l’utilitaire « human » : vous mettez ce qu’il faut dans les champs, vous appuyez sur le bouton et il produit le code à destination de QuickStatements. J’ai le sentiment qu’on peut ainsi gagner du temps et on n’oublie rien.

Histoire d’aller un peu plus loin, je me suis penché sur la base Joconde, qui a le goût d’être remplie avec pas mal de soin. J’en ai sorti un autre utilitaire, baptisé Joconde parce que je suis un gars avec une imagination débordante. Sa fonction : parser une fiche Joconde, en retirer les champs qui vont bien (titre, auteur, sujets représentés, etc.) et présenter le résultat dans un formulaire pour correction avant envoi à QuickStatements. Les champs corrigés sont stockés en base, histoire que si l’utilitaire puisse ressortir la correction s’il retombe dessus (comme ça, « MONET Claude » est automatiquement corrigé en « Claude Monet, peintre français, Q296 »). On y gagne du temps.

Personnellement, je pense que cette idée de formulaires pré-remplis est à creuser, pour Wikidata. Qu’en pensez-vous ?

PS : j’imagine que mon outil pour Joconde doit enfreindre des milliers de lois, de licences et de copyrights. Je laisse le soin aux Wikimédiens que ça intéresse de discuter de la chose et de décider s’il faut supprimer toutes mes contributions. Prévenez-moi juste du résultat final.

(Image d’en-tête : détail de La Joconde, par Léonard de Vinci (domaine public))

Mise à jour du 28 septembre 2016 : j’ai placé le code des outils en question sur GitHub : https://github.com/PoulpyFR. Bien sûr, c’est codé n’importe comment et pas commenté. 🙂

Cet article Prototypage rapide d’entités Wikidata est apparu en premier sur The Ash Tree.

by Poulpy at September 13, 2016 06:18 AM

September 11, 2016

Ash Crow

Sunday Query: The 200 Oldest Living French Actresses

Hello, here’s Harmonia Amanda again (I think Ash_Crow just agreed to let me squat his blog indefinitely). This article shouldn’t be too long, for once.[1] It started as an hashtag on twitter #SundayQuery, where I wrote SPARQL queries for people who couldn’t find how to ask their question. So this article, and the next ones if I keep this up, are basically a kind of “how to translate a question in SPARQL step by step” tutorial.

The question this week was asked by Jean-No: who are the oldest French actresses still alive?

To begin: the endpoint and PREFIX…

SPARQL is the language you use to query a semantic database. For that you can use an endpoint, which are services that accept SPARQL queries and return results. There are many SPARQL endpoints around, but we will be using the Wikidata endpoint.

A semantic base is constituted of triples of information: subject, predicate, object (in Wikidata, we usually call that item, property, value, but it’s the exact same thing). As querying with full URIs all the time would be really tedious, SPARQL needs PREFIX.

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bd: <http://www.bigdata.com/rdf#>

These are the standard prefixes used to query Wikidata. If used, they should be stated at the top of the query. You can add other prefixes as needed to. Actually, the Wikidata endpoint has been created to specifically query Wikidata, so all these prefixes are already declared, even if you don’t see them. But it’s not because they aren’t visible that they aren’t there, so always remember: SPARQL NEEDS PREFIX. There.

All French women

The first thing to declare after the prefixes, is what we are asking to have for results. We can use the command SELECT or the command SELECT DISTINCT (this one ask to clear off duplicates) and then listing the variables.

As we are looking for humans, we’ll call this variable “person” (but we could choose anything we want).

SELECT ?person

We will then define the conditions we want our variable to respond to, with WHERE. We are seeking the oldest French actresses still alive. We need to cut that in little understandable bits. So the first step is, we are querying for human beings (and not fictional actresses). Humans beings are all items which have the property “instance of” (P31) with the value “human” (Q5).

So:

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 .
    }

This query will return all humans in the database.[2] But we don’t want all humans, we want only the female ones. So we want humans who also answer to “sex or gender” (P21) with the value “female” (Q6581072).

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 .
    ?person wdt:P21 wd:Q6581072 .
    }

And we want them French as well! So with “country of citizenship” (P27) with the value “France” (Q142).

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 .
    ?person wdt:P21 wd:Q6581072 .
    ?person wdt:P27 wd:Q142 .
    }

Here it is, all French women. We could also write the query this way:

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 ;
            wdt:P21 wd:Q6581072 ;
            wdt:P27 wd:Q142 .
    }

It’s exactly the same query.

All French actresses

Well that seems like a good beginning, but we don’t want all women, we only want actresses. It could be as simple as “occupation” (P106) “actor” (Q33999) but it’s not. In reality Q33999 doesn’t cover all actors and actresses: it’s a class. Subclasses, like “stage actor”, “television actor”, “film actor” have all “subclass of” (P279) “actor” (Q33999). We don’t only want the humans with occupation:actor; we also want those with occupation:stage actor and so on.

So we need to introduce another variable, which I’ll call ?occupation.

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 . #All humans
    ?person wdt:P21 wd:Q6581072 . #Of female gender
    ?person wdt:P27 wd:Q142 . #With France as their citizenship country
    ?person wdt:P106 ?occupation . #With an occupation
    ?occupation wdt:P279* wd:Q33999 . #This occupation is or is a subclass off "actor"
    }

Actually, if we really wanted to avoid the ?occupation variable, we could have written:

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 ;
            wdt:P21 wd:Q6581072 ;
            wdt:P27 wd:Q142 ;
            wdt:P106/wdt:P279* wd:Q33999 .
    }

I’s the same thing, but I found it less clear for beginners.

Still alive

So now we need to filter by age. The first step is to ensure they have a birth date (P569). As we don’t care (for now) what this birth date is, we’ll introduce a new variable instead of setting a value.

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 .
    ?person wdt:P21 wd:Q6581072 .
    ?person wdt:P27 wd:Q142 .
    ?person wdt:P106 ?occupation .
    ?occupation wdt:P279* wd:Q33999 .
    ?person wdt:P569 ?birthDate . #With a birth date
    }

Now we want the French actresses still alive, which we’ll translate to “without a ‘date of death’ (P570)”. For that, we’ll use a filter:

SELECT ?person
WHERE {
    ?person wdt:P31 wd:Q5 .
    ?person wdt:P21 wd:Q6581072 .
    ?person wdt:P27 wd:Q142 .
    ?person wdt:P106 ?occupation .
    ?occupation wdt:P279* wd:Q33999 .
    ?person wdt:P569 ?birthDate . #With a birth date
 FILTER NOT EXISTS { ?person wdt:P570 ?deathDate . } #Without a death date
    }

Here it is, all French actresses still alive!

The Oldest

To find the oldest, we’ll need to order our results. So after the WHERE section of our query, we’ll add another request: now that you have found me my results, SPARQL, can you order them as I want? Logically, this is called ORDER BY. We can “order by” the variable we want. We could order by ?person, but as it’s the only variable we have selected in our query, it’s already done. To order by a variable, we need to ask to select this variable first.

The obvious way would be to order by ?birthDate. The thing is, Wikidata sometimes has more than one birth date for people because of conflicting sources, which translates in the same people appearing twice. So, we’ll group the people by their Qid (using GROUP BY) si that duplicates exist now as a group. Then we use SAMPLE (in our SELECT) to take only the groups’ first birth date that we find… And then ORDER BY it :

SELECT ?person (SAMPLE(?birthDate) AS ?date)
WHERE {
    ?person wdt:P31 wd:Q5 .
    ?person wdt:P21 wd:Q6581072 .
    ?person wdt:P27 wd:Q142 .
    ?person wdt:P106 ?occupation .
    ?occupation wdt:P279* wd:Q33999 .
    ?person wdt:P569 ?birthDate .
 FILTER NOT EXISTS { ?person wdt:P570 ?deathDate . }
    } GROUP BY ?person ORDER BY ?date

This gives us all French actresses ordered by date of birth, so the oldest first. We can already see that we have problems with the data: actresses whom we don’t know the date of birth (with “unknown value”) and actresses manifestly dead centuries ago but whom we don’t know the date of death. But still! Here is our query and we answered Jean-No’s question as we could.

With labels

Well, we certainly answered the query but this big list of Q and numbers isn’t very human-readable. We should ask to have the labels too! We could do this the proper SPARQL way, with using RDFS and such, but we are querying Wikidata on the Wikidata endpoint, so we’ll use the local tool instead.

We add to the query:

SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" . }

which means we ask to have the labels in French (as we are querying French people), and if it doesn’t exist in French, then in English. But just adding that doesn’t work: we need to SELECT it too! (and to add it to the GROUP BY). So:

SELECT ?person ?personLabel (SAMPLE(?birthDate) AS ?date)
WHERE {
    ?person wdt:P31 wd:Q5 .
    ?person wdt:P21 wd:Q6581072 .
    ?person wdt:P27 wd:Q142 .
    ?person wdt:P106 ?occupation .
    ?occupation wdt:P279* wd:Q33999 .
    ?person wdt:P569 ?birthDate .
 FILTER NOT EXISTS { ?person wdt:P570 ?deathDate . }
         SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" . }
    } GROUP BY ?person ?personLabel ORDER BY ?date

Tada! It’s much more understandable now!

Make it pretty

I don’t want all living French actresses, including the children, I want the oldest; so I add a LIMIT to the results.[3]

} GROUP BY ?person ?personLabel ORDER BY ?date LIMIT 200

And why should I have a table with identifiers and names when I could have the results as a timeline? We ask that at the top, even before the SELECT:[4]

#defaultView:Timeline

Wait, wait! Can I have pictures too? But only if they have a picture, I still want the results if they don’t have one (and I want only one picture if they happen to have several so I use again the SAMPLE). YES WE CAN:

#defaultView:Timeline
SELECT ?person ?personLabel (SAMPLE(?birthDate) AS ?date) (SAMPLE(?photo) AS ?pic)
WHERE {
    ?person wdt:P31 wd:Q5 .
    ?person wdt:P21 wd:Q6581072 .
    ?person wdt:P27 wd:Q142 .
    ?person wdt:P106 ?occupation .
    ?occupation wdt:P279* wd:Q33999 .
    ?person wdt:P569 ?birthDate .
 FILTER NOT EXISTS { ?person wdt:P570 ?deathDate . }
    OPTIONAL { ?person wdt:P18 ?photo . }
        SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" . }
    } GROUP BY ?person ?personLabel ORDER BY ?date LIMIT 200

Here the link to the results. I hope you had fun with this SundayQuery!

(Main picture: Mademoiselle Ambroisine – created between 1832 and 1836 by an artist whose name is unreadable – Public Domain.)

  1. Well, nothing to compare to my previous one, which all of you should have read.
  2. Well, if it doesn’t timeout through the sheer number.
  3. And it will be quicker that way.
  4. Beware that this doesn’t work on all SPARQL endpoints out there, even if it exists on the Wikidata one.

by Harmonia Amanda at September 11, 2016 03:51 PM

Darkoneko

September 08, 2016

Wiki Loves Monuments (fr)

Image du jour du 7 septembre !

Le Monument à Napoléon est un monument commémoratif de la Manche, situé place Napoléon, à Cherbourg-Octeville. C’est notre photo coup de cœur du jour et elle est signée JMEnault_Ville de Cherbourg-en-Cotentin [CC-BY-SA]

by Sarah Krichen at September 08, 2016 02:56 PM

September 07, 2016

Wiki Loves Monuments (fr)

Image du jour du 6 septembre !

Magnifique reflet du château de Vaux-le-Vicomte pour cette photo prise à l’aube. [Crédit Jcvaux CC-BY-SA]

by Sarah Krichen at September 07, 2016 03:31 PM

September 06, 2016

Wiki Loves Monuments (fr)

Image du jour du 5 septembre !

Pour la cinquième photo coup de cœur de cette édition 2016 de Wiki Loves Monuments bienvenue à la chartreuse de Bonpas, monument historique classé datant du XIIe siècle, située dans la commune de Caumont-sur-Durance du Vaucluse.

Par Marianne Casamance [CC BY-SA 4.0]

by Sarah Krichen at September 06, 2016 02:49 PM

September 05, 2016

Alphos

SPARQuickL 1 – Hobbits

Premier post court d’une série que j’espère longue, proposant des requêtes SPARQL construites étape par étape à passer sur Wikidata Query Service.

Étape 1 : Acteurs du film Le Seigneur des anneaux : La Communauté de l’anneau (Q127367) :

SELECT ?actor ?actorLabel WHERE { wd:Q127367 wdt:P161 ?actor # members of the cast of "The

Continue reading « SPARQuickL 1 – Hobbits »

by Alphos at September 05, 2016 02:58 PM

Wiki Loves Monuments (fr)

Image du jour du 4 septembre !

Et voici l’intérieur du lavoir de la Mairie/Lavoir de Bucey-les-Gy en Bourgogne-Franche-Comté. Photo choisie pour être notre quatrième coup de cœur de ce concours WLM 2016 ! N’hésitez pas à améliorer son article Wikipédia !

Par JGS25 (Travail personnel) [CC BY-SA 4.0].

 

by Sarah Krichen at September 05, 2016 02:49 PM

September 04, 2016

Wiki Loves Monuments (fr)

Image du jour du 3 septembre !

Le Pont du Diable à Céret vu depuis la rive gauche par Fabricio Cardenas [CC BY-SA 4.0] est notre photo du jour !

PS: n’hésitez pas à contribuer à l’amélioration de la page Wikipédia associé à vos photos téléversées !

by Sarah Krichen at September 04, 2016 02:29 PM

September 03, 2016

Wiki Loves Monuments (fr)

Image du jour 2 septembre !

Direction Bordeaux et la place des Quinconces pour la photo du jour ! Par Viktoriia Saveleva, monument aux girondins, travail personnel [CC BY-SA 4.0]

by Sarah Krichen at September 03, 2016 02:19 PM

September 02, 2016

Wiki Loves Monuments (fr)

Image du jour du 1er septembre !

Direction le Maine-et-Loire et les voûtes de l’église Notre-Dame de Beaufort-en-Vallée pour la première photo coup de cœur de cette année ! Par GO69 (Travail personnel) [CC BY-SA 4.0]

by Sarah Krichen at September 02, 2016 07:39 AM

August 31, 2016

Wikimédia France

Quand les contributeurs francophones se retrouvent…

Logo_Wikiconvention_Francophone.svg

Elle a enfin eu lieu ! La WikiConvention, déclinaison francophone des événements “WikiCon” organisés un peu partout dans le monde, est une conférence internationale rassemblant les contributeurs francophones aux projets de la fondation Wikimedia (Wikipédia, Wiktionnaire, Wikidata, Wikisource, etc.) dont nous vous avions annoncé l’imminence sur ce blog. Elle aborde le fonctionnement de ces projets, la production de contenu libre, le participatif, etc. Plateforme de débats, de formation ou encore de rencontre entre participants d’un projet. Le fil directeur des organisateurs tout au long de l’élaboration de ce projet a été de constituer « un événement PAR la communauté, POUR la communauté ».

 

Les participants

 

Les quelques chiffres-clef ci-dessous donnent un aperçu des participants à cette première édition, qui s’est tenue à Paris les 19, 20 et 21 août derniers.

chiffres clefs de la wikiconvention francophone 2016

chiffres clefs de la wikiconvention francophone

Cliquez sur les diagrammes pour les voir en plus grand.

 

 

La préparation

 

Preparing_WikiConvention_francophone_2016_-_program Preparing_WikiConvention_francophone_2016_-_03 Preparing_WikiConvention_francophone_2016_-_02 Preparing_WikiConvention_francophone_2016_-_01

 

L’équipe salariée de Wikimédia France a fortement été mise à contribution sous la houlette de Pyb, contributeur à l’initiative de l’événement. Du design du logo de l’événement, aux goodies distribués aux participants, en passant par le développement d’un site web mobile consultable hors ligne pour héberger le programme, toutes les compétences ont été mises à contribution afin de préparer dans les temps ce rassemblement inédit. Le programme a été conçu par les participants eux-mêmes lors d’un appel à propositions. Un comité de programme, composé de Wikimédien-ne-s bénévoles, s’est constitué pour ensuite faire le tri parmi plus de 50 propositions, et constituer un déroulé des deux jours de convention. En parallèle, un comité d’organisation s’est occupé de piloter la partie logistique de l’événement. Plusieurs visites du lieu de conférence, l’auberge de jeunesse Yves Robert qu’abrite la Halle Pajol, ont été effectuées pour se coordonner avec l’équipe sur place.

 

Les activités connexes

 

Spontanément, des idées d’activités ont émergé dans le sillage de la Wikiconvention. La bibliothèque Vaclav Havel, hébergée elle aussi dans la Halle Pajol, a proposé d’organiser deux journées contributives afin de créer une histoire collective du quartier. L’occasion de documenter certains articles sur Wikipédia ou d’enrichir Wikimedia Commons de photos et de documents iconographiques du 18e arrondissement. Une autre initiative, le Fil*, s’est déclinée pour l’occasion : Laura Maclet a proposé une balade-atelier d’écriture sur le thème « Francophonies à Paris », à laquelle s’est greffée une excursion photo pour documenter certains lieux du quartier de la Goutte d’Or. La convivialité n’était pas en reste, puisque la soirée de vendredi s’est ouverte grâce à un apéritif proposé par Wikimedia CH (Suisse). Traditionnellement à la fin de l’été, une Festicabale est organisée en Suisse romande avant de démarrer l’année : cette fois-ci, elle a migré jusqu’à Paris ! Un storify a été créé pour l’occasion. Le samedi soir, Prismatik et Ludomonde ont proposé leurs services pour une initiation au game design d’un côté et l’animation d’une soirée jeux de l’autre. Toute cette effervescence a été documentée par un reportage illustré, réalisé par Anne Mattler, facilitatrice graphique, dont les croquis ont été exposés le dimanche matin aux participants.

 

resize CqTbuRaWIAAVIHR.jpg:large Capture du 2016-08-26 11:40:11 Capture du 2016-08-26 11:38:03 Capture du 2016-08-26 11:37:34 Capture du 2016-08-26 11:35:56 Capture du 2016-08-26 11:35:26

 

Les sessions

 

Le programme s’est articulé autour de 9 grands thèmes : Afrique, Débats, Édition, Langues, Mixité et diversité, GLAM, Projets frères (et sœurs!), Technique, Rassemblements. 42 intervenant-e-s ont présenté, seul-e-s ou à plusieurs, pas moins de 47 sessions différentes :  langage épicène sur Wikipédia, autisme, contributions rémunérées, enrichissement des articles sur les athlètes paralympiques, accessibilité et contribution en Afrique, enjeux de Wikidata ou du Wiktionnaire… Une diversité de thèmes qui reflète les enjeux de la part francophone du mouvement Wikimedia.

201608_WikiConvention_Paris_16 201608_WikiConvention_Paris_15 201608_WikiConvention_Paris_13 201608_WikiConvention_Paris_01
 
L’occasion aussi pour les Wikimédiens de discuter, d’échanger, de débattre, de transférer des compétences à travers des ateliers de formations… et de célébrer une fois encore les 15 années d’existence de l’encyclopédie Wikipédia, et de manger un bout de gâteau d’anniversaire !
 
WikiConvFR_2016_à_la_Halle_Pajol,_Paris_10

 

Et la suite ?

 
La machine est lancée : où aura lieu la WikiConvention francophone 2017 ? Qui se mobilisera pour l’organiser ? Une chose est sûre : elle répond à une attente réelle de la part des Wikimédiens francophones et cette première édition a atteint ses objectifs ! À l’année prochaine !

WikiConvention_francophone_2016_Photo_de_groupe
 

by Anne-Laure Prévost at August 31, 2016 03:25 PM

August 30, 2016

Ash Crow

Ben Whishaw, Broadway, the RADA and Wikidata (in English and with updates)

Hello everyone! Here is Harmonia Amanda, squatting Ash_Crow’s blog. Some people told me repeatedly I should write about some of what I did these last few months on Wikidata, e. g. all my work about the RADA (Royal Academy of Dramatic Art) and other things. And after I wrote it in French, some people told me I should write it again in English. So here we are! To ensure that no one will read it, I wrote a long text, stuffed with footnotes,[1] and even with real SPARQL queries[2] here and there. No need to thank me.[3]

How it begins: The Hollow Crown

Everything is because of Ben Whishaw. I was quietly watching Shakespeare’s adaptations by the BBC (and for those who haven’t watched The Hollow Crown, I suggest to do so) and I was thinking that the actor playing Richard II deserved an award for his role, because he was simply extraordinary.[4][5] So I went lurking on his French Wikipedia page[6] and as a good Wikimedian,[7] I decided to make it a little bit better. For now[8] I’ve mostly cleaned up the wikicode and dealt with accessibility for blind-reading software. As I couldn’t instantaneously make it a featured article, I thought it could be fun to complete his Wikidata entry. That was the beginning. As I said, everything is because of Ben Whishaw.

Ben_Whishaw
Ben Whishaw in 2008 by KikeValencia – CC-BY-SA

Wikidata : the easy beginning

Wikidata is a free knowledge database with some twenty million entries, under a free license. It’s not made to be directly read by humans (although they can)[9] but to be machine-readable, and to be used in other projects through visualisation tools.[10] I am an experienced Wikidatian by now so, at first, working on Whishaw’s entry seemed easy.

I just had to add more precise occupations (he isn’t just an “actor”, he is a “stage actor”, a “television actor”, a “film actor”…). He received many awards, which should all be listed (P166), as well as for each of them the information about the year it was awarded (P585) and for which work P1686) and even sometimes with whom the award was shared (P1706). And I could do the same work for all the awards he was nominated for (P1411) but didn’t receive. Then I could also list all his roles, which we don’t add to his Wikidata entry but on the works’ entries using “P161 (cast member)” with “Q342617 (Ben Whishaw)” as value. Sometimes we can even use qualifiers, like “P453 (character role)” when the characters themselves have a Wikidata entry (like Q in James Bond).[11]

Wikidata screenshot
Wikidata screenshot

So far, so easy. Well, the thing is, Whishaw is primarily a stage actor. I mean, he became well-known for his heartbreaking interpretation of Hamlet at 23 at the Old Vic.[12] It’s a bit strange to see all his TV and film roles listed and not his theatrical ones (Mojo, Bakkhai…). So I started digging about theatre on Wikidata and let me tell you… it’s at least as much under-treated and messy than on Wikipedia! Which is saying something.[13]

Old_Vic_Theatre
Old Vic Theatre by MrsEllacott – CC-BY-SA 3.0.

Here would be the perfect place to speak about ontologies, semantic web and the questions of knowledge organisation but the consensus between my beta-readers is that my article is already too long and I should focus about the RADA (which is a long time coming) and speak of everything else another time.[14]

The Internet Broadway Database

While I was thinking about the relations between “art”, “work”, “genre” and “performance”,[15] I learned that Whishaw is now[16] in Broadway, where he plays John Proctor in Arthur Miller‘s The Crucible directed by Ivo van Hove.[17] What’s interesting for all of us Wikimedians is that Broadway has already an excellent database (IBDB, Internet Broadway Database). Well done, decently complete, with a limited number of errors;[18] oh joy! And even better: Wikidata already has properties to link to this database (and not only for people; the properties exist also for venues, works and productions).[19]

Walter Kerr Theatre, ad for Grey Garden - Michael J Owens CC-BY 2.0
Walter Kerr Theatre, ad for Grey Garden – Michael J Owens CC-BY 2.0

Of course, no one had properly exploited this database before and there were many errors in the wikidatian uses. So I’ve cleaned up every and each of the uses of these properties on Wikidata.[20] And on Wikipedia, because that’s where the errors came from.[21] I complained about the Wikipedians who add absurd references (or worse, don’t add references at all), who aren’t philosophically unnerved when they add a production identifier to a work entry, or who even seem to think that the IBDB identifier is the same one as the IMDB (Internet Movie Database) identifier (oh hell NO!)[22] but, as I am a Wikimedian, I cleaned up nevertheless.

I came to the conclusion that it would be better if, instead of having some correct links, we linked all the entries. Going from “I-worked-on-Ben-Whishaw-so-I-searched-his-IBDB-identifier” to “this is the complete list of IBDB identifiers, we should find the matching Wikidata entries”. For our joy, there is a truly marvellous tool called Mix n’ Match.[23] Here again I could do a detailed presentation of this tool, but to keep the scope of this article I’ll just say it needs to have the complete list of valid identifiers before working; therefore I started hoarding them all.[24] As it wasn’t an instantaneous process,[25] I needed to do something besides that. For those of you willing to give a hand, you can help me match IBDB entries to Wikidata entries: you can do it for works or for people. Do it carefully and if you are not sure, don’t. Thank you, any help is always appreciated.

Back to when all my scripts were running, I didn’t know exactly what to do to occupy myself, so I went again to Whishaw’s entry[26] and noticed he was a RADA (Royal Academy of Dramatic Art) alumnus.[27]

The RADA

Presentation

The cool thing about Wikidata[28] is that not only can we add where people studied (P69) but we can even add numerous details: when they started studying there (P580), when they stopped (P582), what degree they were preparing (P512), their academic major (P812)… There were no references. I didn’t like that at all. I searched for them. I thought: why not try the school’s website? And then… RADA!

RADA Theatre, Malet Street, Londres -- CC-BY-SA 2.0
RADA Theatre, Malet Street, Londres — CC-BY-SA 2.0

Yes. The RADA had put the profiles of its alumni online. Here is Whishaw’s page for the curious ones.[29] Anyway, I was seeking a source and I’ve found a goldmine. My inner Wikimedian went a little dizzy with happiness[30] and I told myself that now, I not only had a reference for Whishaw, I had references for all RADA alumni, with their year of graduation, their degree, everything, and that I could do mad statistics based on SPARQL queries![31] (and that it would give me an occupation when I retrieved the identifiers of all people who ever worked in a Broadway show).[32]

Naively, I thought that the RADA didn’t have so many alumni (approximately a hundred a year in recent years) and so it wouldn’t take me too much time…[33]

Identification of the relevant entries

On Wikidata

To start, I tried to know what already existed on Wikidata. I wrote a little query to find all the existing Wikidata entries with P69:Q523926 (educated at the Royal Academy of Dramatic Art). I cross-checked with the English category. Actually someone had, a few months ago, added P69:Q523926 on all the entries categorised as “Alumni of the Royal Academy of Dramatic Art”.[34] Anyway, at that time I had no intention of writing this blog post, so I didn’t bother writing down the actual number somewhere but it was like ~650, with a very small gap between the Wikidata query and the English category (so only a few Wikidata entries without articles on the English Wikipedia as a working hypothesis). There were more entries listed on the Wikidata query than there were articles in the category (which is logical) but all the categorised articles were correctly present in the Wikidata list. Not too bad as a start.

To follow my progress, I only had to do two queries: the first one to list all RADA alumni and the second one to list all RADA alumni with a year of graduation (which would mean that someone (me) had added the necessary information).

So beware the first SPARQL queries of this article:

SELECT DISTINCT ?student ?studentLabel
WHERE {
  ?student wdt:P69 wd:Q523926 .
 SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}

link to query.

and

SELECT ?student ?studentLabel 
WHERE {
  ?student wdt:P31 wd:Q5 . # human
  ?student p:P69 ?statement .                # Student of...
  ?statement ps:P69 wd:Q523926 .        # ...RADA
  ?statement pq:P582 ?x . # with end date
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
  }

link to query.

Easy, as I said.

There were already four or five students for which we had the “end date” information, but we didn’t have a reference, or a reference other than the RADA. I decided not to care and that I would treat these cases at the same time as the others.

On Wikipedia

I had already noted that the whole English category “Alumni of the Royal Academy of Dramatic Art” had the property P69 “educated at” with the RADA value (Q523926) on Wikidata. I knew there were more entries on Wikidata than in the category: where did the difference come from? From uncategorized English articles?[35] From Wikidata entries without a matching article in English?[36]

The category also exists on Wikipedias in others languages: it exists in Spanish, in Arab, in French, in Latin, in Polish, in Russian, in Simple English, in Turkish and in Chinese. But if you visit these pages, you will see they are fairly less complete than the English one (which is logical for a Londonian school) and that they would probably not help me much.[37]

However, the category isn’t the only way to spot students. The English Wikipedia also has a list (List of RADA alumni). This list[38] is interesting because it contains, between brackets, the year of graduation, information missing in the category.

Assuming that all articles present in the category were also on the list, or that all the entries in the list were categorized, was too big of a hope, it seems. Once more, Wikipedia dazzles us with its incomplete management; if there are two systems, of course they won’t match!

Identification: From RADA to Wikidata

I thought the easiest way to begin was to observe the RADA database and search matching entries on Wikidata and Wikipedia. There are indeed many RADA alumni known enough to have a Wikipedia article, but not all of them, let’s not exaggerate. In an ideal world where Wikidata and Wikipedia would have reached completion, once I had verified all the RADA database entries, I should have formally identified the approximately 670 Wikidata entries previously spotted. But as we don’t live in an ideal world and as neither Wikidata nor Wikipedia claims to be complete, I knew before I started that it would very probably not be so easy.

Manual research name by name

At first I thought I would simply search on Wikidata every and each student name listed on the RADA database and hope to find a match. Starting with 1906, the first year with graduates listed[39] as the school opened in 1904.

Very quickly the problems appeared with this painstakingly slow method.

In 1907 for example, the only student listed is “H Bentley”. The Wikidata internal search engine only returns the “H Bentley” and “H. Bentley” with a request with this name. Not “Henry Bentley”, “Harriet Bentley” or whatever. If I had been lucky, someone would have added “H Bentley” as an alias of the wikidata entry label and the search engine would have yielded a result. As I was unlucky but stubborn, I still tried a query like that (not a SPARQL one, it’s an adaptation for Autolist, an old Wikidata tool)[40]:

FIND H% Bentley in Labels in Alias

(link to the autolist query) and hoped it would work.[41] I can also be really dedicated, search for “Bentley” and read quickly all entries… Not as easy as I hoped at first, then.

Typos and database errors

Moreover, the RADA database isn’t immune to typographical errors: I’m reasonably certain that Joan Mibourrrne doesn’t really have three Rs in her last name or Dorothy Reeeve three Es.

Desmond Llewellyn[42] is for example listed on the RADA database as Desmond Wilkinson (Wikipedia says he is called “Desmond Wilkinson Llewellyn”). In fact, that’s not entirely true: he is listed both as “Desmond Llewellyn” (here) and as “Desmond Wilkinson”. Yay duplicate entries![43]

Desmond Llewellyn in 1983 - Towpilot CC-BY-SA 3.0
Desmond Llewellyn in 1983 – Towpilot CC-BY-SA 3.0

Actually there are many duplicates in the RADA database. I think far-fetched that there would really be two different students called “Alison James” and “Allison James” who graduated both in 1954…

Disambiguation?

Even without typographical errors, if we find a match between a name in the RADA database and a name in Wikidata, it needs verification. The Rose Hersee, graduated in 1908 isn’t the same Rose Hersee as the singer born in 1845.[44] Verification is really necessary! In many cases that means that I had to read the Wikipedia article (which sometimes cites the RADA! Sometimes even with references!) and most importantly the sources used in these articles (honestly, for the first half of the 20th century, it meant reading dozens of obituaries). Sometimes—yay!—I could confirm the match. Sometimes—yay too!—I could confirm that it wasn’t the same person. But often I didn’t succeed with just a short search because the RADA profiles before 1999 are, let’s say, a little bare.

Several students can have the same name, or some people followed several courses (particularly in postgraduate technical studies). On Wikidata, many items share the same label (well, what would you expect from a name like “John Jones”?…), so it is often necessary to filter several hundreds of results to find the most probable person (and I sincerely thank every Wikimedian who ever completed Wikidata descriptions).[45]

Pseudonyms

They have pseudonyms! Aaaaahhh! And an impressive number of women attained celebrity under their spouse’s name; nobody thought of adding their birth name as an alias on Wikidata. And of course, their RADA entry lists only their original name. Another impressive number of students used pseudonyms (Conrad Havord became known as “Conrad Phillips” for example). Sometimes, it’s even the opposite: the RADA lists the pseudonym they used when they were in the school, or their married name if they were married, or their nickname, and Wikipedia still uses the birth name (for example, June Flewett is listed on the RADA database as Jill Freud, her nickname and husband’s family name). I also like very much Priya Rajvansh listed on RADA as Vera Singh. Each of these cases can only be identified if someone had thought of adding the aliases on Wikidata.[46] And sometimes we even have combo: pseudonyms and typographical errors! We can cite Kay Hammond (pseudonym), whose birth name is “Dorothy Katherine Standing” but who is listed in the RADA website as “Kathrine Standing”. The missing “e” is sufficient for not being returned with a query or a search on Wikidata. Finding her was not easy at all and it was more luck than anything else.

Is Jean Rhys, born “Ella Gwendolen Rees Williams” in 1890 and known for using numerous pseudonyms, the same person as Ella Reeve, the RADA student who graduated in 1909?[47] Vern Agopsowicz became famous under the name John Vernon… I could continue like that for a long time. I went over a hundred “maybe it is them/maybe not” early in April.

Henry Darrow and John Vernon
Henry Darrow and John Vernon – NBC Television, public domain in the USA

Arkanosis helps me!

By then (late March 2016), several Wikimedians already helped me, most notably on my Internet Broadway Database work[48] but one evening in Cléry[49] Arkanosis saw me manually searching the RADA entries and took pity on me. He wrote me a beautiful Linux shell script (later amended by Ash_Crow to become even more easy to use):

#! /bin/sh

if [ $# -ne 2 ]; then
    echo 'Usage: rada.sh  '
    exit 1
fi

profile=$1
year=$2

echo "Year $year
      " > list-$profile-$year.html wget -q 'https://www.rada.ac.uk/profiles?search='$profile'&yr-acting='$year'&yr-technicaltheatrearts='$year'&crs-technicaltheatrearts=&yr-theatrelab='$year'&yr-directing='$year'&crs-directing=&fn=&sn=' -O - | \ sed -n 's@.*fn=\([^&]*\).*sn=\([^"&]*\).*@\1 \2@p' | \ while read firstname lastname; do echo "
    • $firstname $lastname wikidata" wget -q 'https://www.wikidata.org/w/api.php?action=query&list=search&srwhat=text&srsearch='$firstname'+'$lastname -O - | \ sed -n 's@.*title&.*\(Q[0-9]\+\)&.*@\1@p' | \ while read qid; do if grep -q $qid unhandled.lst; then echo " $qid" fi done echo "
" done >> list-$profile-$year.html echo " " >> list-$profile-$year.html

The RADA URLs are systematically constructed like this : year/given name/surname,[50] Arkanosis simply extracted listings by year, a row by student, like this:

  • Student’s name (link to the RADA entry) / Wikidata (link to the search page with the name) / eventually a Qid[51] found in the second link and who also appear in the existing list of P69:Q523926 (entries already marked as RADA students)

For example a row for a student of the “acting” course in 1947 looks like:
harold goodwin wikidata Q1585750

Not all rows have a Qid associated (they were a tiny minority, honestly, as by then only ~650 student were listed and the RADA has had much more than 650 students). Not all Qid lead to correct matches either: as I said, there are some people sharing the same name at the RADA; or the Wikidata search engine was, for once, too generous and yielded combinations of given names/surnames not matching the RADA entry (for example a search for Romany Evens offers George Bramwell Evens on Wikidata). Nevertheless, the majority of the suggested Qid lead to matches, which was a way better result than for the rows without Qid. Thank you Arkanosis and Ash_Crow!

Even with these listings, having only to click on the search links instead of doing dozens of copy/paste, I still needed to verify manually each and every entry.[52] The problem when we use the names from the URLs, is the lack of apostrophes and blank spaces. A search of peter otoole on Wikidata doesn’t yield Peter O’Toole for example. So you still need to add the blank spaces, not just clicking and reading the results.

From RADA to Wikipedia: a temporary conclusion

I’ve spent the end of March, April and early May doing this work. At the end of it, I had identified exactly 835 entries, but of course, the vast majority of alumni didn’t have matches (which was to be expected) and a strangely high number yielded only uncertain results. I have 442 rows in a spreadsheet with each a RADA entry and a possibly matching Wikidata entry. I’ll need to dig deeper to confirm (or not) the matches.

Digging deeper - Hans Hillewaert CC-BY-SA 4.0
Digging deeper – Hans Hillewaert CC-BY-SA 4.0

Identification: from Wikipedia to the RADA

When I finished identifying alumni from the RADA database, I had a problem: there were people listed on the Wikipedia category “Alumni of the RADA” who weren’t on my done list on Wikidata. In a perfect world, at the end of the work on my scripts, the number of Wikidata entries with “studied at:RADA” and the number of Wikidata entries with “studied at:RADA, endtime:something” (and with a RADA reference the query for that) should have been the same. As it isn’t a perfect world, I had people that Wikipedia listed as alumni that I didn’t find in the RADA website. There was some overlap with my “maybe yes/maybe no” list[53] but not so important: my list is mostly composed of people whose drama school I don’t know at all, if they even went to one.

Using PetScan I searched for the list of Wikipedia articles categorized as RADA alumni but which didn’t respond to the query “studied at RADA with an end time”. Link to the automatically updated PetScan query.

I found 132 results, which I—again—treated manually. I identified 23 additional articles (mostly it was cases of pseudonyms or maiden names not present as aliases on Wikidata: they weren’t returned in searches as a result).[54]

At the end of April, the English category listed 907 articles, Wikidata 953 entries and only 850 of them had been correctly completed with a decent reference. And we mustn’t forget that not all Wikidata entries have a matching English Wikipedia article: some actresses and actors have articles on others languages (Norwegian, Italian, German, Romanian…) and a little dozen doesn’t have a Wikipedia article at all, only the Wikidata entry without sitelinks. Their entry was created so Wikidata could list the full cast of a film.

So we query to find the Wikidata entries of RADA alumni without an end date:

SELECT ?student ?studentLabel
WHERE {
  ?student wdt:P31 wd:Q5 .
  ?student p:P69 ?statement .
  ?statement ps:P69 wd:Q523926 .
  FILTER NOT EXISTS { ?statement pq:P582 ?x .}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
  }

link to the query.
Usually SPARQL is pretty understandable by humans because it made for querying semantic data. However Wikidata is a multilingual database, which consequently use numeric identifiers.[55] I should comment all my queries but I’m lazy and I take advantage of the Wikidata endpoint which declare itself the needed PREFIX and even offers comments: if you hover over a Pid or Qid, you’ll see the name and description in your language. And you can change this language in the top right corner. So I’m entitled to laziness.[56]

Inconsistencies

This list contains mostly entries with sitelinks to the English Wikipedia: the SPARQL query above (on Wikidata but without end date for RADA studies) yielded 112 results at the end of April when the PetScan query (in the English category of RADA alumni but without end time on Wikidata) gave us 110 results. One of these is an article deleted on the English Wikipedia after someone imported the category on Wikidata and the other is about a French actress. So all 111 of these “maybe errors, maybe not, but in all cases lacking references” on Wikidata came from the English Wikipedia. I SEE YOU ENWIKI!

The work now is to find under which name the person was registered at the RADA (beware typographical errors…) or to find why they were categorized as students when they weren’t. For example Ash_Crow corrected the article on George Bernard Shaw, listed as student instead of “people associated with” the RADA. He was very implicated in the school and even gave them part of his heritage[57] but never studied here. For Armaan Kirmani, his IMDB entry says that he was the student of a RADA professor… but that doesn’t mean he went to RADA itself.

Men, black and white photograph
George Bernard Shaw in 1915 – Public domain in the USA.

In these dozens of problematic cases, there is a little bit of everything, from articles that don’t mention the RADA at all (why were they ever categorized?), to articles that clearly state that the person was a student (but without any sources),[58] to articles that even have sources but these sources aren’t so explicit… The RADA doesn’t propose exclusively graduating courses; they also organize numerous workshops and internships. If an actor or an actress participated in a two-days workshop at RADA, they won’t appear on the RADA website as a student but they could sincerely say in interviews they learned something at RADA… We are only a step away from an enthusiastic Wikipedian deciding they are alumni.

For example Ash_Crow found a source (in French and of not really great quality) saying that Émilie Rault studied at RADA. She is nowhere on the database because it’s very likely she only did workshops there, as she was also studying musicology at the Sorbonne for her master diploma at the time. This should lead us to question the limits we want to fix to the “studied at” property on Wikidata: do we want to use it exclusively for long formations with diplomas or accept everything including workshops of only a few days?

Differences between the list and the category

Like I already said, the “List of RADA alumni” doesn’t match the articles listed in the category. Systematically, every time I’ve identified someone on Wikidata (and subsequently found their Wikidata article), I added their name on the list and I added the category. So I’ve reduced the gap between the two. The article-list should be more complete than the category, since it can hold red links existing on other Wikipedias.

Xavier Combelle has been kind enough to list the differences between the category and the list in early May, the thirty problematic cases mentioned above remained (missing from the list) and in the list, in addition to the usual red links, we found eighteen uncategorised articles. None of them bore any obvious connection to RADA, except for Xenia Kalogeropoulou which could be identified as Xenia Calogeropoulos and was thus categorised. Among those cases, some Wikipedia articles explicitly mentioned training at RADA as constituting in workshops or interships. We go back to the question: what courses warrant being considered an alumni?

Problems with the RADA database

Having listed issues on Wikipedia and Wikidata sides (which amount of: “people add information without references and that information spread everywhere like an epidemic”), we have to face the fact that some of the problems stem from the RADA database itself.

Completeness of data

As we have already seen, the database is littered with double entries, each pseudonym or name spelling yielding a new page instead of centralising these entries on a unique page associated with the student. This is obviously a problem if you are interested in the number of students for a given year, for instance.

From a Wikidata point of view, this prevents resorting to the simple solution of creating one entry for each student, independently on whether a Wikipedia article exists or not. The Cambridge database, for example, associates a fixed identifier to every student, which enabled us to import these identifiers on Wikidata, creating new entries as needed (P1599: ID of the Cambridge Alumni Database).[59] If the RADA had chosen the solution of one identifier per student instead of the URL of the form diploma/year/first name/last name, it would have been easier to import it in its entirety.

Which brings us to the next problem: we have no certainty that the database is complete at all. Nothing to support that is said on the site. A visit to the Internet Archive’s Wayback Machine shows that the database has only been online since 2015, and that before that date only the current students had a profile on the site. If recent data seem complete (from 1999 on, where profiles are detailed and come with photographs), the profiles of the earlier years are sometimes quite patchy. And in particular, some years seem suspiciously poor in students, such as 1988 and every year before 1922.[60]

Could it be that among the dozens RADA alumni without a match in the database, some have been forgotten? One typical case is the one Noel Streatfeild who, according to her website, attended as a student starting in 1919. I did find a “Noel Goodwin” who graduated in 1922, but is that her?

Another example even more explicit is Dora Mavor Moore, who was the first Canadian who went to RADA, per this biographical article, and who graduated in 1912. The problem is, on the RADA website only one student is listed as graduating in 1912 and “Leonard Notcutt” isn’t a known pseudonym of Dora Mavor Moore.

Data reliability

The more strident problem is that some alumni listed in the RADA database left the RADA before graduation. Someone like Harold Pinter has a RADA profile which says he was part of the 1949 class. In fact, Pinter went to RADA in 1948 and left the course in 1949, before the graduation. Does the RADA list every student, no matter if they are actually graduates or if they didn’t finish? In Wikidata we can use the property “diploma” with “no value” instead of the actual diploma in the qualifiers for the “studied at” property.

Wikidata screenshot to the "studied at" statement of Harold Pinter's entry
Wikidata screenshot to the “studied at” statement of Harold Pinter’s entry

It’s a little bit problematic if we can’t trust the official school website to know who has been graduated there…

I have another problem with the RADA entry of Sheila Terry, whom I think I can match to the Wikipedia article Sheila Terry. It’s very likely she didn’t go to London during her studies; according to Wikipedia, she went to the Dickson-Kenwin academy, “a school affiliated with London’s Royal Academy”. Does that means the Dickson-Kenwin academy was then delivering the RADA diplomas? (before the 2000 reform, the RADA delivered its own diplomas). I lack information.

I also have a Jack May of the 1943 class whose Wikipedia article states explicitly he was admitted to RADA and never went

Never so easy, even when the matchings are done!

What am I doing now?

I still do many other things on Wikidata. This article resumes some of my work but not all, far from it. But to stay somehow on topic I’ll only speak here of what I do in relation with the RADA and theatre in general.

For example, people justly said that Wikidata has a property to indicate the birth name of one person, which should always be present (but isn’t in reality) and is useful in particular in cases of women known under their married name. So I’m working to add these birthnames-in-property as aliases to facilitate the future identification. It’s a lot of fun with little scripts, SPARQL and an healthy use of QuickStatements, a tool made to facilitate bulk editions on Wikidata.

I’m also still working on Mix n’ Match to add the correct IBDB identifiers to Wikidata entries about people and works. You can help me, as I already said above. And it’s not just for the pleasure to have identifiers; when we will have enough of them, we will be able to add many informations about Broadway productions on Wikidata. And that will be fantastic!

I started adding data about theatrical awards too, which is long, somewhat repetitive, but is immediately useful. The English Wikipedia mostly already has articles about the most important awards, but many smaller Wikipedia don’t. I’m working on a lua module to be able to generate a Wikinews article based on Wikidata data:[61] in practice, that will mean watching the Tony awards ceremony, adding the data on Wikidata and immediately after the end being able to have a complete table with links and everything just using a template.[62] And that in dozens of languages. Great, no?

I still have to reduce my two lists of RADA students:

  1. one with people categorized as alumni but whom I didn’t find in the RADA website (errors? workshops? missing?): ~112
  2. one with Wikidata entries I think match a RADA student but I don’t have a definite proof: ~400

Solving these two lists should help me reduce the gap between the English category and the English list. And by the way I’m very proud of my French list of RADA alumni, which has names, date, course, diploma, nationality and even some pictures!

I wrote to the RADA archivist in June to at least inform him of the typrographical errors found in their database but he didn’t write me back for now. Which probably can be explained by the fact the RADA archives are moving to a new building this summer. They are probably pretty busy!

And of course, for a purely Wikidatian point of view, I officially launched the WikiProject:Theatre this week. That’s for every Wikidatian new or confirmed who want to join me in my mad quest.

Curious and fun queries and statistics

Everything being said, we still have an interesting sample with ~850 entries. It’s only a small percent of all RADA alumni (and the technical courses are vastly under-represented) but it’s enough to start to have fun with SPARQL queries. We can ask pretty much anything!

If you want to see the results of the queries, click on the links then sur “Run” and a few seconds after, you will be able to explore the answers yourself!

Number of RADA student with a Wikidata entry by year

Well, starting easily, maybe we don’t want the list of RADA alumni but only the number of them with an entry by year of graduation:

SELECT ?year (COUNT(?student) AS ?number)
WHERE {
  ?student wdt:P31 wd:Q5 .
  ?student p:P69 ?statement .
  ?statement ps:P69 wd:Q523926 .
  ?statement pq:P582 ?endtime .
  BIND(YEAR(?endtime) as ?year) . 
} GROUP BY ?year ORDER BY ?year

Query link.

Screenshot of the SPARQL query
Screenshot of the SPARQL query

We can then do this beautiful graph:

RADA alumni with a Wikidata entry by year of graduation
RADA alumni with a Wikidata entry by year of graduation

Average age at graduation

Maybe we can go further. Now that we know when they graduated, can we know at what age they did it? This means our sample will be reduced to the entries with a birthdate of course.

SELECT ?endYear (AVG(?age) AS ?averageAge)
WHERE {
 ?person p:P69 ?radaStatement .
 ?radaStatement ps:P69 wd:Q523926 .
 ?radaStatement pq:P582 ?endDate .
 ?person wdt:P569 ?birthDate .
 BIND(YEAR(?endDate) AS ?endYear)
 BIND(?endYear - YEAR(?birthDate) AS ?age)
} GROUP BY ?endYear ORDER BY ?endYear

Query link

Screenshot of the SPARQL query
Screenshot of the SPARQL query

Or even something more fun: the average age of graduation (with entire values only, this time), by year and by gender (only “male” and “female” in our sample, but the query could handle others) and to have appearance of seriousness, the number of people in the sample:

SELECT ?endYear ?genderLabel (ROUND(AVG(?age)) AS ?averageAge) (COUNT(?person) AS ?number)
WHERE {
    ?person p:P69 ?radaStatement .
    ?person wdt:P21 ?gender .
    ?gender rdfs:label ?genderLabel filter (lang(?genderLabel) = "en") .
    ?radaStatement ps:P69 wd:Q523926 .
    ?radaStatement pq:P582 ?endDate .
    ?person wdt:P569 ?birthDate .
BIND(YEAR(?endDate) AS ?endYear)
BIND(?endYear - YEAR(?birthDate) AS ?age)
} GROUP BY ?endYear ?genderLabel ORDER BY ?endYear

Query link. I should really do an age pyramid but I suffer of a fit of laziness.[63]

screenshot of the SPARQL query
screenshot of the SPARQL query

Timeline of graduates

That was fun but I want something more human-readable, like a timeline with pictures!

#defaultView:Timeline
SELECT DISTINCT ?person ?personLabel ?personDescription (SAMPLE(?GraduationDate) AS ?date) (SAMPLE(?photo) AS ?pic)
WHERE {
  ?person wdt:P31 wd:Q5 .
  ?person p:P69 ?statement .
  ?statement ps:P69 wd:Q523926 .
  ?statement pq:P582 ?GraduationDate .            
OPTIONAL { ?person wdt:P18 ?photo . }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} GROUP BY ?person ?personLabel ?personDescription ORDER BY ?date

Query link. You just needed to ask! Beware that this query is heavy and can slow down your browser.

Screenshot of the SPARQL query - timeline
Screenshot of the SPARQL query – timeline

How many nationalities were represented in RADA?

We can do a query to list all the nationalities, and for each the number of students involved, in decreasing order.

SELECT ?nationality ?nationalityLabel (COUNT(?student) AS ?number) {
  ?student p:P69 ?statement .
  ?statement ps:P69 wd:Q523926 .
  ?statement pq:P582 ?endtime .
  ?student wdt:P27 ?nationality .
  ?nationality rdfs:label ?nationalityLabel filter (lang(?nationalityLabel) = "en") .
} GROUP BY ?nationality ?nationalityLabel ORDER BY desc(?number)

Query link. Surprisingly[64] the most frequent is the… British. But hey! More than thirty nationalities!

Screenshot of the SPARQL query
Screenshot of the SPARQL query

If we just add, as the first line of the query:

#defaultView:BubbleChart

we obtain the results as a bubble chart.[65] It’s explicit:
Query-RADA-nationality-bubble

Map of birth places of RADA students

I don’t really care what nationalities the alumni are… but I would love to see a map of birthplaces! And I can do that directly in SPARQL!

#defaultView:Map
SELECT DISTINCT ?coords ?birthplaceLabel ?person ?personLabel
WHERE {
  ?person wdt:P31 wd:Q5 .
  ?person wdt:P69 wd:Q523926 .   
  ?person wdt:P19 ?birthplace .
  ?birthplace wdt:P625 ?coords.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}

Query link.

Map of RADA alumni birth places
Map of RADA alumni birth places

If you run the query, you can zoom!

Layered map of birth places of RADA students by graduation date

Just a simple map? But why not make a layered one? We could ask for a map showing the birth places of RADA graduates, one layer by decade of graduation!

#defaultView:Map
SELECT DISTINCT ?coords (floor(year(?endtime)/10)*10 as ?layer) ?birthplaceLabel ?student ?studentLabel {
  ?student wdt:P31 wd:Q5 .
  ?student p:P69 ?statement .
  ?statement ps:P69 wd:Q523926 .
  ?statement pq:P582 ?endtime .
  ?student wdt:P19 ?birthplace .
  ?birthplace wdt:P625 ?coords.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}

Query link. Run it and play with the layers!

Screenshot of the query
Screenshot of the query

Number of RADA alumni cast in a James Bond film

Do you remember that Whishaw and Llewellyn played Q? Exactly how many RADA students did play in a James Bond film?

SELECT DISTINCT ?actor ?actorLabel
WHERE {
  ?film wdt:P179 wd:Q2484680 .
  ?film wdt:P161 ?actor .
  ?actor wdt:P69 wd:Q523926 .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} ORDER BY ?actorLabel

Query link.
More than forty!

screenshot
screenshot

RADA alumni by James Bond films, ordered by date

Hsarrazin liked my James Bond query but she wanted more: she wanted to know which former student was cast in which James Bond film, and to order the results by publication date of the film. Of course this means that people who worked in several films are listed several times.

SELECT DISTINCT ?actor ?actorLabel ?film ?filmLabel ?year
WHERE {
  BIND(YEAR(?date) AS ?year)
  ?film wdt:P179 wd:Q2484680 .
  ?film wdt:P577 ?date .
  ?film wdt:P161 ?actor .
  ?actor wdt:P69 wd:Q523926 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} ORDER BY ?year

Query link.

Screenshot of the query results
Screenshot of the query results

RADA alumni by James Bond films, in a graph

I don’t actually know why Hsarrazin wanted a table, when we could have all RADA alumni playing in a James Bond film as a graph:

#defaultView:Graph
SELECT DISTINCT ?actor ?actorLabel (concat("24890D") as ?rgb) ?film ?filmLabel ?year
WHERE {
  BIND(YEAR(?date) AS ?year)
  ?film wdt:P179 wd:Q2484680 .
  ?film wdt:P577 ?date .
  ?film wdt:P161 ?actor .
  ?actor wdt:P69 wd:Q523926 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} ORDER BY ?year

Query link. Beware, this query is heavy, even more than the timeline one.[66]

Screenshot of the graph generated by the query
Screenshot of the graph generated by the query

And in all films?

Well, James Bond is great, but why limit ourselves to it? Can’t we just have all films on Wikidata with more than 5 actors or actresses listed in the casting, ordered by the number of them who studied at RADA?

SELECT DISTINCT ?film ?filmLabel (COUNT(?actors) AS ?nbActors)
WHERE {
  ?film wdt:P31/wdt:P279* wd:Q11424 .
  ?film wdt:P161 ?actors .
  ?actors wdt:P69 wd:Q523926 .
 SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} GROUP BY ?film ?filmLabel ORDER BY DESC(?nbActors)

Query link.

Screenshot
Screenshot

Films by rate of actors and actresses who studied at RADA

That’s fun but I want even more fun: it’s not exactly the same if there are five RADA actors-actresses in a distribution of eight or in a distribution of one hundred. I want all films with at least five people in casting ordered by rate of RADA students!

SELECT DISTINCT ?film ?filmLabel ((xsd:float(?nbRadaActors)/xsd:float(?totalNbActors)) AS ?rate)
WHERE {
  {
    SELECT DISTINCT ?film (COUNT(?actors) AS ?nbRadaActors) {
      ?film wdt:P31/wdt:P279* wd:Q11424 .
      ?film wdt:P161 ?actors .
      ?actors wdt:P69 wd:Q523926 .
    } GROUP BY ?film
  }
  {
    SELECT DISTINCT ?film (COUNT(?actors) AS ?totalNbActors) {
      ?film wdt:P31/wdt:P279* wd:Q11424 .
      ?film wdt:P161 ?actors .
    } GROUP BY ?film HAVING (?totalNbActors >= 5)
  }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} ORDER BY DESC(?rate)

Query link. Honestly the more “high rated” are probably films with an incomplete cast but I love this query anyway.

Screenshot
Screenshot

RADA alumni who worked in Broadway

Remember when we worked on the Broadway database? How many RADA students ever worked in Broadway? (We are considering that “working in Broadway” means “having an Internet Broadway Database identifier”). Well at least…

SELECT DISTINCT ?human ?humanLabel
WHERE {
  ?human wdt:P31 wd:Q5 .
  ?human p:P1220 ?ID .
  ?human wdt:P69 wd:Q523926 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}

Query link. 276 listed mid-August 2016!

Screenshot of the query results
Screenshot of the query results

RADA alumni with a Tony award win or nomination

So… if RADA alumni worked in Broadway… how many of them were nominated to or received a Tony award?

SELECT DISTINCT ?human ?humanLabel ?reason ?distinctionLabel (year(?date) as ?year) 
WHERE {
    ?human wdt:P69 wd:Q523926 .
    ?human ?prop ?distinctionStatement .
    ?distinctionStatement ?propS ?distinction .

    VALUES (?prop ?propS ?reason) {
      (p:P1411 ps:P1411 "nominated for") 
      (p:P166 ps:P166 "award received")
    }

    ?distinction wdt:P31*/wdt:P279 wd:Q191874 .

    OPTIONAL { ?distinctionStatement pq:P585 ?date . }
    ?human wdt:P31 wd:Q5 .

 SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }

} ORDER BY ?humanLabel ?distinction ?year

Query link. More than one hundred!

Screenshot of the query results
Screenshot of the query results

And by the way we should verify that all people nominated to or awarded a Tony Award have an IBDB identifier! (if all is right in the world, this query should lend you a “No matching records found”):

SELECT DISTINCT ?human ?humanLabel
WHERE {
  ?human wdt:P31 wd:Q5 .
  ?human wdt:P1411*/wdt:P279 wd:Q191874 .
  FILTER NOT EXISTS { ?human wdt:P1220 ?ibdb . }
 SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}

Query link.

All Tony Awards!

Hey! Can we list all people nominated to/awarded a Tony, by win/nomination, by award and by year? Like everyone ever? Well yes, of course, it’s SPARQL!

SELECT ?human ?humanLabel ?reason ?distinctionLabel (year(?date) as ?year)
WHERE {
  ?human ?prop ?statement .
  ?statement pq:P805 ?ceremony .
  ?ceremony wdt:P31 wd:Q24569309 .
  ?statement ?propS ?distinction .
  
  VALUES (?prop ?propS ?reason) {
    (p:P1411 ps:P1411 "nominated for") 
    (p:P166 ps:P166 "award received")
  }
  OPTIONAL { ?statement pq:P585 ?date . }
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }

} ORDER BY ?year ?distinctionLabel

Query link.

Screenshot of the query results
Screenshot of the query results

Conclusion

  1. I’m not done;
  2. I hope the RADA archivist will be as kind as he seems;
  3. People, seriously, you should add aliases on Wikidata items;
  4. And sources. Sources are great;
  5. And you also should take photographs of Ben Whishaw, we are clearly lacking on free Whishaw’s pictures;
  6. Isn’t SPARQL a lot of fun? Whatever your question, someone can ask Wikidata for the answer![67]

(main picture :Pediment of the RADA building in Gower Street, by Chemical Engineer, CC-BY-SA 3.0)

  1. Like this one.
  2. If you went for the SPARQL queries, you should know that they were made for the Wikidata endpoint where most PREFIX are already declared.
  3. But if you have already read it in French, you can still read it again: I updated it!
  4. He isn’t the only one, Rory Kinnear is also excellent in Bolingbroke (and Patrick Stewart makes a terrific Gaunt ♥) but Bolingbroke is interesting in Shakespeare’s play, meanwhile Richard II is the guy who declaims too long monologues without being clearly a good guy we could attach ourselves to or a bad guy we could unashamedly hate. In my experience, in the previous adaptations I saw, it was either a very tiring character or a character played so badly it became funny. He really develops as a character in the fourth act which is a bit late, to be honest. But Whishaw as a child-king-turned-into-an-adult-but-not-really, sometimes capricious, sometimes christic, always mercurial, made me believe in this character long before the Fourth Act. I could write an entire blog article about The Hollow Crown, actors, costumes and sets (and the cinematography! it was really good too) but I’m theoretically here to speak about Wikidata and the RADA and you’ll see it’ll be long in coming…
  5. Actually, he did receive a BAFTA award for this role so my opinion was somewhat shared, it seems.
  6. Yes, I’m French. In case the fact I wrote the first version of this text in French escaped you.
  7. Yes, I’m not only French but a Wikimedian one at that.
  8. Yes, I’m collecting sources and references to redact completely anew the article but first of all, I never wrote an article about a living person, and secondly, I was somewhat occupied since then, as you’ll see if you pursue your reading.
  9. Actually, if you want to read Wikidata and not modify it, I strongly suggest you to use Reasonator, whose slogan is “Wikidata in pretty”.
  10. If you don’t know Wikidata at all and are curious, this Commons category hosts several presentations.
  11. Yes, because Whishaw also played in James Bond and by the way there are many Shakespearean actresses and actors in the last James Bond’s films.
  12. Yes, because Richard II wasn’t even his first Shakespearean role, and not even his second, as he played Ariel in the film adaptation of The Tempest with Helen Mirren as Prosper(a). It isn’t a really good film, frankly, but it needs to be seen because Mirren and Whishaw.
  13. It’s very marginally better on the English Wikipedia than it is on the French Wikipedia, but my point still stands.
  14. And honestly you don’t really need to understand all of that to understand what I do, or even to do the same yourself. It’s fascinating and compelling and if you are interested that’s pretty great, but don’t be frightened or put out if you aren’t.
  15. If by chance you are a specialist of upper ontologies, I would be honoured to talk to you.
  16. Well, uh, he was when I first wrote this article, but the run has ended now.
  17. You are maybe totally indifferent to this information but I would have so loved to go to Broadway to see it…
  18. Not only the IBDB has really few errors, they correct it in less than a week when we tell them.
  19. Yes, I created the Wikidata entry of The Crucible production.
  20. Not sure if it’ll make you laugh but it was the first time I saw a property where all uses were wrong. P1218 has won entry in my personal wtf? ratings. It’s cleared up now, obviously.
  21. In my experience, if there is an error on Wikidata, it nearly always comes from Wikipedia and the IBDB was no exception.
  22. Catalan Wikipedia, I see you!
  23. Which also exist in mobile phone version for people wanting to complete Wikidata on their mobile phones (and who have a mobile phone which can go to the internet).
  24. With help from fellow Wikimedians. They are, objectively, fantastic people.
  25. But I’m done now for this English version of the article! Yay me!
  26. It’s still his fault.
  27. Who said “finally!”?
  28. In fact, there are many cool things about Wikidata.
  29. Where we learn he listed “cat breeding” as a special interest, very important information, admit it, which I couldn’t add on Wikidata. I’m the disappointment incarnated.
  30. I will deny that I cooed at my computer seeing that. Well, maybe not deny. But it was in a dignified sort of way!
  31. SPARQL is the language with which you can ask questions to a semantic database and it answers. And I love SPARQL.
  32. Did you know that more than ~150 000 people worked at Broadway?
  33. I’m a deeply optimistic kind of person.
  34. Action also known as “how to upload Wikipedias’ errors on Wikidata”, see previous note.
  35. Spoiler: Yes, in part.
  36. Spoiler: Yes, that too.
  37. Since then, I did a little bit of work on the French one, so it’s not as bad now as it was back then.
  38. List which is organized manually and not as a sortable table! It’s totally stupid, as we can’t easily sort by year for example, or by diploma. Urrrgh. (I created the French list at the end on July 2016 as a sortable, referenced table, just because).
  39. In this precise case, only one.
  40. I should try to do that one in SPARQL too!
  41. Spoiler: no. I still don’t know who is “H Bentley”. They very probably don’t have a Wikidata entry yet.
  42. Because Whishaw isn’t even the first RADA student to have played Q in James Bond.
  43. And here disappears the hope to know what % of RADA alumni have a Wikidata entry. Sigh.
  44. Which the RADA kindly confirmed on twitter. I love them!
  45. Descriptions are good! Descriptions are great! We love descriptions!
  46. Aliases are good! Aliases are great! We love aliases too!
  47. I really think so but I haven’t found a reference to back this claim yet. Some cases are much more difficult.
  48. Ahah, had you forgotten?
  49. Wikimedia France has a welcoming space for Wikimedians on rue de Cléry in Paris and we can be found there regularly.
  50. Thank you RADA technicians to have chosen to do that consistently!
  51. Wikidatians call “Qid” the Wikidata identifier of an item because the identifier always begin by “Q”.
  52. Finally, the RADA has had too many alumni. Not optimistic any more.
  53. Which second the “maybe yes” hypothesis.
  54. Haven’t I already said how much I love aliases? It bears repeating.
  55. Which are strangely less understandable if you don’t happen to memorize that “Q523926” means “Royal Academy of Dramatic Art”.
  56. So there.
  57. Which was very kind of him.
  58. Like Margaret Rutherford: someone added summarily the information in 2008, the page is categorized in 2010…
  59. Mix n’ Match can tag an identifier as needing a Wikidata entry to be created.
  60. With the exception of 1908 and 1909, all other years only have a unique student listed.
  61. But frankly, my lua isn’t good enough right now.
  62. Tpt created a similar lua module for me when I worked on sled dog races. You can see it in use in this French Wikinews article: the table is dynamic and show the content of the race’s Wikidata entry.
  63. Yes, again.
  64. Or not.
  65. No surprise here.
  66. Am I the only weird one out there who like to poke the graph and see it rearrange itself all around my screen?
  67. And I can write footnotes, which are clearly the other fun part of this article, hands down.

by Harmonia Amanda at August 30, 2016 07:09 AM

August 29, 2016

CHWiki

#WikiConvFR

Freikultur, grosse déconne et belle découverte.

by Popo le Chien at August 29, 2016 07:04 AM

August 22, 2016

Wikimédia France

WikiJourney fête son premier anniversaire !

Logo de WikiJourney par SylvainAr, CC-BY-SA 4.0

WikiJourney a pour objectif de permettre à ses utilisateurs de prendre connaissance des points d’intérêt à proximité d’eux, et de créer un itinéraire permettant de les rallier. Mais ce projet ne s’arrête pas là, affichant les guides touristiques des environs, contenant ainsi toutes les informations nécessaires pour voyager !

WikiJourney se compose de trois outils : une API, sur laquelle se reposent un site internet et une application mobile. La particularité de ce projet ne réside pas dans le choix de publication Open Source – d’autres applications touristiques publiées sous cette licence sont déjà disponibles – mais dans le fait que toutes les ressources utilisées sont libres, car mises à disposition par la communauté sur Wikipédia, Wikidata et WikiVoyage. Les premières lignes de code du projet WikiJourney ont ainsi été écrites lors du Hackathon Wikimédia de mai 2015, sous le regard intéressé des membres de la communauté qui y étaient présents.

En août 2015, après la signature d’une convention avec Wikimédia France pour officialiser le prêt d’un serveur, la première version de WikiJourney est mise en ligne, sous la forme d’un site web, ainsi que d’une application mobile pour Android. Depuis, de nombreuses améliorations ont été ajoutées, telles que la possibilité de sauvegarder ses parcours avec son compte Wikimédia par exemple. L’outil se diversifie également : traduit dans plusieurs langues, WikiJourney rencontre peu à peu un public international.

Screenshot WikiJourney Website v2.0 map

Capture d’écran de la carte.

Lancé dans le cadre de l’activité projet de l’École Centrale de Lille par une équipe de sept élèves ingénieurs, il est “officiellement terminé” depuis janvier. Toutefois, une partie de l’équipe initiale, toujours aussi motivée par le développement Open Source, ainsi que par la promotion des outils libres de la Fondation Wikimédia, continue à le maintenir à titre personnel en développant de nouvelles fonctionnalités, afin de l’améliorer petit à petit. Tous les codes sources sont également disponibles sur Github, afin que n’importe quel contributeur intéressé puisse proposer des améliorations, voire les développer lui-même.

Screenshot WikiJourney Application v1.2.0 list

Capture d’écran de l’application.

En effet, le projet est loin d’être terminé. Du côté développement, l’équipe souhaiterait par exemple améliorer l’outil permettant de sauvegarder ses parcours, afin de pouvoir les publier en ligne. Ceci permettrait non seulement aux utilisateurs de partager leurs parcours avec leurs amis, mais également aux offices de tourisme de distribuer les leurs aux touristes ; prouvant ainsi qu’il est tout à fait possible de s’informer sur les outils de la Fondation, y compris certains moins connus du grand public comme WikiVoyage. À terme, cela pourrait également pousser les offices de tourisme à compléter les informations présentes sur ces guides.

En dehors du périmètre des nouvelles fonctionnalités, certains points sont à revoir : l’amélioration du référencement ainsi que la traduction des textes en différentes langues en font partie. Si vous désirez contribuer au projet, de quelque manière que ce soit, vous êtes le/la bienvenu-e !

Profitez de vos vacances, utilisez WikiJourney pour découvrir ce qu’il y a autour de vous, et si vous en avez l’occasion, améliorez les pages Wikipédia et les guides WikiVoyage que vous allez découvrir durant vos parcours !

 

Cet article nous a été proposé par l’équipe du projet. Merci à eux !

by Anne-Laure Prévost at August 22, 2016 04:30 PM

August 18, 2016

Wikimédia France

Les gagnants de Wiki Loves Earth 2016 !

Wiki Loves Earth est un concours de photographie dont le but est de prendre en photo des espaces naturels protégés et de les verser sur la médiathèque de Wikipédia : Wikimédia Commons.

Ce concours international qui a lieu depuis 2014 s’est tenu en France pour la deuxième édition du 1er au 31 mai 2016. Pendant un mois, 2430 images ont été mises en ligne par 161 contributeurs (contre respectivement 2290 et 250 l’année dernière) dont la très grande majorité (71 %) s’est créée un compte pour l’occasion.

Parmi l’ensemble des 19 pays participants, cela représente 76 000 images mises en ligne par plus de 6 400 personnes !

Le jury, composé de 7 personnes (gagnants de l’année dernière, responsable de réserve naturelle, journaliste, …) a pu évaluer les images mises en ligne grâce à un outil dédié.

Voici donc les 10 gagnants de cette édition :

Plateau d'Emparis

1er : Nuno Alves, plateau d’Emparis.

Cheminée de montagne, Mont Aiguille

2e : Tom Chirossel, Cheminée de montagne, Mont Aiguille.

Les Trois Dents 1

3e : Olivier-pilat, Les Trois Dents.

Au coeur du Boréon

4e : Nico-sct, Au cœur du Boréon.

Bouquetins au lac long (3)

5e : Ibex73, Bouquetins au lac long.

Dans le parc ornithologique du Pont de Gau

6e : Dkiechle, parc ornithologique du Pont de Gau.

Corsica - Nino

7e : Ed BEDOS, lac de Nino.

Cascades du Hérisson, l'éventail

8e : JGS25, cascades du Hérisson.

Lac de Vouglans vu de sur Faucon

9e : Annick Monnier, lac de Vouglans.

Pic Saint-Michel, Vercors - IMG1471

10e : Jp.sembely, pic Saint-Michel.

Félicitations à l’ensemble des gagnants qui seront contactés dans les jours qui viennent pour recevoir leurs lots !

La photo gagnante en France sera soumise à un jury international avec toutes les autres photos gagnantes des autres pays participants.

by Mathieu Denel at August 18, 2016 11:16 AM

August 13, 2016

Wikimédia France

Premier Edit-a-thon Toulouse – Montpellier inauguré à Mazamet

Le 30 juillet, les groupes locaux de Toulouse et Montpellier se sont réunis pour une première rencontre après la fusion des régions Midi-Pyrénées et Languedoc-Roussillon.

Cette première rencontre a eu lieu sous la forme d’un edit-a-thon dans la ville de Mazamet. Les groupes locaux toulousains et montpelliérains se sont donnés rendez-vous le samedi matin à l’office de tourisme pour une excursion photo dans les rues et musées de la ville.

Située aux confins des départements du Tarn et de l’Aude et aux pieds de la montagne Noire et du rocher d’Hautpoul, Mazamet est à équidistance des villes de Béziers et Toulouse. Ville d’environ 10.000 habitants, cette ville a vécu pendant 150 ans de l’industrie du délainage.

Eglise Notre-Dame à Mazamet ( ShreCk - CC BY-SA 4.0). La fontaine du village médiéval de Hautpoul (Raphael Isla - CC BY-SA 4.0). Ruine au bord de l'Arnette (Pascal Arnoux - CC BY-SA 4.0).

Tout au long de la matinée, des conseils pratiques sur la photographie ont été dispensés aux wikimédiens et membres de l’association Montpel’libre venus participer. Puis, après un pique-nique au bord de la rivière, c’est au sein de la médiathèque de Mazamet que les bénévoles ont contribué à des articles liés à la commune (Mazamet, Industrie de Mazamet, Foire de Montagnac et Pézénas). Nous avons aussi profité de  “L’été des régions Wikipédia” pour ajouter des photos prises le matin dans la catégorie Mazamet dans Commons.

Une photo de groupe a conclu cette belle première journée de contribution entre wikimédiens Toulousains et Montpelliérains.

Wikimédia Toulouse et Montpellier à Mazamet (ShreCk – CC BY-SA 4.0).

 

 

by Chloé Masson at August 13, 2016 08:45 AM

August 08, 2016

Wikimédia France

Brest 2016, des wiki et la mer

Du 13 au 19 juillet a eu lieu Brest 2016, la septième édition des fêtes maritimes de Brest où était présents plus d’un millier de bateaux traditionnels venant de toute la France et du monde entier. Un riche patrimoine qui constitue une parfaite occasion de collecter des contenus inédits pour les projets Wiki, principalement des photos mais aussi des témoignages, reportages, etc.

Les participants viennent de différents horizons, des wikimédien-ne-s évidemment mais aussi des contributeurs et contributrices à Wiki-Brest ou à la webtélé brestoise Quartiers Libres. Cette diversité de profils permet à chacun-e de se concentrer sur ce qu’il/elle sait faire de mieux dans un but commun. La plupart des participant-e-s étant déjà venu-e-s lors de la dernière édition, il y a 4 ans, le procédé de fonctionnement commence à être bien huilé. Le matin, tout le monde se rassemble pour faire le point sur le programme de la journée et chacun-e vaque ensuite à ses occupations. Pendant que les photographes partent arpenter les quais et sortir en mer, les contributeurs et contributrices créent et améliorent des articles ou bien enrichissent les informations des images prises la veille.

Un stand a été mis à notre disposition. Il était situé au cœur de la fête et a servi à la fois de lieu d’exposition (l’occasion de faire un retour sur les 10 ans de Wiki-Brest), d’espace web-reportage (pour Quartiers Libres) et d’espace de contributions.

L’objectif était de prendre en priorité des photos de qualité des navires (petits ou grands) n’ayant pas d’illustration dans Commons. Les photographies sont encore pour partie en cours de traitement mais le résultat est déjà impressionnant : près d’un millier de fichiers ont été importés sur Wikimédia Commons par 16 personnes ! Elles sont toutes visibles dans cette catégorie sur Commons et voici quelques exemples ci-dessous :

L’Hermione, réplique de la frégate de La Fayette (Ph. Saget [CC BY-SA 3.0], via Wikimedia Commons)

Le Kruzenshtern, un des 5 derniers quatre-mâts barque du monde en état de naviguer (Ph. Saget [CC BY-SA 3.0], via Wikimedia Commons).

Le monocoque de compétition K. VIII (Pymouss [CC BY-SA 4.0], via Wikimedia Commons).

Pen Duick I de Tabarly sous voile dans l’avant-port (Ph. Saget [CC BY-SA 3.0], via Wikimedia Commons).

Une belle récolte, vivement Brest 2020 !

by Nicolas Vigneron at August 08, 2016 08:27 AM

August 05, 2016

Alphos

Communes orphelines ?

(Ouh la vache, rien depuis 4 ans et demi ?! Je sais que j’ai eu autre chose à faire, mais quand même ! )

Une de mes bêtes noires sur Wikidata : les items représentant des communes françaises avec des déclarations mauvaises ou incomplètes.

Exemple du jour, ll n’est pas pertinent de considérer qu’une commune

Continue reading « Communes orphelines ? »

by Alphos at August 05, 2016 02:38 PM

August 03, 2016

Wikimédia France

Le Digital Language Diversity Project et Wikimedia France

Depuis plusieurs mois et dans le cadre du projet Langues de France, Wikimédia France est partenaire du Digital Language Diversity Project (DLDP). Ce programme est financé par l’agence européenne Erasmus + avec pour objectif d’aider au développement de la présence des langues régionales et minoritaires sur Internet notamment en apportant aux locuteurs des compétences humaines et techniques afin de faciliter l’utilisation de leur langue dans l’espace numérique.

Quatre langues minoritaires sont concernées par ce projet :

  • le breton (France)
  • ­le basque (France­-Espagne)
  • ­le carélien (Finlande)
  • ­le sarde (Italie)

Face à l’impossibilité d’ignorer l’importance des projets Wikimédia pour les langues minoritaires et l’action menée par Wikimédia France depuis un an envers les communautés linguistiques, il est apparu à tous que les efforts devaient être mutualisé. Ainsi, Lucas Lévêque (Lyokoï) est devenu un des conseillers du DLDP et Wikimédia France a intégré la liste des partenaires européens. Les bénéfices réciproques escomptés sont nombreux : en s’inspirant du questionnaire envoyé en septembre dernier par Wikimédia France et la Délégation générale à la langue française et aux langues de France (DGLFLF), le DLDP a ajouté une section concernant les projets Wikimédia dans l’enquête actuellement en cours en Europe :

DLDP_Survey-Banner_BlockLien vers l’enquête en breton
Lien vers l’enquête en basque

Lyokoï, qui a effectué un travail colossal pour aboutir à l’intégration de toutes les langues de France sur le Wiktionnaire francophone et fort de cette expertise, intervient directement dans la conception du programme du DLDP. Pour Wikimédia France, l’entrée dans un projet de grande ampleur permettra de diffuser plus largement l’immense travail accompli par les membres dans le cadre du projet Langues de France. Ainsi, en octobre 2016, une réunion des partenaires du DLDP se tiendra au Pays basque offrant ainsi la possibilité de présenter l’outil d’enregistrement Lingua Libre à des universitaires et des représentants académiques venus de toute l’Europe.

L’implication de Wikimédia France dans le DLDP apportera à l’association et à ses membres un nouveau réseau associatif et institutionnel capable de propulser l’ensemble du projet autour des langues régionales et minoritaires au stade supérieur.

by Rémy Gerbet at August 03, 2016 03:48 PM

Darkoneko

Jouons avec Wikidata : localités – la même au féminin.

Ce billet fait partie de la série : « Jouons avec Wikidata ».

Au menu d’aujourd’hui : après les saints, quelles saintEs sont les plus populaires dans les noms de communes de France ?
Comme pour le billet précedent :

(Mon petit doigt me dit que Sainte-Croix et Sainte-Foi/Foy ne désignent pas une personne…)

Sainte-Marie 55
Sainte-Croix 33
Sainte-Colombe 30
Sainte-Foy 16
Sainte-Marguerite 16
Sainte-Eulalie 13
Sainte-Gemme 12
Sainte-Anne 11
Sainte-Geneviève 10
Sainte-Radegonde 9
Sainte-Hélène 8
Sainte-Cécile 7
Sainte-Honorine 6
Sainte-Catherine 5
Sainte-Reine 5
Sainte-Suzanne 5

Classé dans:les coulisses de Wikipédia Tagged: sainte, saintes, ville, wikidata

by DarkoNeko at August 03, 2016 11:24 AM

July 31, 2016

Darkoneko

Jouons avec Wikidata : localités – le Bon Dieu sans confession.

Ce billet fait partie de la série : « Jouons avec Wikidata ».

Au menu d’aujourd’hui : quels saints sont les plus populaires dans les noms de communes de France ? Sans surprise, Saint-Martin a une bonne longueur d’avance.

Saint-Martin 272
Saint-Jean 182
Saint-Pierre 178
Saint-Germain 135
Saint-Laurent 99
Saint-Julien 97
Saint-Georges 96
Saint-Hilaire 83
Saint-Aubin 78
Saint-André 77
Saint-Étienne 74
Saint-Michel 69
Saint-Denis 66
Saint-Maurice 65
Saint-Paul 59
Saint-Léger 58
Saint-Vincent 49
Saint-Sauveur 48
Saint-Sulpice 44
Saint-Christophe 44
Saint-Ouen 42
Saint-Cyr 40
Saint-Bonnet 40


Remerciements : à Poulpy qui a réussi à démêler ma requête.


Classé dans:les coulisses de Wikipédia Tagged: saint, ville, wikidata

by DarkoNeko at July 31, 2016 03:43 AM

July 30, 2016

Linterweb

Un délit de démocratie sur Wikipedia

Lorsque la Fondation Wikimedia qui fait confiance à Internet Archive et consulte qu’une partie de la communauté aux risques de devenir editrice du contenu de Wikipedia avec un service énergivore.

Pour ceux qui ne connaissent pas, Internet Archive est une Fondation à but non lucratif de 200 salariés consacrée à l’archivage du Web créé en 1996, qui fait partie des 500 sites les plus vus sur la toile.
Pour ceux qui connaissent, il paraît évident que le cadre légal de l’archivage du web mondial est respecté par Internet Archive, car c’est le référent en la matière.
Pour ceux qui ne connaissent pas, le cadre légal repose sur un bout de code html placé sur les pages ou dans le fichier robots.txt. Ce bout de code est assez significatif puisqu’il s’agit du noarchive.
Pour ceux qui connaissent, les éditeurs des sites ont donc un moyen technique simple et efficace afin de protéger leurs droits d’auteurs même d’une copie temporaire.

Maintenant par trois exemples je vais vous démontrer qu’Internet Archive ne respecte pas la directive noarchive.
Le premier l’archivage du site de Sudouest, mais d’autres quotidiens nationaux sont impactés leFigaro, Nouvel Observateur ( … ) :
Article Donald Trump du nouvel observateur dont le source de l’article contient la balise noarchive ( CTRL U et CTRL F « noarchive » )
Il y a 311932 urls d’archivés pour SudOuest.
Le second est l’archivage du site de Lemonde :
– soit en faisant un framesur un site extérieur qui renvoie vers un article du monde,
– soit en utilisant un raccourcisseur d’url,
A ce moment-là vous obtiendrez une copie de la une du Monde, qui vous permettra de surfer sur l’ensemble du site du Monde qui sera enregistré temporairement, les robots d’Internet Archive viennent chercher l’information du site et les efface a posteriori.
J’invite donc toute la presse qui utilise la balise noarchive à contrôler les archives présentes sur archive.org et à estimer le manque à gagner car leurs archives sont en libre disposition dans toutes les universités américaines.
Le troixième est l’archivage de Facebook, par exclusion dans le fichier robots.txt du robots de Internet Archive, un exemple de sauvegarde du contenu au sujet de Denis Robert :
Je vous invite à titre particulier à vérifier si vos données publiques ne sont pas sauvegardées également.
Et pourtant depuis 2005 Internet Archive prétend qu’il respecte la meta donnée noarchive

Maintenant revenons à nos moutons, en effet le projet de remplacement des liens morts par un lien vers le système d’archive.org va changer irrémédiablement le contenu de l’encyclopédie :

Le souhait numéro 1 de la « communauté Wikipedia », alors qu’historiquement chaque communauté locale devrait être consulté avant une prise de décision, qui a acté à partir de 111 votants pour l’ensemble de toutes les langues est devenu un projet de la Fondation Wikimedia puisque Danny Horn est salarié de la Fondation Wikimedia et agit en tant que chef de projet de cette migration :
Danny Horn salarié de la Wikimedia Fondation
projet gérer par la Wikimedia Fondation

A ce titre-là, la Fondation n’est plus hébergeur du site de Wikipedia puisque remplacer des liens par d’autres liens est un acte d’édition. La Fondation Wikimedia devient donc éditrice par le biais du déploiement Cyberbot II sur l’ensemble des projets de la Fondation Wikimedia à hauteur de plusieurs centaines millions de liens.

Je me suis entretenu avec Danny qui en aucun cas n’a tenu compte de mes remarques, et je lui ai expliqué également de la difficulté de détecter un lien mort.
Le remplacement par la note 12 en est un parfait exemple, le Cybert_Bot_II a remplacé un lien par une archive alors que le site de BloomBerg donne toujours la même information :

Pour éviter de cataloguer les liens trops vite comme liens morts, il faut aller voir plusieurs fois les urls avant leur remplacement.

En outre cette solution, qui n’est pas la panacée, va donc devenir de plus en plus énergivore : en effet pour savoir si un lien est mort il est nécessaire d’y accéder de façon automatique mais au vu de la quantité de liens à surveiller je suis surpris qu’un tel service voit le jours car il sera payé par les dons.

Cela fait que c’est un projet excessivement polluant pour un rendu qui apporte moins que la solution que nous maintenons depuis 2009 pour la communauté Wikipedia Francophone hébergé en France à Saint Etienne du Rouvray.
En effet, les articles de Wikipedia Francophone restent inchangés tout en permettant un accès à toutes sources qui peuvent être modifié à postériori sans générer de liens morts. Un lien archive doit être positionné sur chacune des sources pour vérifier l’information en cas de changement de contenu de cette dernière.
Quant aux détracteurs de notre solution, sachez qu’en aucun cas nous n’avons perdu de la donnée depuis que nous nous sommes lancés dans ce projet. En effet, notre système repose sur un archivage du contenu de liens en temps réel dès qu’ils apparaissent sur Wikipedia ( pour justement pérenniser le travail de sourcing de la communauté ). La perte de la synchronisation est due généralement à un manque de communication entre la Fondation et Linterweb lors de correctif qui impact ce processus.

J’ai expliqué aux membres du projet que Linterweb était prête à partager sa technologie avec Internet Archive afin d’une part de ne pas augmenter le coût énergétique et d’autre part sur la captation des urls en temps réel.
Je n’ai pour l’instant eu aucun retour de leurs parts au sujet de ma proposition.
Evidement que notre solution est beaucoup moins laxiste concernant les normes d’archivages en vigueur et que notre solution est prête à être déployée pour d’autres langues avec l’aval des différentes communautés comme cela a été le cas pour le francophone et le hongrois.
L’expertise dans le domaine de l’archivage acquise par Linterweb, nous permet également d’affirmer qu’Internet Archive n’est pas le seul à outrepasser la bienséance nécessaire à ce type de projets.
Est-ce que la Fondation Wikimedia a pour rôle de détecter l’ensemble des sites qui ne fonctionnent plus, et qui résout partiellement le problème du sourcing des articles, je ne pense pas, c’est plus le rôle d’un moteur de recherche :

Pour contrer ce déploiement vous pouvez manifester votre mécontentement :
sur la page du projet
sur la demande du déploiement sur Wikipedia francophone
Mais dans ce monde-là, on accorde bien plus de crédits à une fondation de droit américains qui viole les droits du producteur de données ( cf : http://www.lemonde.fr/robots.txt ) et qui gagne de l’argent en revendant les archives qu’à une petite société française qui ne gagne pas d’argent sur les archives.

Pascal Martin

by Pascal Martin at July 30, 2016 02:30 AM

July 27, 2016

Darkoneko

Jouons avec Wikidata : traçons les cours d’eau.

Ce billet fait partie de la série : « Jouons avec Wikidata ». Deuxième et (à priori) dernier billet sur les cours d’eau.

La question du jour est « peut-on tracer une carte générale des cours d’eau de France juste avec les villes, et que ça soit reconnaissable ? ». En d’autre terme, construire sur ce que j’ai ébauché sur mon précédent billet. J’ai tout d’abord tenté de récupérer toutes les villes comportant « -sur » mais… le résultat était absolument illisible. Je vais donc, à la place, me baser sur l’article Liste des cours d’eau de France par longueur.

Notez qu’il s’agit de leur longueur en France, et non leur longueur totale (notablement, seule une petite partie des 1233km du Rhin coule en France. Enfin, en frontière de)

Premier jet

Commençons petit et reprenons les 5 plus longs cours d’eau : la Loire (1012km), la Seine (776km), le Rhône (545km), la Marne (525km) et la Garonne (523 km).

wikidata-fleuve-top5

Étendons

Bon, ça ressemble à quelque chose. Passons à 10 ? J’ajoute la Meuse (486km), le Lot (485km), la Dordogne (483km), la Saône (480km) et le Doubs (430km).

wikidata-fleuve-top10

Pas maaal

Ça reste lisible. J’ajoute donc l’Allier (410km), la Charente (381km), le Tarn (380km), la Vienne (372km) et le Cher (368 km).

wikidata-fleuve-top15

Hmmm

Je me dis que les problèmes vont commencer, mais pour voir, passons à 20 ! J’ajoute donc l’Aisne (353km), la Durance (324km), le Loir (317km), l’Oise (316km), et la Moseille (314km).

wikidata-fleuve-top20

J’ajoute la Sarthe (313km), l’Adour (309km), l’Yonne (292km), l’Aveyron (291km) et l’Isère (286km).

wikidata-fleuve-top25

 

La trentaine

hmm. + Indre (265km), Somme (263km), Creuse (255km), Isle (je sens que celui là va me faire des faux positifs – 255km) et Aube (248km).

wikidata-fleuve-top30

Et un dernier pour la route

ça ressemble, surprenament, encore à peu près à quelque chose. Les cours d’eaux devenant de plus en plus courts, j’ajoute ceux restants ayant une longueur en France > 200kms, et puis j’arrête avant que ça ne parte sérieusement en sucette.

J’ajoute donc : l’Eure (228km), Vilaine (225km), Aude (224km), Ill (223km), Ognon (214km), Vézère (211), Gartempe (205), Armançon (202), Mayenne (2002) et la Dronne (201) ; ce qui nous fait un total de 40.

wikidata-fleuve-top40

L’Ill étant un affluent du Rhin, et toute la zone portant principalement des noms de ville allemands, il y a, sans surprise, 0 résultats pour celui ci.

Les ajouts successifs donnent de moins en moins de résultats (+26 en passant de 30 à 35 cours d’eaux, puis +20 en ajoutant les 5 suivants) ; il est donc sage d’arrêter ici.

Idéalement je devrais faire un gif pour montrer l’évolution de la carte, mais ça va pas être simple d’ici.


Classé dans:les coulisses de Wikipédia Tagged: carte, ville, wikidata

by DarkoNeko at July 27, 2016 01:34 PM

Jouons avec Wikidata : localités au fil de l’eau.

Faisant suite à mon précédent billet. Lorsque j’aurais un peu plus d’étymologie, je tenterais d’autre motifs de noms de villes ; pour l’instant je m’amuse à récupérer et placer les noms de villes en rapport avec un fleuve.

Comme la fois précédente, il y a un lien vers la page de requête au dessus de chaque, si ça vous tente d’avoir une carte interactive et zoomable.

Seine

wikidata-fleuve-seine

Oise

wikidata-fleuve-oise

Saône

wikidata-fleuve-saone

Rhône

wikidata-fleuve-rhone

Loire

wikidata-fleuve-loire


Classé dans:les coulisses de Wikipédia Tagged: carte, ville, wikidata

by DarkoNeko at July 27, 2016 12:09 AM