Módulo:Wikidata/unidades/datos
Este módulo implementa desde cero una forma de obtener las unidades, en base a la entidad de Wikidata asociada a dicha unidad. Toda actualización debe hacerse en Módulo:Wikidata/unidades/datos, siguiendo este formato:
-- Entidad Texto
['Q8805'] = '[[Bit|b]]',
Uso
main()
Para integrar la funcionalidad en otros módulos, se puede seguir el siguiente código de ejemplo:
local getUnit = require('Módulo:Wikidata/unidades').main
local elementoTabla = require('Módulo:Tablas').elemento
local Dato = elementoTabla(Entidad, 'claims', idPropiedad, 'mainsnak', 'datavalue')
local Valor = elementoTabla(Dato, 'value')
local Tipo = elementoTabla(Dato, 'type')
if Tipo == 'quantity' then
Unidad = elementoTabla(Valor, 'unit')
Valor = string.sub(elementoTabla(Valor, 'amount'), 2)
if Unidad then Valor = Valor .. getUnit(Unidad) end -- La posición y espaciado de la unidad depende del valor
end
Parámetros
|val=
el identificador de unidad de Wikidata.
numeroUnidad()
Se provee la función auxiliar numeroUnidad()
como una forma conveniente de concatenar el número con su unidad disponible.
local numeroUnidad = require('Módulo:Wikidata/unidades').numeroUnidad
...
local Edad = numeroUnidad(elementoTabla(Entidad, 'claims', 'P6249', 1, 'mainsnak', 'datavalue'))
Parámetros
|objeto=
, el objetodatavalue
|opciones=
, una tabla de opciones, usualmente pasada mediante la función propiedad() presente en varios módulos. Las opciones aceptadas son:
|opciones['izquierda']=
permite colocar la unidad a la izquerda. Por defecto, este va a la derecha.|opciones['separador']=
especificar un separador alternativo (por defecto un espacio duro
).
numeroUnidad()
acepta como parámetro el objeto datavalue
. Si el tipo de dato es amount
, y se ha especificado una unidad válida, dicha unidad será concatenada de acuerdo a los parámetros |opciones['izquierda']=
y |opciones['separador']=
.
Función envoltura propiedad()
La siguiente función envoltura provee una fácil integración de este módulo en módulos de fichas.
function propiedad(idPropiedad, opciones, entidad)
if not entidad then entidad = Entidad end
if entidad and entidad.claims and entidad.claims[idPropiedad] then
if not opciones then
opciones = {['linkback']='sí'}
end
-- Valores cuya unidad deba ir a la derecha, separada de un espacio
if opciones['unidad'] then
if elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue') then
return formatoNumero(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue', 'value', 'amount')) .. ' - ' .. numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue'))
else
return numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue'))
end
-- Valores cuya unidad deba ir a la izquierda (ej, las monedas o divisas)
elseif opciones['precio'] then
if elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue') then
return numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue'), false) .. ' - ' .. numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue'), false)
else
return numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue'), false)
end
end
opciones.entityId = entidad.id
opciones.propiedad = idPropiedad
return ModuloWikidata.getPropiedad(opciones,entidad.claims[idPropiedad])
end
end
¿Por qué los datos en un módulo separado?
Véase la función loadData()
de la extensión Scribunto para más información.
¿Qué hay de los módulos auxiliares de Módulo:Wikidata?
Este módulo no pretende ser un reemplazo para los módulos auxiliares de formato del Módulo:Wikidata, sino que una alternativa para ser usada en módulos con un nuevo código, mucho más limpio. Aunque, tarde o temprano, este código terminará integrándose dentro del módulo principal.
Error de secuencia de órdenes: Error de Lua: Error interno: El intérprete ha finalizado con la señal "-129".
return { -- Porcentaje ['Q11229'] = '%', -- Tamaños en bits ['Q8805'] = '[[Bit|b]]', ['Q3194304']= '[[Kilobit|kb]]', ['Q3332814']= '[[Megabit|mb]]', ['Q3105497']= '[[Gigabit|gb]]', ['Q1152323']= '[[Terabit|tb]]', ['Q1152074']= '[[Petabit|pb]]', ['Q1195111']= '[[Exabit|eb]]', ['Q1140444']= '[[Zettabit|zb]]', ['Q1140577']= '[[Yottabit|yb]]', ['Q3194304']= '[[Kibibit|Kib]]', ['Q3332814']= '[[Mebibit|Mib]]', ['Q3105497']= '[[Gibibit|Gib]]', ['Q1152323']= '[[Tebibit|Tib]]', ['Q1152074']= '[[Pebibit|Pib]]', ['Q1195111']= '[[Exbibit|Eib]]', ['Q1140444']= '[[Zebibit|Zib]]', ['Q1140577']= '[[Yobibit|Yib]]', -- Tamaños en bytes ['Q8799'] = '[[Byte|B]]', ['Q79726'] = '[[Kilobyte|KB]]', ['Q79735'] = '[[Megabyte|MB]]', ['Q79738'] = '[[Gigabyte|GB]]', ['Q79741'] = '[[Terabyte|TB]]', ['Q79744'] = '[[Petabyte|PB]]', ['Q79745'] = '[[Exabyte|EB]]', ['Q79747'] = '[[Zettabyte|ZB]]', ['Q79752'] = '[[Yottabyte|YB]]', ['Q79756'] = '[[Kibibyte|KiB]]', ['Q79758'] = '[[Mebibyte|MiB]]', ['Q79765'] = '[[Gibibyte|GiB]]', ['Q79769'] = '[[Tebibyte|TiB]]', ['Q79774'] = '[[Pebibyte|PiB]]', ['Q79777'] = '[[Exbibyte|EiB]]', ['Q79779'] = '[[Zebibyte|ZiB]]', ['Q79781'] = '[[Yobibyte|YiB]]', -- Velocidad de transferencia de datos ['Q549389'] = 'bit/s', ['Q2269250'] = 'Kbit/s', ['Q7350781'] = 'Mbit/s', ['Q2243141'] = 'Gbit/s', ['Q12265780'] = 'Pbit/s', ['Q12257695'] = 'Ebit/s', ['Q12269308'] = 'Zbit/s', ['Q12269121'] = 'Ybit/s', -- Frecuencias en hercios ['Q39369'] = '[[Hercio|Hz]]', ['Q2143992'] = '[[Hercio|KHz]]', ['Q732707'] = '[[Hercio|MHz]]', ['Q3276763'] = '[[Hercio|GHz]]', ['Q13548586'] = '[[Hercio|THz]]', -- Rendimiento en flops ['Q39369'] = '[[Operaciones de coma flotante por segundo|FLOPS]]', ['Q78053467'] = '[[Operaciones de coma flotante por segundo|kiloFLOS]]', ['Q66778809'] = '[[Operaciones de coma flotante por segundo|megaFLOS]]', ['Q5558595'] = '[[Operaciones de coma flotante por segundo|gigaFLOS]]', ['Q66778234'] = '[[Operaciones de coma flotante por segundo|teraFLOS]]', ['Q66778863'] = '[[Operaciones de coma flotante por segundo|petaFLOS]]', ['Q66778905'] = '[[Operaciones de coma flotante por segundo|exaFLOS]]', -- Velocidad ['Q182429'] = '[[Metro por segundo|m/s]]', ['Q748716'] = '[[Pie por segundo|p/s]]', ['Q180154'] = '[[Kilómetro por hora|Km/h]]', ['Q211256'] = '[[Milla por hora|Mph]]', ['Q128822'] = '[[Nudo (unidad)|kn]]', ['Q531'] = '[[años luz]]', -- Masa ['Q11570'] = '[[Kilogramo|kg]]', ['Q41803'] = '[[Gramo|g]]', ['Q48013'] = '[[Onza|oz]]', ['Q100995'] = '[[Libra|lb]]', ['Q191118'] = '[[Tonelada|ton]]', ['Q3241121'] = '[[Miligramo|mg]]', -- Longitud ['Q11573'] = '[[Metro|m]]', ['Q828224'] = '[[Kilómetro|km]]', ['Q200323'] = '[[Decímetro|dm]]', ['Q174728'] = '[[Centímetro|cm]]', ['Q174789'] = '[[Milímetro|mm]]', ['Q175821'] = '[[Micrómetro|µm]]', ['Q178674'] = '[[Nanómetro|nm]]', ['Q192274'] = '[[Picómetro|pm]]', ['Q208788'] = '[[Femtómetro|fm]]', ['Q6003257'] = '[[Attómetro|atm]]', ['Q3270676'] = '[[Zeptómetro|zm]]', ['Q3221356'] = '[[Yoctómetro|ym]]', ['Q531'] = '[[años luz]]', ['Q218593'] = '[[Pulgada|in]]', ['Q3710'] = '[[Pie|ft]]', ['Q482798'] = '[[Yarda|yd]]', ['Q6502423'] = '[[Braza (unidad)|bz]]', ['Q552299'] = '[[Cadena (unidad de longitud)|ch]]', ['Q494083'] = '[[Furlong|fur]]', ['Q253276'] = '[[Milla|mi]]', ['Q93318'] = '[[Milla naútica|nmi]]', -- Superficie ['Q25343'] = 'm²', ['Q1063786'] = 'in²', ['Q2489298'] = 'cm²', ['Q2737347'] = 'mm²', ['Q23931040'] = 'dam²', ['Q35852'] = 'ha', ['Q712226'] = 'km²', ['Q81292'] = '[[acre]]', ['Q251545'] = '[[Yugarda|yu]]', ['Q1550511'] = '[[Yarda cuadrada|yd²]]', ['Q717310'] = '[[Morgen|Mg]]', ['Q17094697'] = '[[Łan]]', ['Q3774562'] = '[[homestead]]', -- Volumen ['Q25517'] = 'm³', ['Q1022113'] = 'cm³', ['Q1545979'] = 'ft³', ['Q2140397'] = 'in³', ['Q2175964'] = 'dm³', ['Q3675550'] = 'mm³', -- Unidades de potencia eléctrica ['Q25236'] = '[[Vatio|W]]', ['Q3320608'] = '[[Vatio|kW]]', ['Q6982035'] = '[[Vatio|MW]]', ['Q5879479'] = '[[Vatio|GW]]', ['Q23823681'] = '[[Vatio|TW]]', ['Q53449040'] = '[[Vatio|PW]]', ['Q53449045'] = '[[Vatio|EW]]', ['Q53449029'] = '[[Vatio|dW]]', ['Q53449025'] = '[[Vatio|cW]]', ['Q3207456'] = '[[Vatio|mW]]', ['Q1823150'] = '[[Vatio|mW]]', ['Q1823150'] = '[[Vatio|µW]]', ['Q53449021'] = '[[Vatio|nW]]', ['Q53449018'] = '[[Vatio|pW]]', ['Q53449013'] = '[[Vatio|fW]]', ['Q25236'] = '[[Voltiamperio|VA]]', ['Q29924639'] = '[[Voltiamperio|kVA]]', ['Q630369'] = '[[Voltiamperio reactivo|VAR]]', -- Tensión ['Q25250'] = '[[Voltio|V]]', -- SAR ['Q67060736'] = 'W/kg', -- Genética ['Q145911'] = '[[par de bases]]', ['Q12321814'] = '[[Par de bases|kilobases]]', ['Q25376902'] = '[[Par de bases|megabases]]', -- Unidades de concentración ['Q483261'] = '[[Unidad de masa atómica|u]]', ['Q21077820'] = 'mg/cm³', ['Q13147228'] = 'g/cm³', ['Q844211'] = '[[Kilogramo por metro cúbico|kg/m³]]', -- Unidades de capacidad calorífica ['Q20966455'] = '[[Julio (unidad)|J]]/([[Kelvin|K]]·[[mol]])', ['Q3085309'] = '[[Julio (unidad)|J]]/([[Kelvin|K]]·[[Kilogramo|kg]])', -- Unidades de presión ['Q44395'] = '[[Pascal (unidad)|Pa]]', ['Q53448918'] = '[[Pascal (unidad)|daPa]]', ['Q5139563'] = '[[Pascal (unidad)|hPa]]', ['Q21064807'] = '[[Pascal (unidad)|kPa]]', ['Q21062777'] = '[[Pascal (unidad)|MPa]]', ['Q53448922'] = '[[Pascal (unidad)|GPa]]', ['Q53448927'] = '[[Pascal (unidad)|TPa]]', ['Q53448931'] = '[[Pascal (unidad)|PPa]]', ['Q53448914'] = '[[Pascal (unidad)|dPa]]', ['Q53448909'] = '[[Pascal (unidad)|cPa]]', ['Q53448906'] = '[[Pascal (unidad)|mPa]]', ['Q53448900'] = '[[Pascal (unidad)|µPa]]', ['Q53448897'] = '[[Pascal (unidad)|nPa]]', ['Q53448892'] = '[[Pascal (unidad)|pPa]]', ['Q6859652'] = '[[Milímetro de mercurio|mmHg]]', ['Q1050958'] = '[[Pulgada de mercurio|inHg]]', ['Q185648'] = '[[torr]]', ['Q177974'] = '[[Atmósfera (unidad)|Atm]]', ['Q909066'] = '[[Atmósfera técnica|At]]', ['Q103510'] = '[[Bar (unidad de presión)|bar]]', ['Q3495543'] = '[[Milibar|mbar]]', ['Q809678'] = '[[Baria|Ba]]', ['Q626299'] = '[[Libra por pulgada cuadrada|psi]]', ['Q2042279'] = '[[Metro de columna de agua|m/ca]]', ['Q1247300'] = '[[Centímetro de columna de agua|cm/ca]]', ['Q13479685'] = '[[Milímetro de columna de agua|mm/ca]]', ['Q752197'] = '[[kilojulio por mol|kJ/mol]]', ['Q20966435'] = 'A/Vm', ['Q1463969'] = '[[Vatio por metro-kelvin|W/(m·K)]]', ['Q3085309'] = '[[Julio por kilogramo-kelvin|J/(K⁻¹·kg⁻¹)]]', -- Unidades de potencia ['Q2276380'] = '[[Caballo de fuerza|HP]]', ['Q160857'] = '[[Caballo de vapor|CV]]', -- Edad ['Q73432913'] = 'día', ['Q73432674'] = 'mes', ['Q24564698'] = 'año', ['Q73433037'] = 'década', ['Q73432913-plural'] = 'días', ['Q73432674-plural'] = 'meses', ['Q24564698-plural'] = 'años', ['Q73433037-plural'] = 'décadas', ['Q20764'] = '[[Millones de años|Ma]]', -- Precios en moneda ['Q4917'] = '[[Dólar estadounidense|US$]]', ['Q1104069'] = '[[Dólar canadiense|C$]]', ['Q4916'] = '[[Euro|€]]', ['Q4916'] = '[[Libra esterlina|£]]', ['Q8146'] = '[[Yen|¥]]', ['Q39099'] = '[[Renminbi|¥]]', ['Q202040'] = '[[Won surcoreano|₩]]', ['Q106720'] = '[[Won norcoreano|₩]]', ['Q15788'] = '[[Rublo|₽]]', ['Q259502'] = '[[Dólar australiano|A$]]', ['Q1472704'] = '[[Dólar neozelandés|NZ$]]', ['Q4730'] = '[[Peso mexicano|$]]', ['Q204656'] = '[[Sol (moneda del Perú)|S/]]', ['Q199578'] = '[[Peso (moneda de Argentina)|$]]', ['Q200050'] = '[[Peso (moneda de Chile)|$]]', ['Q173117'] = '[[Real brasileño|R$]]', -- Precios en criptodivisa ['Q131723'] = '[[Bitcoin|฿]]', ['Q100286778'] = '[[Bitcoin|mBTC]]', ['Q100286875'] = '[[Bitcoin|satoshi]]', ['Q4043030'] = '[[Litecoin|Ł]]', ['Q19893485'] = '[[Monero (criptomoneda)|ɱ]]', }