Viquiprojecte:Grup Tècnic/Formació tècnica 2015/artistes.py
Aparença
# Aquest codi genera la base de dades d'artistes, si voleu el que genera QuickStatements pels que falten envieu un missatge.
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import pywikibot
import json
import urllib
import urllib2
site = pywikibot.Site('en', 'wikipedia')
repo = site.data_repository()
font = "Q526170"
data = json.loads(open("data.json").read())
out = []
def search_items(name, lang):
url = u"https://www.wikidata.org/w/api.php?action=wbsearchentities&search=%s&format=json&language=%s" % (urllib.quote(name.encode('utf-8')), lang)
req = urllib2.Request(url, headers={"User-Agent" : "Pywikibot/2.0"})
u = urllib2.urlopen(req)
t = json.loads(u.read())
if t['success'] == 1:
results = [x['id'] for x in t['search']]
return results
return []
def get_items(ids):
url = u"https://www.wikidata.org/w/api.php?action=wbgetentities&ids=%s&format=json&props=claims" % (urllib.quote('|'.join(ids)))
req = urllib2.Request(url, headers={"User-Agent" : "Pywikibot/2.0"})
u = urllib2.urlopen(req)
t = json.loads(u.read())
artistes = []
for entity, props in t['entities'].iteritems():
if not 'claims' in props:
continue
ofici = props['claims'].get('P106',None)
if ofici:
ofici = ofici[0]['mainsnak']['datavalue']['value']['numeric-id']
if ofici == 1028181:
artistes.append(entity)
return artistes
"""{u'entities': {u'Q1179470': {u'claims': {u'P106': [{u'id': u'q1179470$C93575BA-AB8D-48C3-B6CA-73691D945736',
u'mainsnak': {u'datatype': u'wikibase-item',
u'datavalue': {u'type': u'wikibase-entityid',
u'value': {u'entity-type': u'item',
u'numeric-id': 937857}},
u'property': u'P106',
u'snaktype': u'value'},
u'rank': u'normal',
u'type': u'statement'}],"""
artists = {}
def get_author(name):
global artists
if artists.get(name, 'notfoundbro') != 'notfoundbro':
return artists[name]
langs = ['ca','en','es']
results = []
for lang in langs:
it = search_items(name, lang)
results.extend(it)
#if len(it) != 0:
# break
results = list(set(results))
if len(results) == 0:
print "No hem trobat resultats per a %s. No el coneix ni sa mare." % name
artists[name] = None
elif len(results) > 1:
print "Well shit %s, hi ha %d possibilitats." % (name, len(results))
oficis = get_items(results)
if len(oficis) == 1:
print u" Però només un és artista, yay! %s" % oficis[0]
artists[name] = oficis[0]
elif len(oficis) == 0:
print u" Però cap és artista -.-'"
artists[name] = []
else:
print u" Però hi ha diversos artistes: %s" % ', '.join(oficis)
artists[name] = oficis
else:
print "Found 1 result for %s! %s" % (name, results[0])
artists[name] = results[0]
autors = []
for i, art in enumerate(data):
print "%.2f" % (float(i)/len(data)*100)
source = "S143 "
out.append("CREATE")
out.append('LAST Lca "%s"' % art[u"TÍTOL"])
get_author(art['AUTOR'])
#print artists
print len(autors), len(set(autors))
print artists
#print artists
#print data
#print '\n'.join(out)
# Aquí la base de dades resultant :-)
artistes = {u'Sim\xf3 Busom Grau': u'Q19594483', u'Leonilson': u'Q10317398', u'Dario Mecatti': u'Q10264227', u'Jos\xe9 Manuel Broto': u'Q11685969', u'Robert A. Scott': u'Q7341293', u'Soledad Sevilla': u'Q11703980', u'Luis Claramunt': u'Q3266642', u'Diamantino Riera': u'Q19594402', u'Joan Hern\xe1ndez Pijuan': u'Q1455806', u'Alberto Solsona': u'Q19594546', u'Garcia Villella': u'Q19594540', u'Josep Gum\xed Cardona': u'Q19594486', u'Magda Ferrer': u'Q19594462', u'Alberto Solsona; Fernando Almela': None, u'Gemma Sin': u'Q19594177', u'Antonio Gonzalo Lind\xedn': u'Q14928433', u'Josep Roca Sastre': u'Q19594201', u'Georges Condo': u'Q1387626', u'Dario Urzay': u'Q19594203', u'Carol Rama': u'Q529763', u'Joaquim Chancho': u'Q19594488', u'Lorenzo Valverde': u'Q19300905', u'Hans-G\xfcnther van Look': u'Q1577119', u'Lu\xeds Gordillo': u'Q19594257', u'Daniel Argimon': u'Q8353580', u'Joyce Weinstein': u'Q19594464', u'Maria Assumpci\xf3 Ravent\xf3s': u'Q977309', u'Xavier Grau': u'Q19594307', u'Vicen\xe7 Caralt\xf3': u'Q11705067', u'Ricard Fradera Veiga': u'Q19594357', u'Julian Opie': u'Q451564', u'M\xaa Teresa Ll\xe0cer': u'Q19594430', u'Jim\xe9nez Balaguer': u'Q19594392', u'Am\xe8lia Riera': u'Q19594393', u'Fernando G\xf3mez Cat\xf3n': u'Q19594394', u'Marisa Esmatjes Momp\xf3': u'Q19594548', u'Karl Horst H\xf6dicke': u'Q126458', u'Jordi Cerd\xe0': u'Q15864156', u'Antoni Clav\xe9': u'Q537652', u'Riera i Arag\xf3': u'Q19594502', u'\xc0ngel Jov\xe9': u'Q17032001', u'Joan Moncada': u'Q19594396', u'Isidre Xufr\xe9': u'Q19594397', u'Etienne Chambaud': u'Q19594513', u'Joan Josep Tharrats': u'Q4892330', u'Rafael Bataller': u'Q19594398', u'Jacques Michel': [], u'Joan Pon\xe7': u'Q1092559', u'Roser Bru Llop': u'Q19594408', u'Oca\xf1a': [], u'Wu Shih-Lu': u'Q19594460', u'Rosa Rabassa': u'Q19594403', u'Joan Furriols': u'Q19594258', u'Huo Hs\xfcen-Kang': u'Q19594406', u'Maria Girona': u'Q11690955', u'Charo Pradas': u'Q19594407', u'Pic Adrian': u'Q19594401', u'Jan van der Loo': u'Q19594409', u'Pilar Leita': u'Q19594516', u'Miquel Tort': u'Q19594410', u'Gerardo Bl\xe1zquez': u'Q19594520', u'Bimal Banerjee': u'Q19594411', u'Cesc': u'Q5065536', u'Ramon Llu\xeds Monlla\xf3': u'Q19594517', u'Manuel Ocampo': [], u'Montserrat Costa': u'Q11937527', u'Francesca Llopis': u'Q19594413', u'Jordi Farjas': u'Q19594414', u'Equipo Cr\xf3nica': u'Q2545734', u'Nigel Henderson': [], u'Raimon Sunyer': u'Q19594415', u'Perejaume; Robert Llim\xf3s; Zush': None, u'G\xfcnther F\xf6rg': u'Q561184', u'Roser Lacasa': u'Q19594426', u'Pedro de Valencia': u'Q3374154', u'Vall\xe8s': [], u'Joan Abell\xf3 Prat': u'Q19594423', u'Maria Jes\xfas de Sol\xe0': u'Q19594424', u'Bego\xf1a Egurbide': u'Q11908914', u'Keiji Ohmura': u'Q19594428', u'Xano Armenter': u'Q16170391', u'Enric Planasdur\xe0': u'Q19594497', u'Jordi Cerd\xe0; Rom\xe0 Vall\xe8s': None, u'Antoni Mas': [], u'Silvia Gubern': u'Q19301880', u'F\xe9lix Adelantado': u'Q19594521', u'Mario Lorieto': u'Q19594493', u'Jos\xe9 Quero': u'Q19594434', u'Pere Tort': u'Q19594435', u'Armand Cardona Torrandell': u'Q16187434', u'Shia Yan': u'Q19594530', u'Antonio Beneyto': u'Q19594437', u'Santiago Pericot': u'Q19594439', u'Manuel Navarro Fuertes': u'Q19594441', u'Perico Pastor': u'Q11941128', u'Xavier Serra de Rivera': u'Q19594443', u'Jordi Freixas Cort\xe9s': u'Q19594445', u'Mauro Mej\xedaz': u'Q6007179', u'Bartomeu Massot': u'Q19594467', u'Pep Agut': u'Q19594449', u'Mateo Vilagrasa': u'Q19594451', u'Menchu Lamas': u'Q19594453', u'Juan Madojo': u'Q19594454', u'Isabel De Daganzo': u'Q19594456', u'Michiko Itatani': u'Q19594458', u'Fin': [], u'Antonio Zarco Fortes': u'Q19594461', u'Ramon Aguilar': u'Q11944550', u'Josep Maria de Sucre': u'Q933523', u'Concepci\xf3 Ib\xe1\xf1ez': u'Q19594463', u'David Salle': [], u'Will Faber': u'Q19302017', u'Meyer Vaisman': u'Q16942327', u'Julio Gal\xe1n': u'Q1712361', u'Carlos Mensa': u'Q19594466', u'Anselm Kiefer': u'Q170344', u'A. R. Penck': u'Q279088', u'Pilar Perdices Sintes': u'Q19594512', u'Patricio V\xe9lez': u'Q19594468', u'Llu\xeds Pera Moner': u'Q19594556', u'Wouter van Der Hallen': u'Q19594494', u'Eul\xe0lia Grau': u'Q4276230', u'Jaume Xifra': u'Q19299761', u'C\xe8sar': [], u'Lucio Fontana': u'Q312392', u'Joan Fontcuberta': [], u'Paul Klee': u'Q44007', u'Menchu Gal Orendai': u'Q19594558', u'Pere Clapera': u'Q16999645', u'Pablo Palazuelo': u'Q1381297', u'Joan Rabascall': u'Q17031771', u'Richard Paul Lohse': u'Q547803', u'Alberte Permuy': u'Q19594552', u'Manuel Viola': u'Q742009', u'Albert R\xe0fols-Casamada': u'Q2607849', u'Dolors Dalmau': u'Q19594472', u'Robert Llim\xf3s': u'Q15984428', u'Jorge Noriega': u'Q19594476', u'Rafael Reyes': [], u'Sixte Blasco': u'Q19594474', u'Elena Paredes': u'Q19594475', u'Manolo Quejido': u'Q5991707', u'Joan Mir\xf3': u'Q152384', u'Jos\xe9 Mar\xeda Sicilia': u'Q5943544', u'Jos\xe9 Lapayese del R\xedo': u'Q19594489', u'Xavier Puigmart\xed': u'Q19594477', u'Modest Rodr\xedguez-Cruells': u'Q19594478', u'Fernando Zobel': u'Q3328160', u'Julian Parada': u'Q19594559', u'Ramon Buf\xed Mas': u'Q19594480', u'Anton Pati\xf1o': u'Q8202029', u'Gianfranco Baruchello': u'Q328719', u'Andreu Fossas': u'Q19594481', u'Err\xf3': u'Q445946', u'Gerard Sala': u'Q19594560', u'Llu\xeds Pessarodona': u'Q19594447', u'Jos\xe9 Barcel\xf3': u'Q19594565', u'Norio Nakajima': u'Q19594482', u'Enzo Cucchi': u'Q698306', u'Josep Hurtuna': u'Q19594484', u'Antoni Jov\xe9': u'Q19594358', u'Jaume Muxart': u'Q953107', u'Miquel Barcel\xf3': u'Q561930', u'Jean Dubuffet': u'Q170076', u'Guillermo Kuitca': u'Q348591', u'Xavier Valls': u'Q328956', u'Joan Vila Casas': u'Q11927986', u'Jaume Planas Gall\xe9s': u'Q19594490', u'Victoria Civera': u'Q9093427', u'Richard Hamilton': u'Q159465', u'Antoni Cabot': u'Q19594491', u'Jaume Genovart': u'Q19594492', u'Josep Tapiola Gironella': u'Q19594419', u'Javier Rubio': [], u'V\xedctor Mira': u'Q10448986', u'Josep Ucl\xe9s': u'Q19300711', u'Graham Boyd': u'Q19594544', u'Antoni Mir\xf3 Bravo': u'Q19594495', u'Llu\xeds Bosch Crua\xf1as': u'Q19594564', u"Henry d'Anty": u'Q19594534', u'Masao Kotsuka': u'Q19594496', u'Perejaume': u'Q550154', u'Ramon Pichot Soler': u'Q19594529', u'Ito Miharu': u'Q19594499', u'Manuel Quintanilla': u'Q19594500', u'Josep M\xaa Garcia Llort': u'Q19594501', u'Erwin Bechtold': u'Q828966', u'Francesco Clemente': u'Q698667', u'Osamu Yamashita': u'Q11465996', u'Alberto Reyna': u'Q19594563', u'Otto Grau': u'Q2038946', u'Alejandro Xul Solar': u'Q19594503', u'Georg Herold': u'Q1504722', u'Patricio Cabrera': u'Q19594506', u'Albert Coma Estadella': u'Q11904759', u'Jordi Andreu Fresquet': u'Q19594507', u'Carol Sutton': [], u'Mimmo Paladino': u'Q701592', u'Ramon Pujol': u'Q11944634', u'Jean-Michel Basquiat': u'Q155407', u'Emilia Morin': u'Q19594508', u'Dieter Roth; Richard Hamilton': None, u'Rogelio L\xf3pez Cuenca': u'Q19594509', u'Rosa Cervera': u'Q19594469', u'M\xaa Llu\xefsa Magraner': u'Q19594510', u'Alfredo C\xe8s Lara': u'Q19594405', u'Teodor Asensio': u'Q19594400', u'Joan Pujol': [], u'Jordi Cur\xf3s': u'Q11928291', u'Ferran Garcia Sevilla': u'Q8961452', u'Tina Nin Ibars': u'Q19594432', u'Igor Ortega': u'Q19594514', u'Carles Guerra': u'Q19594515', u'Montserrat Gudiol': u'Q9034903', u'Fernando Ler\xedn': u'Q19594412', u'Katja Jacobs': u'Q19594518', u'Joaquim Lluci\xe0': u'Q19594519', u'Carles Nadal': u'Q19594471', u'Carlos Le\xf3n': u'Q16543311', u'Herminio Molero': u'Q5895891', u'Kiyoshi Hamada': u'Q19594569', u'Salvador Llorens Faix\xe0': u'Q19594522', u'Pello Irazu': u'Q12265724', u'Jos\xe9 P\xe9rez Gil': u'Q9014688', u'Lari Pittman': u'Q13593213', u'Miguel \xc1ngel Campano': u'Q19594523', u'Stephan Wielgus': u'Q19594417', u'Antonio Linde': u'Q19594526', u'Jaume Ribas': u'Q17036473', u'Rom\xe0 Vall\xe8s': u'Q11946185', u'Josep Nos\xe0s Gen\xe9': u'Q19594527', u'Chen Dao-min': u'Q19594528', u'Valeska Soares': u'Q2210346', u'Marcel Broodthaers': u'Q834926', u'Joan Carles Bayod Serafini': u'Q19594531', u'Agust\xed Espa\xf1ol Vi\xf1as': u'Q19594532', u'Adolf Genovart': u'Q19594533', u'Joan Andreu': u'Q11927588', u'Manolo Millares': u'Q1394562', u'Joaquim Urgell Carcas': u'Q19594535', u'Isidoro Valc\xe1rcel Medina': u'Q5921245', u'Sandi Slone': u'Q19594537', u'Ivano Fabbriano': u'Q19594538', u'Sandro Chia': u'Q763368', u'Terrence Keller': u'Q19594539', u'Alfons Borrell': u'Q2834809', u'Henri Michaux': u'Q160780', u'John Cage': [], u'Antoni Taul\xe9': u'Q16267063', u'Hsiao Chin': u'Q19594549', u'A. Garcia Pati\xf1o': u'Q19594541', u'Raphael Monta\xf1ez Ortiz': u'Q7293996', u'Sindria Segura': u'Q19594542', u'Ladislao Szody': u'Q19594543', u'Jes\xfas Casaus': u'Q19594572', u'Jaime Bartolom\xe9': u'Q19594487', u'Cheron Tomkins': u'Q19594473', u'Zush': [], u'Jeannette Leroy': u'Q19594545', u'Miquel Rasero': u'Q19594573', u'Juan Usl\xe9': u'Q3187806', u'Glyn Jones': [], u'Rafael Bartolozzi': u'Q19594547', u'Evarist Vall\xe8s': u'Q11921350', u'Josep Pla Narbona': u'Q19594309', u'Luis F. Muller Fontana': u'Q19594574', u'Modest Cuixart': u'Q551902', u'Francesc Fornells': u'Q17277290', u'Antoni T\xe0pies': u'Q158099', u'Frans Minnaert': u'Q19594550', u'Amanda De Le\xf3n': u'Q19594551', u'Francis Al\xffs': u'Q558288', u'Francesc Valbuena': u'Q19594553', u'Aureli Ruiz': u'Q11907285', u'Francesc Artigau': u'Q16171416', u'Jordi Cano': u'Q19594555', u'Gonzalo Tena': u'Q19594421', u'Antonio Bolleurs': u'Q19594576', u'Alexandre Tornabell': u'Q19594395', u'Hsiao Ming-Hsien': u'Q19594557', u'\xc0lvar Su\xf1ol': u'Q19594470', u'Llu\xeds Marsans': u'Q11933638', u'August Puig': u'Q763477', u'Llu\xeds Rey Polo': u'Q19594561', u'Frederic Amat': u'Q11923043', u'Pere Daura': u'Q2742552', u'Gerhard Merz': [], u'Flora Pratilo': u'Q19594562', u'Ignasi Aball\xed': u'Q9007866', u'Jordi Mercad\xe9': u'Q11038580', u'\xd6yvind Fahlstr\xf6m': u'Q307693', u'Narc\xeds Gir\xf3 Carrer': u'Q19594566', u'James Brown': u'Q980087', u'Llu\xeds Carles Peric\xf3': u'Q19594511', u'Manuel Carmona de la Puente': u'Q19594479', u'Oyan Wuen-Yven': u'Q19594536', u'Juli\xe3o Sarmento': u'Q6310340', u'Li Yuan-Chia': u'Q6539264', u'Ramon Herreros': u'Q19594570', u'Josep Guinovart': u'Q358061', u'Eduardo Arranz-Bravo': u'Q3825183', u'Art & Language': u'Q558276', u'Antoni Llena': u'Q11905872', u'Joan Pere Viladecans': u'Q5692084', u"Ts'ai Hsia-Ling": u'Q19594575', u'Joan Junyer': u'Q16861853', u'Marlez': u'Q19594577', u'Walter Darby Bannard': u'Q7964647', u'Hideki Noh': u'Q19594578'}