Módulo:Wikidata/Formatos personas

Este módulo no tiene página de documentación[crear]
local z = {}

-- Módulos y funciones externas
local ModuloWikidata                       = require('Módulo:Wikidata')
--local   obtenerPropiedadWikidata           = ModuloWikidata.getPropiedad
local   formatoIdEntidadWikidata           = ModuloWikidata.formatoIdEntidad
local   obtenerPropiedadEnEspanyolWikidata = ModuloWikidata.getPropiedadEnEspanyol
local ModuloWikidataFormatos               = require('Módulo:Wikidata/Formatos')
local   enlazarWikidata                    = ModuloWikidataFormatos.enlazar
local   formatoPeriodoWikidata             = ModuloWikidataFormatos.formatoPeriodo
local   obtenerDatosWikidata               = ModuloWikidataFormatos.obtenerDatos

--*******************************************************************************
--Ocupaciones
--*******************************************************************************

function formatoOcupacionMasculino(valor, opciones, frame, calificativos)
	local enlaceOcupacion, etiquetaOcupacion, idEntidadOcupacion = obtenerDatosWikidata(valor)
	return enlazarWikidata(enlaceOcupacion, etiquetaOcupacion, idEntidadOcupacion, opciones)
end

function formatoOcupacionFemenino(valor, opciones, frame, calificativos)
	local enlaceOcupacion, etiquetaOcupacion, idEntidadOcupacion = obtenerDatosWikidata(valor)
	
	-- Para las ocupaciones más frecuentes no se accederá a Wikidata
	local tablaOcupacionesFemeninas={
		['Q40348'   ] = 'abogada',
		['Q16631371'] = 'académica',
		['Q15253558'] = 'activista',
		['Q1476215' ] = 'activista por los derechos humanos',
		['Q33999'   ] = 'actriz',
		['Q10800557'] = 'actriz de cine',
		['Q11481802'] = 'actriz de doblaje',
		['Q948329'  ] = 'actriz de género',		
		['Q2259451' ] = 'actriz de teatro',
		['Q10798782'] = 'actriz de televisión',
		['Q2405480' ] = 'actriz de voz',
		['Q488111'  ] = 'actriz pornográfica',
		['Q10873124'] = 'ajedrecista',
		['Q4773904' ] = 'antropóloga',			
		['Q2478141' ] = 'aristócrata',		
		['Q42973'   ] = 'arquitecta',
		['Q483501'  ] = 'artista',
		['Q7019111' ] = 'asistenta social',
		['Q11063'   ] = 'astrónoma',		
		['Q18814623'] = 'autobiógrafa',		
		['Q482980'  ] = 'autora',
		['Q5716684' ] = 'bailarina',
		['Q805221'  ] = 'bailarina de ballet',		
		['Q864503'  ] = 'bióloga',
		['Q8246794' ] = 'bloguera',		
		['Q177220'  ] = 'cantante',
		['Q2865819' ] = 'cantante de ópera',
		['Q488205'  ] = 'cantautora',		
		['Q901'     ] = 'científica',
		['Q15212951'] = 'cineasta',
		['Q1086863' ] = 'columnista',		
		['Q245068'  ] = 'comediante',
		['Q36834'   ] = 'compositora',
		['Q2722764' ] = 'conductora radiofónica',		
		['Q2490358' ] = 'coreógrafa',
		['Q18939491'] = 'diarista',
		['Q193391'  ] = 'diplomática',
		['Q2526255' ] = 'directora de cine',
		['Q5322166' ] = 'diseñadora',
		['Q627325'  ] = 'diseñadora gráfica',
		['Q462390'  ] = 'docente',
		['Q214917'  ] = 'dramaturga',
		['Q188094'  ] = 'economista',
		['Q974144'  ] = 'educadora',
		['Q131524'  ] = 'emprendedora',
		['Q43845'   ] = 'empresaria',
		['Q186360'  ] = 'enfermera',
		['Q11774202'] = 'ensayista',		
		['Q36180'   ] = 'escritora',
		['Q4853732' ] = 'escritora de literatura infantil',
		['Q1281618' ] = 'escultora',
		['Q11900058'] = 'exploradora',		
		['Q13472585'] = 'filántropa',
		['Q4964182' ] = 'filósofa',
		['Q169470'  ] = 'física',		
		['Q33231'   ] = 'fotógrafa',
		['Q28389'   ] = 'guionista',
		['Q201788'  ] = 'historiadora',
		['Q715301'  ] = 'historietista',		
		['Q82594'   ] = 'informática teórica',
		['Q16533'   ] = 'jueza',
		['Q185351'  ] = 'jurista',
		['Q644687'  ] = 'ilustradora',
		['Q14467526'] = 'lingüista',				
		['Q1371925' ] = 'locutora',		
		['Q2251335' ] = 'maestra',		
		['Q191633'  ] = 'mangaka',
		['Q170790'  ] = 'matemática',
		['Q39631'   ] = 'médica',
		['Q4610556' ] = 'modelo',
		['Q639669'  ] = 'música',
		['Q6625963' ] = 'novelista',
		['Q1930187' ] = 'periodista',
		['Q1028181' ] = 'pintora',
		['Q728711'  ] = 'playmate',
		['Q49757'   ] = 'poeta',		
		['Q82955'   ] = 'política',
		['Q270389'  ] = 'presentadora de noticias',
		['Q947873'  ] = 'presentadora de televisión',		
		['Q3282637' ] = 'productora de cine',
		['Q37226'   ] = 'profesora',
		['Q121594'  ] = 'profesora',
		['Q16145150'] = 'profesora de música',
                ['Q1622272' ] = 'profesora de universidad',
		['Q212980'  ] = 'psicóloga',
		['Q3242115' ] = 'revolucionaria',
		['Q3068305' ] = 'salonnière',		
		['Q622807'  ] = 'seiyū',
		['Q512314'  ] = 'socialité',		
		['Q2306091' ] = 'socióloga',
		['Q1141526' ] = 'stripper',		
		['Q1234713' ] = 'teóloga',		
		['Q333634'  ] = 'traductora',
		['Q350979'  ] = 'zoóloga',
	}
	
	local etiquetaOcupacionCorregida = tablaOcupacionesFemeninas[idEntidadOcupacion]
	
	if etiquetaOcupacionCorregida then
		return enlazarWikidata(enlaceOcupacion, etiquetaOcupacionCorregida, idEntidadOcupacion, opciones)
	else 
		-- La ocupación no está en la tabla anterior. Se intenta obtener de la propiedad P2522 en Wikidata de la ocupación
		etiquetaOcupacionCorregida = obtenerPropiedadEnEspanyolWikidata(idEntidadOcupacion, 'P2521') or etiquetaOcupacion
		return enlazarWikidata(enlaceOcupacion, etiquetaOcupacionCorregida, idEntidadOcupacion, opciones) .. '[[Categoría:Wikipedia:Ocupaciones femeninas]]'
	end
end

function z.formatoOcupacion(valor, opciones, frame, calificativos)
	if opciones and opciones.sexo == 'femenino' then 
		return formatoOcupacionFemenino(valor, opciones, frame, calificativos)
	else
		return formatoOcupacionMasculino(valor, opciones, frame, calificativos)
	end
end

--*******************************************************************************
--Premios
--*******************************************************************************

return z