import pywikibot
from pywikibot import pagegenerators as pg
"""
in August 2016 the new requested property P3061/BRIN-number was created.
This number has previously been imported as "alias",
this script will move those from the alias to P3061
"""
query = u'select ?item where { ?item wdt:P31/wdt:P279* wd:Q3914 . ?item wdt:P17 wd:Q55 }'
undefined = 'n/a'
blank = ' '
BRINproperty='P3061'
def wd_sparql_generator(query):
wikidatasite=pywikibot.Site('wikidata','wikidata')
generator=pg.WikidataSPARQLPageGenerator(query,site=wikidatasite)
for wd in generator:
if (not wd.isRedirectPage()):
if (wd.exists()):
wd.get(get_redirect=True)
yield wd
def main():
repo = pywikibot.Site('wikidata','wikidata').data_repository()
scholen = wd_sparql_generator(query)
for school in scholen:
if ('nl' in school.descriptions):
nldesc = school.descriptions['nl']
else:
nldesc = 'n/a'
if (BRINproperty in school.claims):
propBRIN = school.claims.get(BRINproperty)[0].getTarget()
else:
propBRIN=blank
aliasBRIN = undefined
if ('nl'in school.aliases):
for alias in school.aliases['nl']:
if (alias.find('BRIN-nummer')>0):
aliasBRIN = alias[0:4]
print('%s: <%s>-{%s}-%s' % (school.title(),aliasBRIN,propBRIN,nldesc))
if ((propBRIN==blank) and (aliasBRIN!=undefined)):
print('Set to: %s' % aliasBRIN)
claim = pywikibot.Claim(repo,BRINproperty)
claim.setTarget(aliasBRIN)
school.addClaim(claim,summary=u'prefill-BRIN.py [[User:Edoderoobot/prefill-BRIN.py|source]]')
main()