Módulo:Wikidata/Formatos educación
Apariencia
La documentación para este módulo puede ser creada en Módulo:Wikidata/Formatos educación/doc
local p = {}
-- Funcions d'atros módulos
local moduloTablas = require('Módulo:Tablas')
local elementoTabla = moduloTablas.elemento
local moduloWikidata = require('Módulo:Wikidata')
local formatoIdEntidatWikidata = moduloWikidata.formatoIdEntidat
local moduloWikidataFormatos = require('Módulo:Wikidata/Formatos')
local enlazar = moduloWikidataFormatos.enlazar
local obtenerDatos = moduloWikidataFormatos.obtenerDatos
local formatoPeriodoWikidata = moduloWikidataFormatos.formatoPeriodo
local graus = {
['Q163727'] = {abreviadura = 'Grado', enlace = 'Títol de grau'}, -- Bachelor
['Q1765120'] = {abreviadura = 'B.A.', enlace = 'Bachelor of Arts'},
['Q2878277'] = {abreviadura = 'B.F.A.', enlace = 'Bachelor of Fine Arts'},
['Q798137'] = {abreviadura = 'B.L.', enlace = 'Bachelor of Laws'},
['Q787674'] = {abreviadura = 'B.S.', enlace = 'Bachelor of Science'},
['Q749020'] = {abreviadura = 'Lic.', enlace = 'Licenciatura'},
['Q691532'] = {abreviadura = 'Lic. en Dreito', enlace = 'Licenciatura en Dreito'},
['Q183816'] = {abreviadura = 'Maestría', enlace = 'Maestría'},
['Q2091008'] = {abreviadura = 'M.A.', enlace = 'Master of Arts'},
['Q191701'] = {abreviadura = 'M.B.A.', enlace = 'Maestría en Administración d\'Interpresas'},
['Q4175466'] = {abreviadura = 'M.F.A.', enlace = 'Máster en Bellas Artes'},
['Q950900'] = {abreviadura = 'M.S.', enlace = 'Master of Science'},
['Q849697'] = {abreviadura = 'Doc.', enlace = 'Doctorau'},
['Q4618975'] = {abreviadura = 'Doc.', enlace = 'Doctorau'}, -- doctor
['Q3033550'] = {abreviadura = 'Doc.', enlace = 'Doctorau (Francia)'},
['Q959320'] = {abreviadura = 'Doc. of Law', enlace = 'Doctor of Law'},
['Q1540185'] = {abreviadura = 'J.D.', enlace = 'Juris Doctor'},
['Q6518699'] = {abreviadura = 'L.L.D.', enlace = 'LLD'},
['Q913404'] = {abreviadura = 'M.D.', enlace = 'Doctor en Medecina'},
['Q752297'] = {abreviadura = 'Ph.D.',enlace = 'Philosophiæ doctor'},
}
local especialidatz = {
['Q222749'] = {etiqueta = 'Actuación', enlace = 'Actuación'},
['Q12271'] = {etiqueta = 'Arquitectura', enlace = 'Arquitectura'},
['Q21198'] = {etiqueta = 'Sciencias d\'a Computación', enlace = 'Sciencias d\'a computación'},
['Q7748'] = {etiqueta = 'Dreito', enlace = 'Dreito'},
['Q4932206'] = {etiqueta = 'Churisprudencia', enlace = 'Sciencia d\'o dreito'},
['Q382995'] = {etiqueta = 'Sciencias d\'o Dreito', enlace = 'Sciencias d\'o dreito'},
['Q8134'] = {etiqueta = 'Sciencias Económicas', enlace = 'Sciencia económica'},
['Q5891'] = {etiqueta = 'Filosofía', enlace = 'Filosofía'},
['Q413'] = {etiqueta = 'Física', enlace = 'Física'},
['Q309'] = {etiqueta = 'Historia', enlace = 'Historia'},
['Q395'] = {etiqueta = 'Matematicas', enlace = 'Matematicas'},
['Q11190'] = {etiqueta = 'Medecina', enlace = 'Medecina'},
['Q11030'] = {etiqueta = 'Periodismo', enlace = 'Periodismo'},
['Q36442'] = {etiqueta = 'Sciencias Politicas', enlace = 'Sciencias politicas'},
['Q9418'] = {etiqueta = 'Psicolochía', enlace = 'Psicolochía'},
['Q2329'] = {etiqueta = 'Quimica', enlace = 'Quimica'},
['Q21201'] = {etiqueta = 'Sociolochía', enlace = 'Sociolochía'},
['Q34178'] = {etiqueta = 'Teología', enlace = 'Teología'},
}
function p.formatoEducauEn(valor, opcions, frame, calificativos)
-- Función que torna un puesto d'educación, por eixemplo Universidad Harvard.
--
-- Funcions internas
--
function obtenerGrau(idGrau, opcions)
if not idGrau then
return
end
local grau = graus[idGrau]
if grau then
return enlazar(grau.enlace, grau.abreviadura, idGrau,opcions)
else
-- En o caso de que o grau no siga un d'os graus d\'a tabla interna
return formatoIdEntidatWikidata(idGrau, opcions)
end
end
function obtenerEspecializacion(idEspecialidat, opcions)
if not idEspecialidat then
return
end
local especialidat = especialidatz[idEspecialidat]
if especialidat then
return enlazar(especialidat.enlace, especialidat.etiqueta, idEspecialidat,opcions)
else
-- En el caso de que la especialidat no sea uno d'as especialidatz d\'a tabla interna
return formatoIdEntidatWikidata(idEspecialidat, opcions)
end
-- A medias
return formatoIdEntidatWikidata(idEspecialidat, opcions)
end
-- Variables
if not valor then
return
end
-- Obtener los datos
local enlacePuestoEducacion, etiquetaPuestoEducacion, idEntidatPuestoEducacion = obtenerDatos(valor)
local puestoEducacion = enlazar(enlacePuestoEducacion, etiquetaPuestoEducacion, idEntidatPuestoEducacion,opcions)
if not puestoEducacion then
return
end
-- Graus
local grau
local declaracionGraus = elementoTabla(calificativos,'P512')
if declaracionGraus then
local graus = {}
local idGrau
for k, v in pairs(declaracionGraus) do
idGrau = elementoTabla(v,'datavalue','value','id')
if idGrau then
table.insert(graus, obtenerGrau(idGrau, opcions))
end
end
grau = mw.text.listToText( graus, ', ', ' y ' )
end
-- Especialización
local especializacion
local declaracionEspecializacions = elementoTabla(calificativos,'P812')
if declaracionEspecializacions then
local especializacions = {}
local idEspecializacion
for k, v in pairs(declaracionEspecializacions) do
idEspecializacion = elementoTabla(v,'datavalue','value','id')
if idEspecializacion then
table.insert(especializacions, obtenerEspecializacion(idEspecializacion, opcions))
end
end
especializacion = mw.text.listToText( especializacions, ', ', ' y ' )
end
-- Adhibir a o grau a especialización
local grauEspecializacion
if grau and especializacion then
grauEspecializacion = grau .. ' en ' .. especializacion
else
grauEspecializacion = grau or especializacion
end
local periodo = formatoPeriodoWikidata(calificativos, opcions)
-- Casos
--
if grauEspecializacion and periodo then
return puestoEducacion .. ' <small>(' .. grauEspecializacion .. '; ' .. periodo .. ')</small>'
elseif grauEspecializacion then
return puestoEducacion .. ' <small>(' .. grauEspecializacion .. ')</small>'
elseif periodo then
return puestoEducacion .. ' <small>(' .. periodo .. ')</small>'
else
return puestoEducacion
end
--if true then return require('Módulo:Tablas').tostring(calificativos) end -- Pruebas
end
-- Alias pa simplificar l'uso dende a plantilla propiedat
--
p['educau en'] = p.formatoEducauEn
return p