Diferencia entre revisiones de «Módulo:Control de autoridades»

Contenido eliminado Contenido añadido
Sin resumen de edición
Actualización global del código por pasos; paso 1: traigo código traducido desde esta versión en gallego, pero con la misma configuración en español actual adaptada [aunque se pierdan temporalmente algunas funcionalidades]
Línea 1:
require('Módulo:No globals')
 
local functionconf getCatForId(= id ){}
--In this order: name of the parameter, label, propertyId in Wikidata, formatting function, category id
local title = mw.title.getCurrentTitle()
conf.databases = {
local namespace = title.namespace
{ 'ISSN', '[[ISSN]]', 236, 'n' },
if namespace == 0 then
{ 'VIAF', '[[Virtual International Authority File|VIAF]]', 214, 'n' },
return '[[Categoría:Wikipedia:Artículos con identificadores ' .. id .. ']]'
{ 'ISNI', '[[International Standard Name Identifier|ISNI]]', 213, 'n' },
elseif namespace == 2 and not title.isSubpage then
return '[[Categoría:Wikipedia:Páginas de usuario con identificadores ' .. id .. ']]'
else
return '[[Categoría:Wikipedia:Páginas misceláneas con identificadores ' .. id .. ']]'
end
end
 
{ 'BCN', '[[Biblioteca del Congreso de la Nación Argentina|BCN]]', 2879, 'n' },
local function viafLink( id )
{ 'BNA', '[[Biblioteca Nacional de la República Argentina|BNA]]', 3788, 'n' },
if not string.match( id, '^%d+$' ) then
{ 'BNE', '[[Biblioteca Nacional de España|BNE]]', 950, 'n' },
return false
{ 'BNF', '[[Bibliothèque nationale de France|BNF]]', 268, 'n' },
end
{ 'BNM', '[[Biblioteca Nacional de México|BNM]]', 4440, 'n' },
return '[https://viaf.org/viaf/' .. id .. ' ' .. id .. ']' .. getCatForId( 'VIAF' )
{ 'BNC', '[[Biblioteca Nacional de Chile|BNC]]', 1890, 'n' },
end
{ 'CANTIC', '[[Biblioteca de Cataluña|CANTIC]]', 1273, 'n' },
{ 'GND', '[[Integrated Authority File|GND]]', 227, 'n' },
{ 'LCCN', '[[Library of Congress Control Number|LCCN]]', 244, 'n' },
{ 'NCL', '[[National Central Library|NCL]]', 1048, 'n' },
{ 'NDL', '[[National Diet Library|NDL]]', 349, 'n' },
{ 'NKC', '[[National Library of the Czech Republic|NKC]]', 691, 'n' },
{ 'NLA', '[[National Library of Australia|NLA]]', 409, 'n' },
{ 'RLS', '[[Biblioteca del Estado Ruso|BER]]', 947, 'n' },
 
{ 'CINII', '[[CiNii]]', 271, 'n' },
{ 'NARA-organization', '[[National Archives and Records Administration|NARA]]', 1223, 'n' },
{ 'LCCNLCOC', '[[Library of Congress Control Number|LCCN]]', 1144, 'n' },
{ 'SNAC', '[[d:Q29861311|SNAC]]', 3430, 'n' },
 
{ 'SUDOC', '[[Système universitaire de documentation|SUDOC]]', 269, 'n' },
local function lccnlcoc ( id )
{ 'ULAN', '[[Union List of Artist Names|ULAN]]', 245, 'n' },
return '[https://lccn.loc.gov/' .. id .. ' ' .. id .. ']'
{ 'ORCID', '[[ORCID]]', 496, 'n' },
end
{ 'SELIBR', '[[LIBRIS|SELIBR]]', 906, 'n' },
{ 'BIBSYS', '[[BIBSYS]]', 1015, 'n' },
{ 'UB', '[[Universidad de Barcelona|UB]]', 1580, 'n' },
{ 'IPNIaut', '[[Índice Internacional de Nombres de las Plantas|IPNI]]', 586, 'n' },
{ 'MGP', '[[Mathematics Genealogy Project|MGP]]', 549, 'n' },
{ 'autores.uy', '[[autores.uy]]', 2558, 'n' },
{ 'Slovenska biografija', '[[Slovenska biografija]]', 1254, 'n' },
{ 'SBN', '[[Istituto Centrale per il Catalogo Unico|ICCU]]', 396, 'n' },
 
{ 'NARA-person', '[[National Archives and Records Administration|NARA]]', 1222, 'n' },
local function kulturnavLink( id )
{ 'CensoGuia', '[[Censo-Guía de Archivos de España e Iberoamérica]]', 3998, 'n' },
return '[http://kulturnav.org/language/en/' .. id .. ' id]'
{ 'Libraries.org', '[[Libraries.org]]', 4848, 'n' },
end
 
{ 'BOE', '[[Boletín Oficial del Estado|BOE]]', 4256, 'n' },
local function sikartLink( id )
return '[http://www.sikart.ch/KuenstlerInnen.aspx?id=' .. id .. '&lng=en ' .. id .. ']'
end
 
{ 'RoyalSociety', '[[Royal Society]]', 2070, 'y' },
local function tlsLink( id )
{ 'HAW', '[[Academia de Ciencias y Humanidades de Heidelberg|HAW]]', 2273, 'n' },
local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'WIKI') end)
{ 'SAW', '[[Academia Sajona de Ciencias de Leipzig|SAW]]', 3411, 'n' },
return '[http://tls.theaterwissenschaft.ch/wiki/' .. id2 .. ' ' .. id .. ']'
{ 'KNAW', '[[Real Academia de Artes y Ciencias de los Países Bajos|KNAW]]', 2454, 'n' },
end
{ 'KVAB', '[[Real Academia Flamenca de Ciencias y Artes de Bélgica|KVAB]]', 3887, 'n' },
{ 'Leopoldina', '[[Deutsche Akademie der Naturforscher Leopoldina|Leopoldina]]', 3413, 'n' },
{ 'CONICET', '[[CONICET]]', 3900, 'n' },
{ 'Grierson', '[[Directorio de científicos argentinos Dra. Grierson|Grierson]]', 3946, 'n' },
{ 'RANM', '[[Real Academia Nacional de Medicina|RANM]]', 3945, 'n' },
{ 'ANMF', '[[Académie Nationale de Médecine|ANMF]]', 3956, 'n' },
 
{ 'Léonore', '[[Base Léonore|Léonore]]', 640, 'n' },
local function ciniiLink( id )
{ 'USCongress', '[[Biographical Directory of the United States Congress|US Congress]]', 1157, 'n' },
return '[http://ci.nii.ac.jp/author/' .. id .. '?l=en ' .. id .. ']'
{ 'Auñamendi', '[[Enciclopedia Auñamendi|Auñamendi]]', 3218, 'n' },
end
{ 'GEA', '[[Gran Enciclopedia Aragonesa|GEA]]', 1807, 'n' },
{ 'DBSE', '[[Diccionario biográfico del socialismo español|DBSE]]', 2985, 'y' },
{ 'DBE', '[[Diccionario biográfico español|DBE]]', 4459, 'n' },
{ 'MNCARS', '[[Museo Nacional Centro de Arte Reina Sofía|MNCARS]]', 4439, 'y' },
{ 'MuseoDelPrado', '[[Museo del Prado]]', 5321, 'n' },
 
{ 'BPN', '[[Biografisch Portaal|BPN]]', 651, 'n' },
local function SSRNautor ( id )
{ 'HDS', '[[Historical Dictionary of Switzerland|HDS]]', 902, 'n' },
return '[https://ssrn.com/author=' .. id .. ' ' .. id .. ']' .. getCatForId( 'SSRN autor' )
{ 'LIR', '[[Diccionario histórico de Suiza|LIR]]', 886, 'n' },
end
{ 'TLS', '[[Theaterlexikon der Schweiz|TLS]]', 1362, 'n' },
 
{ 'ISCO', '[[d:Q1233766|ISCO]]', 952, 'n' },
local function dialnetLink ( id )
{ 'AAT', '[[Art & Architecture Thesaurus|AAT]]', 1014, 'n' },
return '[http://dialnet.unirioja.es/servlet/autor?codigo=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Dialnet' )
{ 'BDCYL', '[[Biblioteca Digital de Castilla y León|BDCYL]]', 3964, 'n' },
end
{ 'BVPB', '[[d:Q18596294|BVPB]]', 4802, 'n' },
{ 'BivaldiAutor', '[[Biblioteca Valenciana Digital|BiValDi]]', 3932, 'n' },
 
{ 'OpenLibrary', '[[Open Library]]', 648, 'n' },
local function bcnLink ( id )
{ 'GalicianaAutor', '[[Galiciana]]', 3307, 'n' },
return '[http://consulta.bcn.gob.ar/bcn/catalogo.verRegistro?co=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BCN' )
{ 'PARES', '[[PARES]]', 4813, 'n' },
end
{ 'BVMCpersona', '[[Biblioteca Virtual Miguel de Cervantes|BVMC]]', 2799, 'n' },
{ 'Persée', '[[Persée (portal)|Persée]]', 2732, 'n' },
{ 'Dialnet', '[[Dialnet]]', 1607, 'n' },
{ 'SSRN', '[[Social Science Research Network|SSRN]]', 3747, 'n' },
{ 'GutenbergAutor', '[[Proyecto Gutenberg]]', 1938, 'n' },
{ 'UNZautor', '[[UNZ.org|UNZ]]', 2734, 'n' },
{ 'SIKART', '[[SIKART]]', 781, 'n' },
{ 'KULTURNAV', '[[KulturNav]]', 1248, 'y' },
{ 'RKDartists', '[[Rijksbureau voor Kunsthistorische Documentatie|RKD]]', 650, 'n' },
{ 'GoogleScholar', '[[Google Académico]]', 1960, 'n' },
{ 'RID', '[[ResearcherID]]', 1053, 'n' },
 
{ 'BVMCobra', '[[Biblioteca Virtual Miguel de Cervantes|BVMC]]', 3976, 'n' },
local function bnaLink ( id )
{ 'NLM', '[[Biblioteca Nacional de Medicina de los Estados Unidos|NLM]]', 1055, 'n' },
return '[http://catalogo.bn.gov.ar/F/?func=direct&doc_number=' .. id .. '&local_base=BNA10 ' .. id .. ']' .. getCatForId( 'BNA' )
{ 'Latindex', '[[Latindex]]', 3127, 'n' },
end
{ 'ERIH PLUS', '[[ERIH PLUS]]', 3434, 'n' },
{ 'IPNIpub', '[[Índice Internacional de Nombres de las Plantas|IPNI]]', 2008, 'n' },
{ 'SUDOCcat', '[[Système universitaire de documentation|SUDOC]]', 1025, 'n' },
{ 'ZDB', '[[Zeitschriftendatenbank|ZDB]]', 1042, 'n' },
{ 'NorwegianRegister', '[[Norsk senter for forskningsdata|Norwegian Register]]', 1270, 'n' },
{ 'PerséeRevista', '[[Persée (portal)|Persée]]', 2733, 'n' },
{ 'DialnetRevista', '[[Dialnet]]', 1609, 'n' },
{ 'Redalyc', '[[Redalyc]]', 3131, 'n' },
{ 'DOAJ', '[[Directory of Open Access Journals|DOAJ]]', 5115, 'n' },
{ 'UNZrevista', '[[UNZ.org|UNZ]]', 2735, 'n' },
{ 'JSTORrevista', '[[JSTOR]]', 1230, 'n' },
{ 'HathiTrust', '[[HathiTrust]]', 1844, 'n' },
{ 'HemBNE', '[[Hemeroteca Digital de la Biblioteca Nacional de España|Hemeroteca BNE]]', 2768, 'n' },
{ 'BVPH', '[[Biblioteca Virtual de Prensa Histórica|BVPH]]', 2961, 'n' },
{ 'Galicianaobra', '[[Galiciana]]', 3004, 'n' },
 
{ 'INE', '[[Instituto Nacional de Estadística (España)|INE]]', 772, 'n' },
local function conicetLink ( id )
{ 'TGN', '[[Getty Thesaurus of Geographic Names|TGN]]', 1667, 'n' },
return '[http://www.conicet.gov.ar/new_scp/detalle.php?id=' .. id .. '&datos_academicos=yes ' .. id .. ']' .. getCatForId( 'CONICET' )
{ 'SNCZI-IPE-EMBALSE', '[[Sistema Nacional de Cartografía de Zonas Inundables|SNCZI]]-[[Inventario de Presas y Embalses de España|IPE]]', 4568, 'n' },
end
{ 'SNCZI-IPE-PRESA', '[[Sistema Nacional de Cartografía de Zonas Inundables|SNCZI]]-[[Inventario de Presas y Embalses de España|IPE]]', 4558, 'n' },
{ 'NATURA2000', '[[Red Natura 2000|Natura 2000]]', 3425, 'n' },
{ 'WWF', '[[Fondo Mundial para la Naturaleza|WWF]]', 1294, 'n' },
 
{ 'HCDN', '[[Cámara de Diputados de la Nación Argentina|Estadísticas HCDN]]', 4693, 'n' },
local function GriersonLink ( id )
{ 'HCDNbio', '[[Cámara de Diputados de la Nación Argentina|Biografía HCDN]]', 5225, 'n' },
return '[http://www.caicyt-conicet.gov.ar/cientificos/items/show/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Grierson' )
{ 'Legislatura CABA', '[[Legislatura de la Ciudad de Buenos Aires|Legislatura CABA]]', 4667, 'n' },
end
{ 'Asamblea de Madrid', '[[Asamblea de Madrid]]', 4797, 'n' },
 
{ 'World Heritage Site', '[[Patrimonio de la Humanidad]]', 757, 'n' },
local function librariesorg( id )
{ 'CNMLBH', '[[Comisión Nacional de Monumentos, de Lugares y de Bienes Históricos|CNMLBH]]', 4587, 'n' },
return '[https://librarytechnology.org/library/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Libraries.org ' )
{ 'IGESPAR', '[[Instituto de Gestão do Património Arquitectónico e Arqueológico|IGESPAR]]', 1702, 'n' },
end
{ 'SIPA', '[[Sistema de Informação para o Património Arquitectónico|SIPA]]', 1700, 'n' },
 
{ 'Infopatrimonio', '[[Infopatrimônio]]', 4372, 'n' },
local function censoguiaarchivo( id )
{ 'AustriaObjektID', '[[Austria ObjektID]]', 2951, 'n' },
return '[http://censoarchivos.mcu.es/CensoGuia/archivodetail.htm?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Censo-Guía ' )
{ 'FBBID', '[[Fredede og Bevaringsværdige Bygninger|FBB]]', 2783, 'n' },
end
{ 'Fornminnesregistret', '[[Fornminnesregistret|FMIS]]', 1260, 'n' },
 
{ 'BerlinerKulturdenkmal', 'Berliner Kulturdenkmal', 2424, 'n' },
local function pares ( id )
{ 'NHLE', '[[National Heritage List for England|NHLE]]', 1216, 'n' },
return '[http://pares.mcu.es/ParesBusquedas20/catalogo/autoridad/' .. id .. ' ' .. id .. ']' .. getCatForId( 'PARES' )
{ 'NRHP', '[[Registro Nacional de Lugares Históricos|NRHP]]', 649, 'n' },
end
{ 'KULTURMINNE', '[[Riksantikvaren|Kulturminne]]', 758, 'n' },
 
{ 'CRHP', '[[Canadian Register of Historic Places|CRHP]]', 477, 'n' },
local function bneLink( id )
{ 'MERIMEE', '[[Base Mérimée|Mérimée]]', 380, 'n' },
return '[http://datos.bne.es/resource/' .. id .. ' ' .. id .. ']' .. getCatForId( 'BNE' )
{ 'CADW', '[[Cadw]]', 1459, 'n' },
end
{ 'Památkový Katalog', '[[Památkový katalog]]', 762, 'n' },
 
{ 'PatrimonioIran', 'Patrimonio Nacional de Irán', 1369, 'n' },
local function bncLink( id )
{ 'BIC', '[[Bien de Interés Cultural (España)|BIC]]', 808, 'n' },
return '[http://www.bncatalogo.cl/F?func=direct&local_base=red10&doc_number=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BNC' )
{ 'BCIN', '[[Bien Cultural de Interés Nacional|BCIN]]', 1586, 'n' },
end
{ 'IPAC', '[[Inventario del Patrimonio Arquitectónico de Cataluña|IPAC]]', 1600, 'n' },
 
{ 'IGPCV', '[[Inventario General del Patrimonio Cultural Valenciano|IGPCV]]', 2473, 'n' },
local function bnmLink( id )
{ 'BDI-IAPH', '[[Instituto Andaluz del Patrimonio Histórico|IAPH]]', 3318, 'n' },
return '[http://catalogo.iib.unam.mx/F/-/?func=find-b&find_code=SYS&local_base=BNM10&format=999&request=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BNM' )
{ 'SIPCA', '[[SIPCA]]', 3580, 'n' },
end
{ 'PWJCYL', '[[Junta de Castilla y León|Patrimonio Web JCyL]]', 3177, 'n' },
 
{ 'DocomomoIberico', '[[Fundación Docomomo Ibérico|Docomomo Ibérico]]', 3758, 'n' },
local function openlibrary ( id )
{ 'COAMinmueble', '[[Colegio Oficial de Arquitectos de Madrid|COAM]]', 2917, 'n' },
return '[https://openlibrary.org/works/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Open Library' )
{ 'HispaniaNostra', '[[Lista roja de patrimonio en peligro|Lista Roja Hispania Nostra]]', 4868, 'y' },
end
{ 'COAMpersona', '[[Colegio Oficial de Arquitectos de Madrid|COAM]]', 4488, 'n' },
 
{ 'DOI', '[[Identificador de objeto digital|DOI]]', 356, 'n' },
local function bvmcpersona ( id )
{ 'Handle', '[[Sistema Handle|Handle]]', 1184, 'y' },
return '[http://data.cervantesvirtual.com/person/' .. id .. ' ' .. id .. ']' .. getCatForId( 'BVMC persona' )
{ 'Europeana', '[[Europeana]]', 727, 'n' },
end
}
 
--In this order: alternate name, name of parameter from databases table
local function bvpb ( id )
conf.aliases = {
return '[http://bvpb.mcu.es/es/consulta_aut/registro.cmd?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BVPB' )
{ 'Wd', 'Wikidata' },
end
}
 
local function bdcyl ( id )
return '[http://bibliotecadigital.jcyl.es/es/consulta_aut/registro.cmd?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BDCYL' )
end
 
local function galicianaautor ( id )
return '[http://biblioteca.galiciana.gal/es/consulta_aut/registro.cmd?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Galiciana autor' )
end
 
local function bivaldiAutor ( id )
return '[http://bivaldi.gva.es/en/consulta_aut/registro.cmd?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Bivaldi autor' )
end
 
local function gutenbergAutor ( id )
return '[http://www.gutenberg.org/ebooks/author/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Proyecto Gutenberg autor' )
end
 
local function canticLink( id )
return '[http://cantic.bnc.cat/registres/CUCId/' .. id .. ' ' .. id .. ']' .. getCatForId( 'CANTIC' )
end
 
local function uscongressLink( id )
return '[http://bioguide.congress.gov/scripts/biodisplay.pl?index=' .. id .. ' ' .. id .. ']'
end
 
local function UBautoridad ( id )
return '[http://www.bib.ub.edu/fileadmin/autoritats/permanent/' .. id .. ' ' .. id .. ']' .. getCatForId( 'UB' )
end
 
local function ipniAuthor( id )
return '[http://www.ipni.org/ipni/idAuthorSearch.do?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'IPNI' )
end
 
local function autoresuy( id )
return '[http://autores.uy/autor/' .. id .. ' ' .. id .. ']' .. getCatForId( 'autores.uy' )
end
 
local function royalsociety( id )
return '[https://royalsociety.org/people/' .. id .. ' url ]' .. getCatForId( 'Royal Society' )
end
 
local function hawmiembro( id )
return '[http://www.haw.uni-heidelberg.de/akademie/member.en.html?' .. id .. ' ' .. id .. ']' .. getCatForId( 'HAW' )
end
 
local function sawmiembro( id )
return '[https://www.saw-leipzig.de/de/mitglieder/' .. id .. ' ' .. id .. ']' .. getCatForId( 'SAW' )
end
 
local function knawmiembro( id )
return '[http://www.dwc.knaw.nl/biografie/pmknaw/?pagetype=authorDetail&aId=' .. id .. ' ' .. id .. ']' .. getCatForId( 'KNAW' )
end
 
local function kvabmiembro( id )
return id .. getCatForId( 'KVAB' )
end
 
local function narapersonLink( id )
return '[https://research.archives.gov/person/' .. id .. ' ' .. id .. ']'
end
 
local function naraorganizationLink( id )
return '[https://research.archives.gov/organization/' .. id .. ' ' .. id .. ']'
end
 
local function mgpLink( id )
-- TODO Implement some sanity checking regex
return '[http://www.genealogy.ams.org/id.php?id=' .. id .. ' ' .. id .. ']'
end
 
local function rslLink( id )
-- TODO Implement some sanity checking regex
return '[http://aleph.rsl.ru/F?func=find-b&find_code=SYS&adjacent=Y&local_base=RSL11&request=' .. id .. '&CON_LNG=ENG ' .. id .. ']'
end
 
local function leonoreLink( id )
-- Identifiants allant de LH/1/1 à LH/2794/54 (légionnaires)
-- Identifiants allant de C/0/1 à C/0/84 (84 légionnaires célèbres)
-- Identifiants allant de 19800035/1/1 à 19800035/385/51670 (légionnaires décédés entre 1954 et 1977, et quelques dossiers de légionnaires décédés avant 1954)
if not string.match( id, '^LH/%d%d?%d?%d?/%d%d?%d?$' ) and
not string.match( id, '^C/0/%d%d?$' ) and
not string.match( id, '^19800035/%d%d?%d?%d?/%d%d?%d?%d?%d?$' ) then
return false
end
return '[//www.culture.gouv.fr/public/mistral/leonore_fr?ACTION=CHERCHER&FIELD_1=COTE&VALUE_1=' .. id .. ' ' .. id .. ']'
end
 
local function sbiLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return '[http://www.slovenska-biografija.si/oseba/sbi' .. id .. ' ' .. id .. ']'
end
 
local function sbnLink( id )
if not string.match( id, '^IT\\ICCU\\%d%d%d%d%d%d%d%d%d%d$' ) and not string.match( id, '^IT\\ICCU\\%u%u[%d%u]%u\\%d%d%d%d%d%d$' ) then
return false
end
return '[http://opac.sbn.it/opacsbn/opac/iccu/scheda_authority.jsp?bid=' .. id .. ' ' .. id .. ']' .. getCatForId( 'SBN' )
end
 
local function nkcLink( id )
return '[http://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=' .. id .. '&CON_LNG=ENG ' .. id .. ']'
end
 
local function nclLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return '[http://aleweb.ncl.edu.tw/F/?func=accref&acc_sequence=' .. id .. '&CON_LNG=ENG ' .. id .. ']'
end
 
local function ndlLink( id )
return '[http://id.ndl.go.jp/auth/ndlna/' .. id .. ' ' .. id .. ']'
end
 
local function perseeLink( id )
return '[http://www.persee.fr/author/persee_' .. id .. ' ' .. id .. ']' .. getCatForId( 'Persée' )
end
 
local function sudocLink( id )
if not string.match( id, '^%d%d%d%d%d%d%d%d[%dxX]$' ) then
return false
end
return '[http://www.idref.fr/' .. id .. ' ' .. id .. ']'
end
 
local function sudocCat( id )
return '[http://www.sudoc.fr/' .. id .. ' ' .. id .. ']' .. getCatForId( 'SUDOC catálogo' )
end
 
local function googleScholar ( id )
return '[https://scholar.google.com/citations?user=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Google Académico' )
end
 
local function boe( id )
return '[http://www.boe.es/buscar/doc.php?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BOE ' )
end
 
local function hlsLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return '[http://www.hls-dhs-dss.ch/textes/f/F' .. id .. '.php ' .. id .. ']'
end
 
local function lirLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return '[http://www.e-lir.ch/e-LIR___Lexicon.' .. id .. '.450.0.html ' .. id .. ']'
end
 
local function splitLccn( id )
if id:match( '^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$' ) then
id = id:gsub( '^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3' )
end
if id:match( '^%l%l?%l?/%d%d%d?%d?/%d+$' ) then
return mw.text.split( id, '/' )
end
return false
end
 
local function append(str, c, length)
while str:len() < length do
str = c .. str
end
return str
end
 
local function lccnLink( id )
local parts = splitLccn( id )
if not parts then
return false
end
local lccnType = parts[1] ~= 'sh' and 'names' or 'subjects'
id = parts[1] .. parts[2] .. append( parts[3], '0', 6 )
return '[http://id.loc.gov/authorities/' .. lccnType .. '/' .. id .. ' ' .. id .. ']' .. getCatForId( 'LCCN' )
end
 
--Returns the ISNI check digit isni must be a string where the 15 first elements are digits
local function getIsniCheckDigit( isni )
local total = 0
for i = 1, 15 do
local digit = isni:byte( i ) - 48 --Get integer value
total = (total + digit) * 2
end
local remainder = total % 11
local result = (12 - remainder) % 11
if result == 10 then
return "X"
end
return tostring( result )
end
 
--Validate ISNI (and ORCID) and retuns it as a 16 characters string or returns false if it's invalid
--See http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier
local function validateIsni( id )
id = id:gsub( '[ %-]', '' ):upper()
if not id:match( '^%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d[%dX]$' ) then
return false
end
if getIsniCheckDigit( id ) ~= string.char( id:byte( 16 ) ) then
return false
end
return id
end
 
local function isniLink( id )
id = validateIsni( id )
if not id then
return false
end
return '[http://isni.org/isni/' .. id .. ' ' .. id:sub( 1, 4 ) .. ' ' .. id:sub( 5, 8 ) .. ' ' .. id:sub( 9, 12 ) .. ' ' .. id:sub( 13, 16 ) .. ']' .. getCatForId( 'ISNI' )
end
 
local function orcidLink( id )
id = validateIsni( id )
if not id then
return false
end
id = id:sub( 1, 4 ) .. '-' .. id:sub( 5, 8 ) .. '-' .. id:sub( 9, 12 ) .. '-' .. id:sub( 13, 16 )
return '[http://orcid.org/' .. id .. ' ' .. id .. ']' .. getCatForId( 'ORCID' )
end
 
local function gndLink( id )
return '[http://d-nb.info/gnd/' .. id .. ' ' .. id .. ']' .. getCatForId( 'GND' )
end
 
local function selibrLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return '[//libris.kb.se/auth/' .. id .. ' ' .. id .. ']' .. getCatForId( 'SELIBR' )
end
 
local function bnfLink( id )
--Add cb prefix if it has been removed
if not string.match( id, '^cb.+$' ) then
id = 'cb' .. id
end
 
return '[http://catalogue.bnf.fr/ark:/12148/' .. id .. ' ' .. id .. '] [http://data.bnf.fr/ark:/12148/' .. id .. ' (data)]' .. getCatForId( 'BNF' )
end
 
local function bpnLink( id )
if not string.match( id, '^%d+$' ) then
return false
end
return '[http://www.biografischportaal.nl/en/persoon/' .. id .. ' ' .. id .. ']' .. getCatForId( 'BPN' )
end
 
local function ridLink( id )
return '[http://www.researcherid.com/rid/' .. id .. ' ' .. id .. ']' .. getCatForId( 'RID' )
end
 
local function bibsysLink( id )
return '[http://ask.bibsys.no/ask/action/result?cmd=&kilde=biblio&cql=bs.autid+%3D+' .. id .. '&feltselect=bs.autid ' .. id .. ']' .. getCatForId( 'BIBSYS' )
end
 
local function ulanLink( id )
return '[//www.getty.edu/vow/ULANFullDisplay?find=&role=&nation=&subjectid=' .. id .. ' ' .. id .. ']' .. getCatForId( 'ULAN' )
end
 
local function nlaLink( id )
return '[//nla.gov.au/anbd.aut-an' .. id .. ' ' .. id .. ']' .. getCatForId( 'NLA' )
end
 
local function rkdartistsLink( id )
return '[https://rkd.nl/en/explore/artists/' .. id .. ' ' .. id .. ']' .. getCatForId( 'RKDartists' )
end
 
local function UNZauthorLink( id )
return '[http://www.unz.org/Author/' .. id .. ' ' .. id .. ']' .. getCatForId( 'UNZ' )
end
 
local function aatLink( id )
return '[http://vocab.getty.edu/page/aat/' .. id .. ' ' .. id .. ']' .. getCatForId( 'AAT' )
end
 
local function snacLink( id )
return '[http://socialarchive.iath.virginia.edu/ark:/99166/' .. id .. ' ' .. id .. ']' .. getCatForId( 'SNAC' )
end
 
-- ********* Identificadores de miembros de academias, etc *********
 
local function leopoldina ( id )
return '[http://www.leopoldina.org/de/mitglieder/mitgliederverzeichnis/member/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Leopoldina' )
end
 
local function ranm ( id )
return '[http://www.ranm.es/academicos/' .. id .. ' ' .. id .. ']' .. getCatForId( 'RANM' )
end
 
local function anmf ( id )
return '[http://bibliotheque.academie-medecine.fr/membres/membre/?mbreid=' .. id .. ' ' .. id .. ']' .. getCatForId( 'ANMF' )
end
 
local function isco( id )
return id .. getCatForId( 'ISCO' )
end
 
-- ********* Patrimonio cultural, monumentos, edificios *********
local function WHSunesco( id )
return '[http://whc.unesco.org/es/list/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Centro del Patrimonio Mundial' )
end
 
local function cnmlbh( id )
return '[https://monumentos.cultura.gob.ar/inventario/' .. id .. ' ' .. id .. ']' .. getCatForId( 'cnmlbh' )
end
 
local function igespar( id )
return '[http://www.patrimoniocultural.pt/en/patrimonio/patrimonio-imovel/pesquisa-do-patrimonio/classificado-ou-em-vias-de-classificacao/geral/view/' .. id .. ' ' .. id .. ']' .. getCatForId( 'IGESPAR' )
end
 
local function sipa( id )
return '[http://www.monumentos.gov.pt/Site/APP_PagesUser/SIPA.aspx?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'SIPA' )
end
 
local function infopatrimonioID( id )
return '[http://www.infopatrimonio.org/?p=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Infopatrimônio' )
end
 
local function austriaobjektID( id )
return '[https://tools.wmflabs.org/denkmalliste/index.php?action=EinzelID&ID=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Austria ObjektID' )
end
 
local function fbbid( id )
return '[https://www.kulturarv.dk/fbb/sagvis.pub?sag=' .. id .. ' ' .. id .. ']' .. getCatForId( 'FBB' )
end
 
local function fmisid( id )
return '[http://kulturarvsdata.se/' .. id .. ' ' .. id .. ']' .. getCatForId( 'FMIS' )
end
 
local function berlinerkulturdenkmal( id )
return '[http://www.stadtentwicklung.berlin.de/denkmal/liste_karte_datenbank/de/denkmaldatenbank/daobj.php?obj_dok_nr=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Berliner Kulturdenkmal' )
end
 
local function nhle( id )
return '[https://www.historicengland.org.uk/listing/the-list/list-entry/' .. id .. ' ' .. id .. ']' .. getCatForId( 'NHLE' )
end
 
local function nrhp( id )
return '[http://focus.nps.gov/AssetDetail/NRIS/' .. id .. ' ' .. id .. ']' .. getCatForId( 'NRHP' )
end
 
local function kulturminne( id )
return '[http://www.kulturminnesok.no/kulturminnesok/kulturminne/?LOK_ID=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Kulturminne' )
end
 
local function crhp( id )
return '[http://www.historicplaces.ca/en/rep-reg/place-lieu.aspx?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'CRHP' )
end
 
local function merimee( id )
return '[http://www.culture.gouv.fr/public/mistral/merimee_fr?ACTION=CHERCHER&FIELD_1=REF&VALUE_1=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Mérimée' )
end
 
local function pamatkovykatalog( id )
return '[http://pamatkovykatalog.cz/?mode=parametric&indexId=' .. id .. '&presenter=ElementsResults ' .. id .. ']' .. getCatForId( 'Památkový katalog' )
end
 
local function patrimonioiranID( id )
return id .. getCatForId( 'Patrimonio Nacional de Irán' )
end
 
local function bic( id )
return id .. getCatForId( 'BIC' )
end
 
local function bcin( id )
return id .. getCatForId( 'BCIN' )
end
 
local function igpcv( id )
return id .. getCatForId( 'IGPCV' )
end
 
local function ipac( id )
return '[http://invarquit.cultura.gencat.cat/Cerca/Fitxa?index=0&consulta=&codi=' .. id .. ' ' .. id .. ']' .. getCatForId( 'IPAC' )
end
 
local function bdiIAPH( id )
return '[http://www.iaph.es/patrimonio-inmueble-andalucia/resumen.do?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BDI-IAPH' )
end
 
local function sipca( id )
return '[http://www.sipca.es/censo/' .. id .. '/.html ' .. id .. ']' .. getCatForId( 'SIPCA' )
end
 
local function idPWJCYL( id )
return '[http://servicios.jcyl.es/pweb/datos.do?numero=' .. id .. '&tipo=inmueble&ruta= ' .. id .. ']' .. getCatForId( 'Patrimonio Web JCyL' )
end
 
local function COAMinmueble( id )
return '[http://212.145.146.10/biblioteca/fondos/ingra2014/index.htm#inm.' .. id .. ' ' .. id .. ']' .. getCatForId( 'COAM inmueble' )
end
 
local function COAMpersona( id )
return '[http://212.145.146.10/biblioteca/fondos/ingra2014/index.htm#aut.' .. id .. ' ' .. id .. ']' .. getCatForId( 'COAM persona' )
end
 
local function docomomoiberico( id )
return id .. getCatForId( 'Docomomo Ibérico' )
end
 
local function hispanianostra ( id )
return '[http://listarojapatrimonio.org/ficha/' .. id .. ' url ]' .. getCatForId( 'Lista Roja Hispania Nostra' )
end
 
local function cadwID( id )
return '[http://cadwpublic-api.azurewebsites.net/reports/listedbuilding/FullReport?lang=en&id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Cadw' )
end
 
-- ********* Identificadores geográficos, estadísticos, etc *********
local function codigoine( id )
return id .. getCatForId( 'INE' )
end
 
local function tgnlink( id )
return '[http://vocab.getty.edu/page/tgn/' .. id .. ' ' .. id .. ']' .. getCatForId( 'TGN' )
end
 
local function sncziipeembalse( id )
return '[http://sig.mapama.es/93/ClienteWS/snczi/default.aspx?nombre=EMBALSE&claves=REF_CEH&valores=' .. id .. ' ' .. id .. ']' .. getCatForId( 'SNCZI-IPE embalse' )
end
 
local function sncziipepresa( id )
return '[http://sig.mapama.es/93/ClienteWS/snczi/default.aspx?nombre=PRESA&claves=DGAGUA.PRESAS.CODPRESA&valores=' .. id .. ' ' .. id .. ']' .. getCatForId( 'SNCZI-IPE presa' )
end
 
local function natura2000 ( id )
return '[http://natura2000.eea.europa.eu/Natura2000/SDF.aspx?site=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Natura 2000' )
end
 
local function wwf ( id )
return '[http://www.worldwildlife.org/ecoregions/' .. id .. ' ' .. id .. ']' .. getCatForId( 'WWF' )
end
 
-- ********* Política y gobierno *********
 
local function hcdnlink( id )
return '[https://votaciones.hcdn.gob.ar/diputado/perfil/' .. id .. ' ' .. id .. ']' .. getCatForId( 'HCDN' )
end
 
local function hcdnbiolink( id )
return '[https://apym.hcdn.gob.ar/biografias/' .. id .. ' ' .. id .. ']' .. getCatForId( 'HCDNbio' )
end
 
local function legcaba( id )
return '[https://www.legislatura.gov.ar/legislador.php?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Legislatura CABA' )
end
 
local function asambleamadrid ( id )
return '[http://www.asambleamadrid.es/ES/QueEsLaAsamblea/ComposiciondelaAsamblea/Distribuciondeescanos/Paginas/curriculum.aspx?IdDip=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Asamblea de Madrid' )
end
 
-- ********* Identificadores de enciclopedias online *********
local function aunamendiLink ( id )
return '[http://aunamendi.eusko-ikaskuntza.eus/artikuluak/artikulua.php?id=es&ar=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Auñamendi' )
end
 
local function geaLink ( id )
return '[http://www.enciclopedia-aragonesa.com/voz.asp?voz_id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'GEA' )
end
 
local function dbse ( id )
return '[http://www.fpabloiglesias.es/archivo-y-biblioteca/diccionario-biografico/biografias/' .. id .. ' url ]' .. getCatForId( 'DBSE' )
end
 
local function diccionariobiograficoespanol ( id )
return '[http://dbe.rah.es/biografias/' .. id .. ' url ]' .. getCatForId( 'DBE' )
end
 
local function mncars ( id )
return '[http://www.museoreinasofia.es/coleccion/autor/' .. id .. ' url ]' .. getCatForId( 'MNCARS' )
end
 
local function museodelprado ( id )
return '[https://www.museodelprado.es/coleccion/artista/wd/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Museo del Prado' )
end
 
-- ********* Identificadores de revistas, obra, edición *********
local function NLM ( id )
return '[http://locatorplus.gov/cgi-bin/Pwebrecon.cgi?DB=local&v1=1&ti=1,1&Search_Arg=' .. id .. '&Search_Code=0359&CNT=25&SID=1 ' .. id .. ']' .. getCatForId( 'NLM' )
end
 
local function bvmcobra ( id )
return '[http://data.cervantesvirtual.com/work/' .. id .. ' ' .. id .. ']' .. getCatForId( 'BVMC obra' )
end
 
local function latindexfolio ( id )
return '[http://www.latindex.org/latindex/ficha?folio=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Latindex' )
end
 
local function erihplus ( id )
return '[https://dbh.nsd.uib.no/publiseringskanaler/erihplus/periodical/info.action?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'ERIH PLUS' )
end
 
local function ipniPublication( id )
return '[http://www.ipni.org/ipni/idPublicationSearch.do?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'IPNIpub' )
end
 
local function zdb( id )
return '[http://ld.zdb-services.de/resource/' .. id .. ' ' .. id .. ']' .. getCatForId( 'ZDB' )
end
 
local function NorwegianRegisterJournal( id )
return '[https://dbh.nsd.uib.no/publiseringskanaler/KanalTidsskriftInfo?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Norwegian Register' )
end
 
local function hathitrustLink ( id )
return '[https://catalog.hathitrust.org/Record/' .. id .. ' ' .. id .. ']' .. getCatForId( 'HathiTrust' )
end
 
local function jstorRevista( id )
return id .. getCatForId( 'JSTOR revista' )
end
 
local function HemBNE( id )
return '[http://hemerotecadigital.bne.es/details.vm?q=id:' .. id .. ' ' .. id .. ']' .. getCatForId( 'HemBNE' )
end
 
local function bvph ( id )
return '[http://prensahistorica.mcu.es/consulta/registro.cmd?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'BVPH' )
end
 
local function galicianaobra ( id )
return '[http://www.galiciana.bibliotecadegalicia.xunta.es/consulta/registro.cmd?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Galiciana obra' )
end
 
local function dialnetRevista ( id )
return '[http://dialnet.unirioja.es/servlet/revista?codigo=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Dialnet revista' )
end
 
local function redalyc ( id )
return '[http://www.redalyc.org/revista.oa?id=' .. id .. ' ' .. id .. ']' .. getCatForId( 'Redalyc' )
end
 
local function doaj ( id )
return '[https://doaj.org/toc/' .. id .. ' ' .. id .. ']' .. getCatForId( 'DOAJ' )
end
 
local function issn ( id )
return '[https://www.worldcat.org/issn/' .. id .. ' ' .. id .. ']' .. getCatForId( 'ISSN' )
end
 
local function doi ( id )
return '[https://dx.doi.org/' .. id .. ' ' .. id .. ']' .. getCatForId( 'DOI' )
end
 
local function handle ( id )
return '[http://hdl.handle.net/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Handle' )
end
 
local function europeana ( id )
return '[http://data.europeana.eu/item/' .. id .. ' url ]' .. getCatForId( 'Europeana' )
end
 
local function perseeRevista( id )
return '[http://www.persee.fr/collection/' .. id .. ' ' .. id .. ']' .. getCatForId( 'Persée revista' )
end
 
local function UNZjournalLink( id )
return '[http://www.unz.org/Pub/' .. id .. ' ' .. id .. ']'
end
 
local function getIdsFromWikidata( item, property )
local ids = {}
if not item.claims[property] then
return ids
end
for _, statement in pairs( item:getBestStatements( .claims[property] )) do
if statement.mainsnak.datavalue then
table.insert( ids, statement.mainsnak.datavalue.value )
end
end
return ids
end
 
local function matchesWikidataRequirementsgetLink( itemproperty, reqsval, mask )
local link = ""
for _, group in pairs( reqs ) do
if mw.ustring.find( val, '//' ) then
local property = 'p' .. group[1]
link = val
local qid = group[2]
else
if item.claims[property] ~= nil then
if type(property) == 'number' then
for _, statement in pairs ( item.claims[property] ) do
local entityObject = mw.wikibase.getEntityObject('P'..property)
if statement.mainsnak.datavalue ~= nil then
local dataType = entityObject.datatype
if statement.mainsnak.datavalue.value['numeric-id'] == qid then
if dataType == "external-id" then
return true
local formatterURL = entityObject:getBestStatements('P1630')[1]
end
if formatterURL then
end
link = formatterURL.mainsnak.datavalue.value
end
else
end
local formatterURL = entityObject:getBestStatements('P3303')[1]
end
if formatterURL then link = formatterURL.mainsnak.datavalue.value end
return false
end
elseif dataType == "url" then
local subjectItem = entityObject:getBestStatements('P1629')[1]
if subjectItem then
local officialWebsite = mw.wikibase.getEntityObject(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1]
if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end
end
elseif dataType == "string" then
local formatterURL = entityObject:getBestStatements('P1630')[1]
if formatterURL then
link = formatterURL.mainsnak.datavalue.value
else
local formatterURL = entityObject:getBestStatements('P3303')[1]
if formatterURL then link = formatterURL.mainsnak.datavalue.value
else
local subjectItem = entityObject:getBestStatements('P1629')[1]
if subjectItem then
local officialWebsite = mw.wikibase.getEntityObject(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1]
if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end
end
end
end
end
elseif type(property) == 'string' then
link = property
end
link = mw.ustring.gsub(link, '$1', val)
end
link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') -- fix wikidata URL
val = mw.ustring.match(val, '([^=/]*)/?$') -- get display name from end of URL
if mw.ustring.find( link, '//' ) then
if mask == 'y' then
return '<span class="plainlinks">['..link..' ID]</span>'
else
return '<span class="plainlinks">['..link..' '..val..']</span>'
end
elseif link == "" then
return val
else
return '[['..link..'|'..val..']]'
end
end
 
local function createRow( id, label, rawValue, link, withUid )
if link then
local outStr = '*<span style="white-space:nowrap;">' .. label .. ' <span'
if withUid then
if withUid then outStr = return '* ' outStr.. label .. ' <span class="uid">' .. link .. '</span>\n'end
return outStr..'>' .. link .. '</span></span>\n'
else
else
return '* ' .. label .. ' ' .. link .. '\n'
return '* <span class="error">The identifier ' .. id .. ' ' .. rawValue .. ' is not valid.</span>\n'
end
end
else
return '* <span class="error">El ' .. id .. ' id ' .. rawValue .. ' no es válido</span>[[Category:Wikipedia articles with faulty authority control identifiers (' .. id .. ')]]\n'
end
end
 
local function copyTable(inTable)
--In this order: name of the parameter, label, propertyId in Wikidata, formatting function
if type(inTable) ~= 'table' then return inTable end
local conf = {
local outTable = setmetatable({}, getmetatable(inTable))
{ 'ISSN', '[[ISSN]]', 236, issn },
for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end
{ 'VIAF', '[[Virtual International Authority File|VIAF]]', 214, viafLink },
return outTable
{ 'ISNI', '[[International Standard Name Identifier|ISNI]]', 213, isniLink },
end
{ 'BCN', '[[Biblioteca del Congreso de la Nación Argentina|BCN]]', 2879, bcnLink },
{ 'BNA', '[[Biblioteca Nacional de la República Argentina|BNA]]', 3788, bnaLink },
{ 'BNE', '[[Biblioteca Nacional de España|BNE]]', 950, bneLink },
{ 'BNF', '[[Bibliothèque nationale de France|BNF]]', 268, bnfLink },
{ 'BNM', '[[Biblioteca Nacional de México|BNM]]', 4440, bnmLink },
{ 'BNC', '[[Biblioteca Nacional de Chile|BNC]]', 1890, bncLink },
{ 'CANTIC', '[[Biblioteca de Cataluña|CANTIC]]', 1273, canticLink },
{ 'GND', '[[Integrated Authority File|GND]]', 227, gndLink },
{ 'LCCN', '[[Library of Congress Control Number|LCCN]]', 244, lccnLink },
{ 'NCL', '[[National Central Library|NCL]]', 1048, nclLink },
{ 'NDL', '[[National Diet Library|NDL]]', 349, ndlLink },
{ 'NKC', '[[National Library of the Czech Republic|NKC]]', 691, nkcLink },
{ 'NLA', '[[National Library of Australia|NLA]]', 409, nlaLink },
{ 'RLS', '[[Biblioteca del Estado Ruso|BER]]', 947, rslLink },
 
local function splitLccn( id )
{ 'CINII', '[[CiNii]]', 271, ciniiLink },
if id:match( '^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$' ) then
{ 'NARA-organization', '[[National Archives and Records Administration|NARA]]', 1223, naraorganizationLink },
id = id:gsub( '^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3' )
{ 'LCCNLCOC', '[[Library of Congress Control Number|LCCN]]', 1144, lccnlcoc },
end
{ 'SNAC', '[[d:Q29861311|SNAC]]', 3430, snacLink },
if id:match( '^%l%l?%l?/%d%d%d?%d?/%d+$' ) then
return mw.text.split( id, '/' )
end
return false
end
 
local p = {}
{ 'SUDOC', '[[Système universitaire de documentation|SUDOC]]', 269, sudocLink },
{ 'ULAN', '[[Union List of Artist Names|ULAN]]', 245, ulanLink },
{ 'ORCID', '[[ORCID]]', 496, orcidLink },
{ 'SELIBR', '[[LIBRIS|SELIBR]]', 906, selibrLink },
{ 'BIBSYS', '[[BIBSYS]]', 1015, bibsysLink },
{ 'UB', '[[Universidad de Barcelona|UB]]', 1580, UBautoridad },
{ 'IPNIaut', '[[Índice Internacional de Nombres de las Plantas|IPNI]]', 586, ipniAuthor },
{ 'MGP', '[[Mathematics Genealogy Project|MGP]]', 549, mgpLink },
{ 'autores.uy', '[[autores.uy]]', 2558, autoresuy },
{ 'Slovenska biografija', '[[Slovenska biografija]]', 1254, sbiLink },
{ 'SBN', '[[Istituto Centrale per il Catalogo Unico|ICCU]]', 396, sbnLink },
 
function p.authorityControl( frame )
{ 'NARA-person', '[[National Archives and Records Administration|NARA]]', 1222, narapersonLink },
local parentArgs = copyTable(frame:getParent().args)
{ 'CensoGuia', '[[Censo-Guía de Archivos de España e Iberoamérica]]', 3998, censoguiaarchivo },
local stringArgs = false
{ 'Libraries.org', '[[Libraries.org]]', 4848, librariesorg },
local fromForCount, firstRow, rowCount = 1, 0, 0
--Cleanup args
{ 'BOE', '[[Boletín Oficial del Estado|BOE]]', 4256, boe },
for k, v in pairs( frame:getParent().args ) do
if type(k) == 'string' then
--make args case insensitive
local lowerk = mw.ustring.lower(k)
if not parentArgs[lowerk] or parentArgs[lowerk] == '' then
parentArgs[lowerk] = v
parentArgs[k] = nil
end
--remap abc to abc1
if not mw.ustring.find(lowerk,"%d$") then --if no number at end of param
if not parentArgs[lowerk..'1'] or parentArgs[lowerk..'1'] == '' then
parentArgs[lowerk..'1'] = v
parentArgs[lowerk] = nil
end
end
if v and v ~= '' then
--find highest from param
if mw.ustring.sub(lowerk,1,4) == "from" then
local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1))
if fromNumber and fromNumber >= fromForCount then fromForCount = fromNumber end
elseif mw.ustring.sub(lowerk,1,3) == "for" then
local forNumber = tonumber(mw.ustring.sub(lowerk,4,-1))
if forNumber and forNumber >= fromForCount then fromForCount = forNumber end
elseif mw.ustring.lower(v) ~= 'no' and lowerk ~= 'for' then
stringArgs = true
end
end
end
end
 
--Setup navbox
{ 'RoyalSociety', '[[Royal Society]]', 2070, royalsociety },
local navboxParams = {
{ 'HAW', '[[Academia de Ciencias y Humanidades de Heidelberg|HAW]]', 2273, hawmiembro },
name = 'Control de autoridades',
{ 'SAW', '[[Academia Sajona de Ciencias de Leipzig|SAW]]', 3411, sawmiembro },
bodyclass = 'hlist',
{ 'KNAW', '[[Real Academia de Artes y Ciencias de los Países Bajos|KNAW]]', 2454, knawmiembro },
listclass = 'plainlinks',
{ 'KVAB', '[[Real Academia Flamenca de Ciencias y Artes de Bélgica|KVAB]]', 3887, kvabmiembro },
groupstyle = 'width: 12%; text-align:center;',
{ 'Leopoldina', '[[Deutsche Akademie der Naturforscher Leopoldina|Leopoldina]]', 3413, leopoldina },
}
{ 'CONICET', '[[CONICET]]', 3900, conicetLink },
{ 'Grierson', '[[Directorio de científicos argentinos Dra. Grierson|Grierson]]', 3946, GriersonLink },
{ 'RANM', '[[Real Academia Nacional de Medicina|RANM]]', 3945, ranm },
{ 'ANMF', '[[Académie Nationale de Médecine|ANMF]]', 3956, anmf },
{ 'Léonore', '[[Base Léonore|Léonore]]', 640, leonoreLink },
{ 'USCongress', '[[Biographical Directory of the United States Congress|US Congress]]', 1157, uscongressLink },
{ 'Auñamendi', '[[Enciclopedia Auñamendi|Auñamendi]]', 3218, aunamendiLink },
{ 'GEA', '[[Gran Enciclopedia Aragonesa|GEA]]', 1807, geaLink },
{ 'DBSE', '[[Diccionario biográfico del socialismo español|DBSE]]', 2985, dbse },
{ 'DBE', '[[Diccionario biográfico español|DBE]]', 4459, diccionariobiograficoespanol },
{ 'MNCARS', '[[Museo Nacional Centro de Arte Reina Sofía|MNCARS]]', 4439, mncars },
{ 'MuseoDelPrado', '[[Museo del Prado]]', 5321, museodelprado },
{ 'BPN', '[[Biografisch Portaal|BPN]]', 651, bpnLink },
{ 'HDS', '[[Historical Dictionary of Switzerland|HDS]]', 902, hlsLink },
{ 'LIR', '[[Diccionario histórico de Suiza|LIR]]', 886, lirLink },
{ 'TLS', '[[Theaterlexikon der Schweiz|TLS]]', 1362, tlsLink },
 
for f = 1,fromForCount,1
{ 'ISCO', '[[d:Q1233766|ISCO]]', 952, isco },
do
{ 'AAT', '[[Art & Architecture Thesaurus|AAT]]', 1014, aatLink },
local elements, title = {}, {}
{ 'BDCYL', '[[Biblioteca Digital de Castilla y León|BDCYL]]', 3964, bdcyl },
--cleanup parameters
{ 'BVPB', '[[d:Q18596294|BVPB]]', 4802, bvpb },
if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end
{ 'BivaldiAutor', '[[Biblioteca Valenciana Digital|BiValDi]]', 3932, bivaldiAutor },
if parentArgs['for'..f] == '' then parentArgs['for'..f] = nil end
--remap aliases
{ 'OpenLibrary', '[[Open Library]]', 648, openlibrary },
for _, a in pairs( conf.aliases ) do
{ 'GalicianaAutor', '[[Galiciana]]', 3307, galicianaautor },
local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2])
{ 'PARES', '[[PARES]]', 4813, pares },
if parentArgs[alias..f] and not parentArgs[name..f] then
{ 'BVMCpersona', '[[Biblioteca Virtual Miguel de Cervantes|BVMC]]', 2799, bvmcpersona },
parentArgs[name..f] = parentArgs[alias..f]
{ 'Persée', '[[Persée (portal)|Persée]]', 2732, perseeLink },
parentArgs[alias..f] = nil
{ 'Dialnet', '[[Dialnet]]', 1607, dialnetLink },
end
{ 'SSRN', '[[Social Science Research Network|SSRN]]', 3747, SSRNautor },
end
{ 'GutenbergAutor', '[[Proyecto Gutenberg]]', 1938, gutenbergAutor },
{ 'UNZautor', '[[UNZ.org|UNZ]]', 2734, UNZauthorLink },
{ 'SIKART', '[[SIKART]]', 781, sikartLink },
{ 'KULTURNAV', '[[KulturNav]]', 1248, kulturnavLink },
{ 'RKDartists', '[[Rijksbureau voor Kunsthistorische Documentatie|RKD]]', 650, rkdartistsLink },
{ 'GoogleScholar', '[[Google Académico]]', 1960, googleScholar },
{ 'RID', '[[ResearcherID]]', 1053, ridLink },
{ 'BVMCobra', '[[Biblioteca Virtual Miguel de Cervantes|BVMC]]', 3976, bvmcobra },
{ 'NLM', '[[Biblioteca Nacional de Medicina de los Estados Unidos|NLM]]', 1055, NLM },
{ 'Latindex', '[[Latindex]]', 3127, latindexfolio },
{ 'ERIH PLUS', '[[ERIH PLUS]]', 3434, erihplus },
{ 'IPNIpub', '[[Índice Internacional de Nombres de las Plantas|IPNI]]', 2008, ipniPublication },
{ 'SUDOCcat', '[[Système universitaire de documentation|SUDOC]]', 1025, sudocCat},
{ 'ZDB', '[[Zeitschriftendatenbank|ZDB]]', 1042, zdb },
{ 'NorwegianRegister', '[[Norsk senter for forskningsdata|Norwegian Register]]', 1270, NorwegianRegisterJournal },
{ 'PerséeRevista', '[[Persée (portal)|Persée]]', 2733, perseeRevista },
{ 'DialnetRevista', '[[Dialnet]]', 1609, dialnetRevista },
{ 'Redalyc', '[[Redalyc]]', 3131, redalyc },
{ 'DOAJ', '[[Directory of Open Access Journals|DOAJ]]', 5115, doaj },
{ 'UNZrevista', '[[UNZ.org|UNZ]]', 2735, UNZjournalLink },
{ 'JSTORrevista', '[[JSTOR]]', 1230, jstorRevista },
{ 'HathiTrust', '[[HathiTrust]]', 1844, hathitrustLink },
{ 'HemBNE', '[[Hemeroteca Digital de la Biblioteca Nacional de España|Hemeroteca BNE]]', 2768, HemBNE },
{ 'BVPH', '[[Biblioteca Virtual de Prensa Histórica|BVPH]]', 2961, bvph },
{ 'Galicianaobra', '[[Galiciana]]', 3004, galicianaobra },
 
--Fetch Wikidata item
{ 'INE', '[[Instituto Nacional de Estadística (España)|INE]]', 772, codigoine },
local item = mw.wikibase.getEntity(parentArgs['from'..f])
{ 'TGN', '[[Getty Thesaurus of Geographic Names|TGN]]', 1667, tgnlink },
local label = item and item:getLabel()
{ 'SNCZI-IPE-EMBALSE', '[[Sistema Nacional de Cartografía de Zonas Inundables|SNCZI]]-[[Inventario de Presas y Embalses de España|IPE]]', 4568, sncziipeembalse },
if label and label ~= '' then
{ 'SNCZI-IPE-PRESA', '[[Sistema Nacional de Cartografía de Zonas Inundables|SNCZI]]-[[Inventario de Presas y Embalses de España|IPE]]', 4558, sncziipepresa },
title = mw.title.new(label)
{ 'NATURA2000', '[[Red Natura 2000|Natura 2000]]', 3425, natura2000 },
if not title then title = mw.title.getCurrentTitle() end
{ 'WWF', '[[Fondo Mundial para la Naturaleza|WWF]]', 1294, wwf },
else
title = mw.title.getCurrentTitle()
{ 'HCDN', '[[Cámara de Diputados de la Nación Argentina|Estadísticas HCDN]]', 4693, hcdnlink },
end
{ 'HCDNbio', '[[Cámara de Diputados de la Nación Argentina|Biografía HCDN]]', 5225, hcdnbiolink },
{ 'Legislatura CABA', '[[Legislatura de la Ciudad de Buenos Aires|Legislatura CABA]]', 4667, legcaba},
{ 'Asamblea de Madrid', '[[Asamblea de Madrid]]', 4797, asambleamadrid},
{ 'World Heritage Site', '[[Patrimonio de la Humanidad]]', 757, WHSunesco },
{ 'CNMLBH', '[[Comisión Nacional de Monumentos, de Lugares y de Bienes Históricos|CNMLBH]]', 4587, cnmlbh},
{ 'IGESPAR', '[[Instituto de Gestão do Património Arquitectónico e Arqueológico|IGESPAR]]', 1702, igespar },
{ 'SIPA', '[[Sistema de Informação para o Património Arquitectónico|SIPA]]', 1700, sipa },
{ 'Infopatrimonio', '[[Infopatrimônio]]', 4372, infopatrimonioID },
{ 'AustriaObjektID', '[[Austria ObjektID]]', 2951, austriaobjektID },
{ 'FBBID', '[[Fredede og Bevaringsværdige Bygninger|FBB]]', 2783, fbbid },
{ 'Fornminnesregistret', '[[Fornminnesregistret|FMIS]]', 1260, fmisid },
{ 'BerlinerKulturdenkmal', 'Berliner Kulturdenkmal', 2424, berlinerkulturdenkmal },
{ 'NHLE', '[[National Heritage List for England|NHLE]]', 1216, nhle },
{ 'NRHP', '[[Registro Nacional de Lugares Históricos|NRHP]]', 649, nrhp },
{ 'KULTURMINNE', '[[Riksantikvaren|Kulturminne]]', 758, kulturminne },
{ 'CRHP', '[[Canadian Register of Historic Places|CRHP]]', 477, crhp },
{ 'MERIMEE', '[[Base Mérimée|Mérimée]]', 380, merimee },
{ 'CADW', '[[Cadw]]', 1459, cadwID },
{ 'Památkový Katalog', '[[Památkový katalog]]', 762, pamatkovykatalog },
{ 'PatrimonioIran', 'Patrimonio Nacional de Irán', 1369, patrimonioiranID },
{ 'BIC', '[[Bien de Interés Cultural (España)|BIC]]', 808, bic },
{ 'BCIN', '[[Bien Cultural de Interés Nacional|BCIN]]', 1586, bcin },
{ 'IPAC', '[[Inventario del Patrimonio Arquitectónico de Cataluña|IPAC]]', 1600, ipac },
{ 'IGPCV', '[[Inventario General del Patrimonio Cultural Valenciano|IGPCV]]', 2473, igpcv },
{ 'BDI-IAPH', '[[Instituto Andaluz del Patrimonio Histórico|IAPH]]', 3318, bdiIAPH },
{ 'SIPCA', '[[SIPCA]]', 3580, sipca },
{ 'PWJCYL', '[[Junta de Castilla y León|Patrimonio Web JCyL]]', 3177, idPWJCYL },
{ 'DocomomoIberico', '[[Fundación Docomomo Ibérico|Docomomo Ibérico]]', 3758, docomomoiberico },
{ 'COAMinmueble', '[[Colegio Oficial de Arquitectos de Madrid|COAM]]', 2917, COAMinmueble },
{ 'HispaniaNostra', '[[Lista roja de patrimonio en peligro|Lista Roja Hispania Nostra]]', 4868, hispanianostra },
{ 'COAMpersona', '[[Colegio Oficial de Arquitectos de Madrid|COAM]]', 4488, COAMpersona },
{ 'DOI', '[[Identificador de objeto digital|DOI]]', 356, doi },
{ 'Handle', '[[Sistema Handle|Handle]]', 1184, handle },
{ 'Europeana', '[[Europeana]]', 727, europeana },
}
 
if (not parentArgs['wikidata'..f] or parentArgs['wikidata'..f] == '') and (title.namespace == 0) then
if parentArgs['from'..f] then parentArgs['wikidata'..f] = parentArgs['from'..f] elseif item then parentArgs['wikidata'..f] = item.id end
end
if title.namespace == 0 or stringArgs then --Only in the main namespace or if there are manual overrides
local sourcesFound = false
for _, params in pairs( conf.databases ) do
params[1] = mw.ustring.lower(params[1])
--Wikidata fallback if requested
if (item ~= nil and item.claims ~= nil) and params[3] ~= 0 and (not parentArgs[params[1]..f] or parentArgs[params[1]..f] == '') then
local wikidataIds = getIdsFromWikidata( item, 'P' .. params[3] )
if wikidataIds[1] then
parentArgs[params[1]..f] = wikidataIds[1]
end
end
 
local val = parentArgs[params[1]..f]
-- Check that the Wikidata item has this property-->value before adding it
if val and val ~= '' and mw.ustring.lower(val) ~= 'no' and params[3] ~= 0 then
local reqs = {}
table.insert( elements, createRow( params[1], params[2] .. ':', val, getLink( params[3], val, params[4]) , true ) )
if params[1] ~= 'wikidata' then sourcesFound = true end
end
end
 
--Generate navbox title
local p = {}
 
if sourcesFound then
function p.authorityControl( frame )
rowCount = rowCount + 1
local parentArgs = frame:getParent().args
if firstRow == 0 then firstRow = f end
--Create rows
if parentArgs['for'..f] and parentArgs['for'..f] ~= '' then
local elements = {}
navboxParams['group'..f] = "''" .. parentArgs['for'..f] .. "''"
else
local withLocalArgs = false
navboxParams['group'..f] = ""
for _,_ in pairs( parentArgs ) do
end
withLocalArgs = true
navboxParams['list'..f] = table.concat( elements )
end
end
end
if withLocalArgs then
end
table.insert(elements,'[[Categoría:Wikipedia:Páginas que utilizan control de autoridades con parámetros]]')
end
 
if rowCount > 0 then
--redirect PND to GND
local Navbox = require('Módulo:Navbox')
if (parentArgs.GND == nil or parentArgs.GND == '') and parentArgs.PND ~= nil and parentArgs.PND ~= '' then
if rowCount > 1 then
parentArgs.GND = parentArgs.PND
navboxParams['title'] = "[[Ayuda:Control de autoridades|Control de autoridades]]"
end
--add missing names
 
for f = 1,fromForCount,1
--Wikidata fallback if requested
do
local item = mw.wikibase.getEntityObject()
if navboxParams['group'..f] == "" then
if item ~= nil and item.claims ~= nil then
navboxParams['group'..f] = "''" .. mw.wikibase.getEntity(parentArgs['wikidata'..f]):getLabel().."''"
for _, params in pairs( conf ) do
end
if params[3] ~= 0 then
end
local val = parentArgs[params[1]]
if not val or valrowCount ==> ''2 then
navboxParams['navbar'] = 'plain'
local canUseWikidata = nil
else
if reqs[params[1]] ~= nil then
navboxParams['state'] = 'off'
canUseWikidata = matchesWikidataRequirements( item, reqs[params[1]] )
navboxParams['navbar'] = 'off'
else
end
canUseWikidata = true
else
end
navboxParams['group'..firstRow] = '[[Ayuda:Control de autoridades|Control de autoridades]]<br />' .. navboxParams['group'..firstRow]
if canUseWikidata then
end
local wikidataIds = getIdsFromWikidata( item, 'P' .. params[3] )
return Navbox._navbox(navboxParams)
if wikidataIds[1] then
parentArgs[params[1]] = wikidataIds[1]
end
end
end
end
end
end
--Wikidata
if item and item.id then
table.insert( elements, createRow(
'WIKIDATA',
'[[Archivo:Wikidata-logo.svg|20px|link=https://www.wikidata.org/wiki/Wikidata:Main_Page|alt=Wd|Wikidata]]:',
'Wikidata',
'[[Wikidata:' .. item.id .. '|' .. item.id .. ']]',
false ) )
end
 
--Worldcat
if parentArgs['WORLDCATID'] and parentArgs['WORLDCATID'] ~= '' then
table.insert( elements, createRow( 'WORLDCATID', '', parentArgs['WORLDCATID'], '[//www.worldcat.org/identities/' .. parentArgs['WORLDCATID'] .. ' WorldCat]', false ) ) --Validation?
elseif parentArgs['VIAF'] and string.match( parentArgs['VIAF'], '^%d+$' ) then -- Hackishly copy the validation code; this should go away when we move to using P1793 and P1630
table.insert( elements, createRow( 'VIAF', '', parentArgs['VIAF'], '[//www.worldcat.org/identities/containsVIAFID/' .. parentArgs['VIAF'] .. ' WorldCat]', false ) )
elseif parentArgs['LCCN'] and parentArgs['LCCN'] ~= '' then
local lccnParts = splitLccn( parentArgs['LCCN'] )
if lccnParts and lccnParts[1] ~= 'sh' then
table.insert( elements, createRow( 'LCCN', '', parentArgs['LCCN'], '[//www.worldcat.org/identities/lccn-' .. lccnParts[1] .. lccnParts[2] .. '-' .. lccnParts[3] .. ' WorldCat]', false ) )
end
end
 
--Configured rows
local rct = 0
for k, params in pairs( conf ) do
local val = parentArgs[params[1]]
if val and val ~= '' then
table.insert( elements, createRow( params[1], params[2] .. ':', val, params[4]( val ), true ) )
rct = rct + 1
end
end
local Navbox = require('Módulo:Navbox')
local elementscats = ''
if rct > 13 then
elementscats = '[[Categoría:Wikipedia:Control de autoridades con ' .. rct .. ' elementos]]'
end
if #elements ~= 0 then
return Navbox._navbox( {
name = 'Authority control',
bodyclass = 'hlist',
group1 = '[[Ayuda:Control de autoridades|Control de autoridades]]' .. elementscats,
list1 = table.concat( elements )
} )
else
return ""