Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faire une liste .csv des espèces dont on recherche des illustrations #9

Open
cecilaki opened this issue Oct 9, 2019 · 6 comments
Open
Assignees
Labels

Comments

@cecilaki
Copy link
Contributor

cecilaki commented Oct 9, 2019

Objectif : partager cette liste avec des parties prenantes susceptibles de fournir des images supplémentaires. Exemples : universitaires, ONGs (WWF..) etc..

Faire un premier extract à partir de requête SPARQL, avec les informations suivantes :

  • taxonCommonName
  • taxonCommonName_lang=EN
  • itemLabel
  • nomScientific
  • IUCN taxon ID (if any)
@cecilaki cecilaki assigned cecilaki, Marinetep and itly314 and unassigned cecilaki Oct 9, 2019
@cecilaki cecilaki changed the title Faire une liste .csv des espèces dont on recherche des illustration Faire une liste .csv des espèces dont on recherche des illustrations Oct 9, 2019
@cecilaki cecilaki added the Images label Oct 9, 2019
@Marinetep
Copy link
Collaborator

Marinetep commented Oct 12, 2019

WIP

@Iencho : 1) pourrais tu me donner ton avis sur les résultats ci dessous et 2) sais tu comment améliorer la seconde query pour obtenir le IUCNconservationstatusLabel en anglais ?

1. Identification du nombre d'espèces référencées sous Wikidata avec un ID Cites mais sans illustration

11 858 espèces sont référencées sous Wikidata avec un ID Cites mais n'ont pas d'illustrations.
(Pour rappel 20 349 des 38 619 ID Cites ont été identifiés comme non référencés sur Wikidata).

SELECT (COUNT(distinct ?idCITES) AS ?countidCITES)
WHERE
{
?item wdt:P105 wd:Q7432 ; wdt:P2040 ?idCITES.
FILTER NOT EXISTS{ ?item wdt:P18 ?image. } # without images
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
ORDER BY ASC (?idCITES)

2. Fichier contenant ces ID Cites : IDCITES_in_Wikidata_without_pictures.csv

Le fichier IDCITES_in_Wikidata_without_pictures.csv recense ces différents ID Cites enrichis des informations suivantes : taxon label, taxon Common Name, nom Scientific, IUCN taxon ID et IUCN statut. Ce fichier compte 12 332 observations car plusieurs "Taxon Common Name(s)" peuvent être associés à un même ID Cites.
Ce fichier est le résultat de la query ci dessous :

SELECT distinct ?idCITES ?speciesLabel ?nomScientific ?IUCNtaxonID ?IUCNconservationstatusLabel ?taxonCommonName
WHERE
{
?species wdt:P105 wd:Q7432 .
?species wdt:P2040 ?idCITES.
FILTER NOT EXISTS{ ?species wdt:P18 ?image. } # without images
OPTIONAL {
?species wdt:P225 ?nomScientific .
?species wdt:P627 ?IUCNtaxonID .
?species wdt:P141 ?IUCNconservationstatus .
?species wdt:P1843 ?taxonCommonName .
FILTER(LANG(?taxonCommonName) = "en") .
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }

}
ORDER BY ASC (?idCITES)

Aide Sparql :

https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples/fr

@itly314
Copy link
Collaborator

itly314 commented Oct 16, 2019

@Marinetep, j'ai regarder pour tes questions 1) et 2) et reponds en deux parties.

Partie 1/
D'abord, il y avait un pépin avec la clause OPTIONAL{ ... } car il manquait des données dans certaines cellules. En l'occurence, les colonnes, nomScientific, IUCNtaxonID, IUCNconservationstatusLabel et taxonCommonName, n'étaient renseignés que si toutes ces quatres informations étaient disponibles ensemble pour un item donné. S'il y avait juste le nomScientific par exemple, les quatres cellules étaient vides.

Or, les items pour les taxa en Wikidata ont toujours un nom scientifique à ce que je vois ; et je pense même qu'un item de type taxon qui n'a pas de nom scientifique pourrait être consideré comme non valable.

Pour corriger, on a besoin d'une clause 'OPTIONAL{...}' par variable facultatif.

En même temps, j'ai réussi à extraire le statut IUCN en anglais en utilisant le service wikibase:label ; et j'ai fait en sorte que le nom scientifique n'est plus facultatif

Ce qui donne le suivant :

SELECT ?idCITES ?speciesLabel ?scientificName ?IUCNtaxonID ?IUCNconservationstatusLabel_en ?taxonCommonName
WHERE
{
  ?species wdt:P2040 ?idCITES.  # items with a CITES ID
  ?species wdt:P225 ?scientificName . # with a scientific name
  ?species wdt:P105 wd:Q7432 . # taxons with the rank of species
  FILTER NOT EXISTS{ ?species wdt:P18 ?image. } # without images

  OPTIONAL { ?species wdt:P627 ?IUCNtaxonID . }
  OPTIONAL { ?species wdt:P141 ?IUCNconservationstatus . }
  OPTIONAL {
    ?species wdt:P1843 ?taxonCommonName .
    FILTER(LANG(?taxonCommonName) = "en") .
  }

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

  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
    ?IUCNconservationstatus rdfs:label ?IUCNconservationstatusLabel_en
  }

}
ORDER BY ASC (?idCITES)

@itly314
Copy link
Collaborator

itly314 commented Oct 16, 2019

Partie 2 /
Ensuite, je propose quelques améliorations dans la version de la requête ci-dessous

  • Remplacer le "label" Wikidata, ?speciesLabel, avec l'URI de référence en Wikidata. Si j'ai bien compris, le nom scientifique est ce qui a le plus d'importance ; et ensuite les noms communs s'ils exisitent. Le label Wikidata est moins bien défini et pourrait créer une risque de confusion : parfois il est égal au nom scientifique, parfois à un des noms communs, et peut-être à d'autres possibilités. Et avec l'URI on peut toujours accéder à la fiche entière si l'on veut.
  • Éliminer les doublons d'ID CITES dans le fichier en concatenant tous les ?taxonCommonName dans la même cellule
  • Inclure également les noms communs en français. Ça ne gonfle pas le fichier et comme on est susceptible de faire appel aux intervanants et resources francophones, pourquoi pas.

On note aussi que,

  • la requête ne donne que les taxa qui ont le rang d'une espèce
  • il y a quand même 42 taxa qui n'ont pas le rang d'une espèces et qui n'apparaissent pas dans les résultats. Ce sont des sous-espèces ou d'autres niveaux de taxon, ou bien des anomalies ; à regarder plus tard ...

Requête améliorée pour générer CITES_Species_requiring_images.csv :

SELECT ?idCITES ?wdItem ?scientificName ?IUCNtaxonID
?IUCNconservationstatusLabel_en (GROUP_CONCAT(?taxonCommonName ; separator=" ; ") AS ?taxonCommonNames)
WHERE
{
  ?wdItem wdt:P2040 ?idCITES.  # items with a CITES ID
  ?wdItem wdt:P225 ?scientificName . # with a scientific name
  ?wdItem wdt:P105 wd:Q7432 . # taxons with the rank of species
  FILTER NOT EXISTS{ ?wdItem wdt:P18 ?image. } # without images

  OPTIONAL { ?wdItem wdt:P627 ?IUCNtaxonID . }
  OPTIONAL { ?wdItem wdt:P141 ?IUCNconservationstatus . }
  OPTIONAL {
    ?wdItem wdt:P1843 ?taxonCommonName .  # retrieve common names in EN and FR
    FILTER( LANG(?taxonCommonName) = "en" || LANG(?taxonCommonName) = "fr" ) .
  }

  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
    ?IUCNconservationstatus rdfs:label ?IUCNconservationstatusLabel_en
  }

}
GROUP BY ?idCITES ?wdItem ?scientificName ?IUCNtaxonID ?IUCNconservationstatusLabel_en
ORDER BY ASC (?idCITES)

Cliquer ici pour exécuter : https://tinyurl.com/y3usk25d

@itly314
Copy link
Collaborator

itly314 commented Oct 16, 2019

Le fichier CITES_Species_requiring_images.csv remplace désormais le fichier IDCITES_in_Wikidata_without_pictures.csv

@cecilaki peut on supprimé l'ancien fichier?

@itly314
Copy link
Collaborator

itly314 commented Oct 16, 2019

Amélioration pour plus tard : rajouter des colonnes qui permettront de ségmenter la liste selon les niveaux taxanomique.

Par exemple: il serait utile de traiter les animaux séparamment des plantes ; ou sortir une liste des mamifères dont on cherche une illustration

@cecilaki
Copy link
Contributor Author

Le fichier CITES_Species_requiring_images.csv remplace désormais le fichier IDCITES_in_Wikidata_without_pictures.csv

@cecilaki peut on supprimé l'ancien fichier?

Bien sur!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants