Créer un nouvel item Wikidata sans lien avec une page Wikipédia

Le script suivant permet avec pywikibot (version core) de créer un item sur Wikidata sans avoir en référence de page Wikipédia (ou page de projets frères Wikisource, Wikiquote, Wikivoyage…).

C’est l’occasion également d’avoir un exemple –volontairement redondant pour bien détailler– d’édition possible pour un item d’art visuel.

# -*- coding: utf-8  -*-
# /* / */
import pywikibot

# Connexion à Wikidata
site = pywikibot.Site("wikidata","wikidata")
site.login()
repo = site.data_repository()

# Un libellé avec sa langue est indiqué
data = {u'labels':{u'en':
             {u'language': u'en',
              u'value': u'Jupiter Beguiled by Juno on Mount Ida'}
             }
        }
identification = {}
summary = u'Creating new item with data from Wikimedia commons'
pywikibot.output(summary)

# L'item est créé
result = repo.editEntity(identification, data, summary=summary)

# L'item est récupéré pour être renseigné
ItemTitle = result.get(u'entity').get('id')
item = pywikibot.ItemPage(repo, title=ItemTitle)
item.get()

item.editAliases({u'en':[u'Jupiter and Juno on Mount Ida']})
item.editDescriptions({u'en': u'painting by James Barry'})

# L'œuvre a comme libellé principal (label) 'Jupiter séduit par Junon sur le mont Ida'
item.editLabels({u'fr': u'Jupiter séduit par Junon sur le mont Ida'})
# L'œuvre a un autre un libellé (alias) 'Jupiter et Junon sur le mont Ida'
item.editAliases({u'fr':[u'Jupiter et Junon sur le mont Ida']})
# Elle peut être décrite comme une 'peinture de James Barry' 	
item.editDescriptions({u'fr': u'peinture de James Barry'})

# source 1 - Sheffield Galleries and Museums Trust
REF = pywikibot.Claim(repo,u'P143')
REF.setTarget(pywikibot.ItemPage(repo,u'Q7492669'))

# source 2 - Wikimedia Commons
REF2 = pywikibot.Claim(repo,u'P143')
REF2.setTarget(pywikibot.ItemPage(repo,u'Q565'))

# C'est (P31) une peinture (Q3305213)
claim = pywikibot.Claim(repo, u'P31')
target = pywikibot.ItemPage(repo, u'Q3305213')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# appartenant aux collections (P195) de la Graves Art Gallery (Q5597892)
claim = pywikibot.Claim(repo, u'P195')
target = pywikibot.ItemPage(repo, u'Q5597892')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# localisée (P276) à la Graves Art Gallery (Q5597892)
claim = pywikibot.Claim(repo, u'P276')
target = pywikibot.ItemPage(repo, u'Q5597892')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Ayant pour numéro d'inventaire (P217) VIS.2742 
claim = pywikibot.Claim(repo, u'P217')
target = u'VIS.2742'
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Ayant pour auteur (P170) James Barry (Q1042892)
claim = pywikibot.Claim(repo, u'P170')
target = pywikibot.ItemPage(repo, u'Q1042892')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Sa date de réalisation (P571) se situe dans les années 1790
claim = pywikibot.Claim(repo, u'P571')
date = pywikibot.WbTime(year=1790, precision=8)
claim.setTarget(date)
item.addClaim(claim)
claim.addSource(REF)

# Comme materiau (P186), huile (Q296955)
claim = pywikibot.Claim(repo, u'P186')
target = pywikibot.ItemPage(repo, u'Q296955')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Comme matériau (P186), toile (Q4259259)
# avec en qualificateur "partie concernée" (P518) "support de peinture" Q861259
claim = pywikibot.Claim(repo, u'P186')
target = pywikibot.ItemPage(repo, u"Q4259259")
claim.setTarget(target)
item.addClaim(claim)
qualifier = pywikibot.Claim(repo, u'P518')
target = pywikibot.ItemPage(repo, u'Q861259')
qualifier.setTarget(target)
claim.addQualifier(qualifier)
claim.addSource(REF)

# Une image de l'œuvre (P18) sur Wikimedia Commons, "James Barry 001.jpg"
mediasite = pywikibot.Site("commons", "commons")
imageclaim = pywikibot.Claim(repo, u'P18')
image = pywikibot.ImagePage(mediasite, u"James Barry 001.jpg")
imageclaim.setTarget(image)
item.addClaim(imageclaim)
imageclaim.addSource(REF2)

# Dans les éléments dépeints (P180), Héra (Q38012)
claim = pywikibot.Claim(repo, u'P180')
target = pywikibot.ItemPage(repo, u'Q38012')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Dans les éléments dépeints (P180), Zeus (Q34201)
claim = pywikibot.Claim(repo, u'P180')
target = pywikibot.ItemPage(repo, u'Q34201')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Dans les éléments dépeints (P180), un aigle (Q2092297)
claim = pywikibot.Claim(repo, u'P180')
target = pywikibot.ItemPage(repo, u'Q2092297')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# L'œuvre est basée sur (P144) sur l'Iliade (Q8275)
claim = pywikibot.Claim(repo, u'P144')
target = pywikibot.ItemPage(repo, u'Q8275')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Le genre (P136) de l'œuvre est une peinture mythologique (Q3374376)
claim = pywikibot.Claim(repo, u'P136')
target = pywikibot.ItemPage(repo, u'Q3374376')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF)

# Le mouvement artistique (P135) peut être considéré comme du néoclassicisme (Q14378)
claim = pywikibot.Claim(repo, u'P135')
target = pywikibot.ItemPage(repo, u'Q14378')
claim.setTarget(target)
item.addClaim(claim)
claim.addSource(REF2)

Le résultat sur Wikidata :

www.wikidata.org/wiki/Q17242710

Ou en joli sur Reasonator :

tools.wmflabs.org/reasonator/?&q=Q17242710

Ou encore sur Crotos :

zone47.com/crotos/?q=17242710