Diferencia entre revisiones de «Módulo:Ficha de edificio»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
corrijo
Cambio pictograma de «comunicación» a «edificio»; y otros pequeños cambios de ortografía y estilo
Línea 48: Línea 48:
valoraltura = (valoraltura * 929.0304)/10^4
valoraltura = (valoraltura * 929.0304)/10^4
end
end
return valoraltura .." [[metro cuadrado|".. "m<sup>2</sup>]]"
return valoraltura .."&nbsp;[[metro cuadrado|".. "m²]]"
end
end


Línea 139: Línea 139:
'220px',
'220px',
pie = pieDeImagen,
pie = pieDeImagen,
tipocabecera = 'comunicación',
tipocabecera = 'edificio',
estilotitulo = estilotitulo,
estilotitulo = estilotitulo,
estiloseccion = estiloseccion,
estiloseccion = estiloseccion,
Línea 146: Línea 146:
{tipo = "sección",
{tipo = "sección",
['titulo'] = "Localización",
['titulo'] = "Localización",
{'País:', pais},
{'País', pais},
{tipodivadministrativa, divadministrativa},
{tipodivadministrativa, divadministrativa},
--{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})},
--{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})},
Línea 166: Línea 166:
{'Se conecta con', argumento['se conecta con'] or argumento['Se conecta con']},
{'Se conecta con', argumento['se conecta con'] or argumento['Se conecta con']},
{'Cruza',argumento['cruza'] or argumento['Cruza']},
{'Cruza',argumento['cruza'] or argumento['Cruza']},
{'Numero de vanos', argumento['ojos'] or argumento['Ojos']},
{'Número de vanos', argumento['ojos'] or argumento['Ojos']},
{'Ocupante', argumento['ocupante'] or argumento['Ocupante']},
{'Ocupante', argumento['ocupante'] or argumento['Ocupante']},
{'Usos', argumento['uso'] or argumento['Uso'] or propiedad('P366')},
{'Usos', argumento['uso'] or argumento['Uso'] or propiedad('P366')},
Línea 186: Línea 186:
{'Nombrado en honor a', argumento['nombrado en honor a'] or argumento['Nombrado en honor a'] or propiedad('P138')},
{'Nombrado en honor a', argumento['nombrado en honor a'] or argumento['Nombrado en honor a'] or propiedad('P138')},
{'Primera piedra', primerapiedra },
{'Primera piedra', primerapiedra },
{'antena', argumento['antena'] or argumento['Antena']},
{'Antena', argumento['antena'] or argumento['Antena']},
{'piso más alto', argumento['piso mas alto'] or argumento['Piso mas alto'] or propiedad('P1101')},
{'Piso más alto', argumento['piso mas alto'] or argumento['Piso mas alto'] or propiedad('P1101')},
},
},
{tipo = "sección",
{tipo = "sección",
['titulo'] = "Altura",
['titulo'] = "Altura",
{'altura arquitéctonica', argumento['altura arquitectonica'] or argumento['Altura arquitectonica'] or argumento['altura'] or argumento['Altura'] or devolveraltura(Entidad).altura},
{'Altura arquitéctonica', argumento['altura arquitectonica'] or argumento['Altura arquitectonica'] or argumento['altura'] or argumento['Altura'] or devolveraltura(Entidad).altura},
{'altura máxima', argumento['altura maxima'] or argumento['Altura maxima'] or devolveraltura(Entidad).alturamaxima},
{'Altura máxima', argumento['altura maxima'] or argumento['Altura maxima'] or devolveraltura(Entidad).alturamaxima},
},
},
{tipo="sección",
{tipo="sección",
Línea 202: Línea 202:
['titulo'] = "Detalles técnicos",
['titulo'] = "Detalles técnicos",
['Material'] = argumento['material'] or argumento['Material'] or obtenerMaterial(),
['Material'] = argumento['material'] or argumento['Material'] or obtenerMaterial(),
{'superficie', argumento['superficie'] or argumento['Superficie'] or obtenerSuperficie()},
{'Superficie', argumento['superficie'] or argumento['Superficie'] or obtenerSuperficie()},
{'número de plantas', argumento['numero de plantas'] or argumento['Numero de plantas'] or propiedad('P1101')},
{'Número de plantas', argumento['numero de plantas'] or argumento['Numero de plantas'] or propiedad('P1101')},
{'número de ascensores', argumento['numero de ascensores'] or argumento['Numero de ascensores'] or propiedad('P1301')},
{'Número de ascensores', argumento['numero de ascensores'] or argumento['Numero de ascensores'] or propiedad('P1301')},
},
},
{tipo = "sección",
{tipo = "sección",
Línea 230: Línea 230:
["titulo"] = "Otra información",
["titulo"] = "Otra información",
--Bar o restaurante
--Bar o restaurante
{"Nº de asientos", argumento["nro de asientos"] or argumento["Nro de asientos"] or propiedad("P1083")},
{"N.º de asientos", argumento["nro de asientos"] or argumento["Nro de asientos"] or propiedad("P1083")},
{"Nº de tiendas", argumento['nro de tiendas'] or argumento['Nro de tiendas'] or propiedad()},
{"N.º de tiendas", argumento['nro de tiendas'] or argumento['Nro de tiendas'] or propiedad()},
--Hotel
--Hotel
{"Nº de habitaciones", argumento["nro de habitaciones"] or argumento["Nro de habitaciones"]},
{"N.º de habitaciones", argumento["nro de habitaciones"] or argumento["Nro de habitaciones"]},
{"Nº de suites", argumento["nro de suites"] or argumento["Nro de suites"]},
{"N.º de suites", argumento["nro de suites"] or argumento["Nro de suites"]},
{"Nº de restaurantes", argumento["nro de restaurantes"] or argumento["Nro de restaurantes"]},
{"N.º de restaurantes", argumento["nro de restaurantes"] or argumento["Nro de restaurantes"]},
{"Nº de bares", argumento["nro de bares"] or argumento["Nro de bares"]},
{"N.º de bares", argumento["nro de bares"] or argumento["Nro de bares"]},
{"Estrellas", argumento["estrellas"] or argumento["Estrellas"]},
{"Estrellas", argumento["estrellas"] or argumento["Estrellas"]},
--Edificios religiosos
--Edificios religiosos
Línea 430: Línea 430:
valoraltura = valoraltura * 0.3048 --pie a metro
valoraltura = valoraltura * 0.3048 --pie a metro
end
end
retorno.altura = tostring(valoraltura) .." [[metro|m]]."
retorno.altura = tostring(valoraltura) .."&nbsp;[[metro|m]]."
end
end
if alturamaxima ~= nil then
if alturamaxima ~= nil then
Línea 437: Línea 437:
valoralturamaxima = valoralturamaxima * 0.3048 --pie a metro
valoralturamaxima = valoralturamaxima * 0.3048 --pie a metro
end
end
retorno.alturamaxima = tostring(valoralturamaxima) .." [[metro|m]]."
retorno.alturamaxima = tostring(valoralturamaxima) .."&nbsp;[[metro|m]]."
end
end

Revisión del 19:08 25 may 2020

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

local argumentos
local argumento={}
local Entidad
local ModuloFicha = require('Módulo:Ficha')
local ModuloWikidataFormatos = require('Módulo:Wikidata/Formatos')
local formatoURL           = ModuloWikidataFormatos.formatoURL
local sinEnlazar = {['enlace']='no', ['linkback']='sí'}
local sinLapiz = {}
local ModuloWikidata = require('Módulo:Wikidata')
local ModuloFormato = require('Módulo:Formato texto')
local ModuloPaginas = require('Módulo:Páginas')
local elementoTabla = require('Módulo:Tablas').elemento
local getPropiedadWikidata = ModuloWikidata.getPropiedad
local sinBandera  = require('Módulo:Bandera').sinBandera
local color = '#CDCDCD'

function obtenerColor()
	local colores = {
	['hotel'] = '#264796',
	['edificio militar'] = '#665D1D',
	['cuartel'] =  '#665D1D',
	['bar'] = '#BFFF00',
	['restaurante'] = '#BFFF00',
	['iglesia'] = '#B695C0',
	['hospital'] = 	'#CB1D11',
	}
	local tipoedificio = elementoTabla(Entidad,'claims','P31',1,'mainsnak','datavalue')
	tipoedificio = elementoTabla(tipoedificio,'value','id')
	local nombretipoedificio= mw.wikibase.getEntityObject(tipoedificio)
    nombretipoedificio = elementoTabla(nombretipoedificio,'labels','es','value')
    local uso =  argumento['tipo'] or argumento ['Tipo'] or argumento['uso'] or argumento['Uso'] or argumento ['usos'] or argumento['Usos'] or propiedad('P366')
    if uso == "militar" or uso == "Militar" then
    	return colores['edificio militar']
    	end
	return colores[nombretipoedificio] or '#CDCDCD'
end

function obtenerSuperficie()
		local superficie = elementoTabla(Entidad,'claims','P2046',1)
		if superficie == nil then
			return
		end
        local valoraltura = elementoTabla(superficie,'mainsnak','datavalue','value','amount')
        local unidadaltura = elementoTabla(superficie,'mainsnak','datavalue','value','unit')
        if unidadaltura == "https://www.wikidata.org/entity/Q857027" or "Q857027" then
      	   valoraltura = (valoraltura * 929.0304)/10^4
      	   end
      	return valoraltura  .."&nbsp;[[metro cuadrado|".. "m²]]"
end

function z.prueba(frame)    
	ModuloWikidata:setFrame(frame)
	Entidad   = mw.wikibase.getEntityObject(argumento['id']) or {}
	local tipoedificio = elementoTabla(Entidad,'claims','P31',1,'mainsnak','datavalue')
	tipoedificio = elementoTabla(tipoedificio,'value','id')
	--tipoedificio = elementoTabla(tipoedificio,'labels','es','value')
	--local retorno = ""
	 --for i, j in pairs(tipoedificio)
	  --do
	   --retorno = retorno .." "..i
	   --end
local retorno= mw.wikibase.getEntityObject(tipoedificio)
retorno = elementoTabla(retorno,'labels','es','value')
return retorno
end

function z.Ficha(frame)
	ModuloWikidata:setFrame(frame)
    argumento = obtenerArgumentosConValor(frame)	
    if argumento['wikidata'] == 'no' and (argumento['fecha de inauguración'] 
        or argumento['fecha de demolición']
        ) then
        obtenerDatosWikidata = false
        Entidad = nil
    else
        obtenerDatosWikidata = true
        -- Obtener los datos de la página donde se inserta la ficha de Wikidata.
        Entidad   = mw.wikibase.getEntityObject(argumento['id']) or {}
        end

	local pais = argumento['pais'] or argumento['país'] or propiedad('P17')
	local tipodivadministrativa = argumento['tipo_división_administrativa'] 
	local divadministrativa = argumento['división_administrativa']
	local imagen = argumento['imagen']  or argumento['Imagen'] or argumento['foto']
    local pieDeImagen

    if imagen then
        pieDeImagen = argumento['pie de imagen'] or argumento['pieimagen'] or
                      argumento['descripción'] or argumento['descripcion'] or
                      argumento['pie de foto'] or argumento['piedefoto'] or
                      argumento['textoimagen'] or argumento['TextoImagen'] or argumento['texto_imagen'] or
                      argumento['pie de foto']
    else
        imagen, pieDeImagen = obtenerImagenWikidata()
        
    end
	 nombre = argumento['nombre'] or argumento['Nombre'] or
         obtenerEtiquetaWikidata() or 
         ModuloPaginas.nombrePagina({desambiguar='sí'})
    nombrelocal = argumento['nombre local'] or argumento['Nombre local']
    if nombre and nombrelocal and nombre ~= nombrelocal then
              titulo = nombre .. '<br /><span style="font-size:smaller">' .. nombrelocal .. '</span>'
              else
               titulo = nombre
    end
    local color = obtenerColor()
    local estilotitulo = 'background-color:'..color.. '; font-style:normal'
    local estiloseccion = 'background-color:'..color
    local codigopostal = propiedad('P281') or argumento['código postal']
    local calle = obtenerCalle()
    local direccionpostal
    local evsigs = devolverelemensigs(Entidad)
    if evsigs ~= nil then
    local fechainicio = argumento['inicio'] or argumento['Inicio'] or evsigs['Q385378']['fechainicio']
    local fechafin = argumento['fin'] or argumento['Fin'] or evsigs['Q385378']['fechainicio']
    local primerapiedra = argumento['fecha primera piedra'] or argumento['Fecha primera piedra'] or evsigs[Q106863]
       else
       	local fechainicio = argumento['inicio'] or argumento['Inicio']
        local fechafin = argumento['fin'] or argumento['Fin']
        local primerapiedra = argumento['fecha primera piedra'] or argumento['Fecha primera piedra'] 
    end
    if codigopostal then 
    	direccionpostal = ModuloFormato.separadosPorComa({propiedad('P6375') or calle, codigopostal})
    	else
    		direccionpostal = propiedad('P6375') or calle or argumento['dirección'] or argumento['dirección postal']
    end
    local logotipo = argumento['logotipo'] or argumento['Logotipo'] or argumento['logo'] or argumento['Logotipo'] or propiedad('P154')
    if logotipo ~= nil then
    logotipo = '[[Archivo:'..logotipo..']]'
    end
	local Ficha = {
		 ['titulo'] = titulo,
		 imagen = imagen,
		 ['tamañoimagen'] = argumento['tamaño de imagen'] or argumento['tamaño'] or 
                          argumento['tamaño imagen'] or argumento['tamañoimagen'] or argumento['tamañodelaimagen'] or
                          argumento['tamaño de foto'] or 
                          '220px',
         pie = pieDeImagen,
         tipocabecera = 'edificio',
         estilotitulo = estilotitulo,
         estiloseccion = estiloseccion,
	     estiloetiqueta   = 'width:33%;',
	     {'',logotipo},
	     {tipo = "sección",
	        ['titulo'] = "Localización",
	        {'País', pais},
	        {tipodivadministrativa, divadministrativa},
            --{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})},
            {'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})},
            {'Localización',argumento['localización'] or 
            				 ModuloFormato.enVariasLineas({ModuloFormato.separadosPorComa({argumento['ciudad'], argumento['estado'], argumento['país']})}) or
            	             ModuloFormato.enVariasLineas({propiedad('P969'), ModuloFormato.separadosPorComa({propiedad('P131'),propiedad('P17')})}) },
            {'Dirección postal', direccionpostal},
            
           }, 
           {tipo = "sección",
            ['titulo'] = "Información general",
            {'Nombres anteriores', argumento['nombres anteriores'] or argumento['Nombres anteriores']},
            {'Otros nombres',argumento['otros nombres'] or argumento['Otros nombres'] or propiedad('P4970')},
            {'Organización', argumento['organización'] or argumento['Organización'] or propiedad('P749')},
            {'Propietario', argumento['dueño'] or argumento['Dueño'] or propiedad('P127')},
            {'Estado', argumento['estado'] or argumento['Estado']},
            {'Catalogación', argumento['catalogación'] or argumento['Catalogación']},
            {'Se conecta con', argumento['se conecta con'] or argumento['Se conecta con']},
            {'Cruza',argumento['cruza'] or argumento['Cruza']},
            {'Número de vanos', argumento['ojos'] or argumento['Ojos']},
            {'Ocupante', argumento['ocupante'] or argumento['Ocupante']},
            {'Usos', argumento['uso'] or argumento['Uso'] or propiedad('P366')},
            {'Inicio de obra', fechainicio},
            {'[[Coronación]]', argumento['coronación'] or argumento['Coronación']},
            {'Finalización de obra', fechafin},
            {'Fundación', argumento['fundación'] or argumento['Fundación'] or propiedad('P571')},
            {'Clausura', argumento['clausura'] or argumento['Clausura'] or propiedad('P3999')},
            {'Número de camas', argumento['camas'] or argumento['Camas'] or propiedad('P6801')},
            {'Número de télefono', argumento['telefono'] or argumento['Telefono'] or propiedad('P1329')},
            {'Emergencias', argumento['emergencias'] or argumento['Emergencias']},
            {'Afiliación', argumento['afiliación'] or argumento['Afiliación'] or propiedad('P1416')},
            {'Red', argumento['red'] or argumento['Red']},
            {'Clasificación', argumento['clasificación'] or argumento['Clasificación']},
            {'Especialidad', argumento['especialidad'] or argumento['Especialidad']},
            {'Financiamiento', argumento['financiamiento'] or argumento['Financiamiento']},
            {'Estilo', argumento['estilo'] or argumento['Estilo'] or propiedad('P149')},
            {'Arrendatario actual', argumento['arrendatarios'] or argumento['Arrendatarios']},
            {'Nombrado en honor a', argumento['nombrado en honor a'] or argumento['Nombrado en honor a'] or propiedad('P138')},
            {'Primera piedra', primerapiedra },
            {'Antena', argumento['antena'] or argumento['Antena']},
            {'Piso más alto', argumento['piso mas alto'] or argumento['Piso mas alto'] or propiedad('P1101')},
            },
            {tipo = "sección",
           	['titulo'] = "Altura",
           	{'Altura arquitéctonica', argumento['altura arquitectonica'] or argumento['Altura arquitectonica'] or argumento['altura'] or argumento['Altura'] or devolveraltura(Entidad).altura},
           	{'Altura máxima', argumento['altura maxima'] or argumento['Altura maxima'] or devolveraltura(Entidad).alturamaxima},
			},
		    {tipo="sección",
		    ['título']="Record de altura",
		    {argumento['record de altura'] or argumento['Record de altura']},
		    {'Predecesor', argumento['precedecesor'] or argumento['Predecesor']},
		    },
		    {tipo = "sección",
		     ['titulo'] = "Detalles técnicos",
		    ['Material'] = argumento['material'] or argumento['Material'] or obtenerMaterial(),
		    {'Superficie', argumento['superficie'] or argumento['Superficie'] or obtenerSuperficie()},
            {'Número de plantas', argumento['numero de plantas'] or argumento['Numero de plantas'] or propiedad('P1101')}, 
            {'Número de ascensores', argumento['numero de ascensores'] or argumento['Numero de ascensores'] or propiedad('P1301')}, 
		     },
		    {tipo = "sección",
		    ['titulo'] = 'Diseño y construcción',
		    {'Arquitecto', argumento['arquitecto'] or argumento['Arquitecto'] or propiedad('P84')},
		    {'Ingeniero', argumento['ingeniero estructural'] or argumento['Ingeniero de servicios']},
		    {'Ingeniero de servicios', argumento['ingeniero de servicios'] or argumento['Ingeniero de servicios']},
		    {'Ingeniero civil', argumento['ingeniero civil'] or argumento['Ingeniero civil']},
		    {'Otros', argumento['otros'] or argumento['Otros']},
		    {'Ingeniero estructural', argumento['ingeniero estructural'] or argumento['Ingeniero estructural'] or propiedad('P631')},
		    {'Autor', argumento['autor'] or argumento['Autor']},
		    {'Contratista', argumento['contratista'] or argumento['Contratista']},
		    {'Viviendas', argumento['viviendas'] or argumento['Viviendas']},
		    {'Conocido por', argumento['conocido por'] or argumento['Conocido por']},
		     },
		    {tipo = "sección",
		    ['titulo'] = "Remodelación",
		    {'Ingeniero civil', argumento['rem ingeniero civil'] or argumento['Rem ingeniero civil']},
		    {'Otros', argumento['rem otros'] or argumento['Rem otros']},
		    {'Ingeniero estructural', argumento['rem ingeniero estructural'] or argumento['Rem ingeniero estructural']},
		    {'Contratista', argumento['contratista'] or argumento['Contratista']},
		    {'Premios', argumento['rem premios'] or argumento['rem premios']},
		    	},
		    {tipo = "sección",
		    ["titulo"] = "Otra información",
		    --Bar o restaurante
		    {"N.º de asientos", argumento["nro de asientos"] or argumento["Nro de asientos"] or propiedad("P1083")},
		    {"N.º de tiendas", argumento['nro de tiendas'] or argumento['Nro de tiendas'] or propiedad()},
		    --Hotel
		    {"N.º de habitaciones", argumento["nro de habitaciones"] or argumento["Nro de habitaciones"]},
		    {"N.º de suites", argumento["nro de suites"] or argumento["Nro de suites"]},
		    {"N.º de restaurantes", argumento["nro de restaurantes"] or argumento["Nro de restaurantes"]},
		    {"N.º de bares", argumento["nro de bares"] or argumento["Nro de bares"]},
		    {"Estrellas", argumento["estrellas"] or argumento["Estrellas"]},
		    --Edificios religiosos
		    {"Culto", argumento["culto"] or argumento["Culto"] or propiedad("P140")},
		    {"Diócesis", argumento["diocesis"] or argumento["Diocesis"] or propiedad("P708")},
		    {"Advocación", argumento["advocacion"] or argumento["Advocacion"] or propiedad("P825")},
		    --Edificios militares
		    {"Controlador", argumento["controlado por"] or argumento["Controlado por"] },
		    {"Guarnición", argumento["guarnición"] or argumento["Guarnición"]},
		    {"Comandante actual", argumento["comandante actual"] or argumento["Comandante actual"]},
		    {"Ocupantes", argumento["ocupantes"] or argumento["Ocupantes"] or propiedad("P466")},
		    {"Batallas", argumento["batallas"] or argumento["Batallas"]},
		    {"Eventos", argumento["eventos"] or argumento["Eventos"]},
		    {"Período", argumento["periodo"] or argumento["Periodo"]},
		    },
		    {tipo = "sección",
		    ['titulo'] = "Sitio web",
		     {'Sitio web', argumento['sitio web'] or argumento['Sitio web'] or propiedad('P856')},
		     },
		    {tipo = "sección",
		    ['titulo'] = "Referencias",	
		     {argumento["premios"] or argumento["Premios"] or propiedad("P166")},
		     {argumento['referencias'] or argumento['Referencias']},
		     }
	}
return ModuloFicha.infobox(Ficha)
end

function obtenerImagenWikidata()
    local imagen, valorImagen, piesDeImagen, k, pieDeImagen
    if not Entidad then
        return
    end
   local imagen = elementoTabla(Entidad, 'claims','P18',1)

    if not imagen then
        return
    end

    -- Obtener el nombre de la imagen
    valorImagen =  elementoTabla(imagen, 'mainsnak','datavalue','value') -- Por ejemplo, imagen.jpg

    -- Obtener los pies de la imagen, uno por idioma
    piesDeImagen =  elementoTabla(imagen, 'qualifiers','P2096')

    -- Encontrar el pie en español (aquel con datavalue.value.language = "es")
    if piesDeImagen then
        for k,pieDeImagen in pairs(piesDeImagen) do
            if pieDeImagen.datavalue.value.language=='es' then
                -- devolver la imagen y el texto del pie de la imagen en español
                return valorImagen, pieDeImagen.datavalue.value.text
            end
        end
    end

    -- Si no hay pie de imagen en español comprueba si hay fecha especificada para la imagen
    piesDeImagen = elementoTabla(imagen, 'qualifiers', 'P585')

    if piesDeImagen and piesDeImagen[1] then
        return valorImagen, nombre .. ' en ' .. require('Módulo:Wikidata/Fecha').FormateaFechaHora(piesDeImagen[1].datavalue.value, {['formatoFecha']='año',['enlace']='no'})
    end

    -- Sin pie de imagen en español
    return valorImagen
end

function obtenerArgumentosConValor(frame)
    local original

    if frame == mw.getCurrentFrame() then
        original = frame:getParent().args
    else
        original = frame.args or frame
    end
    
    local copia= {}

    for k,v in pairs(original) do
        if v == 'no' and k ~= 'wikidata' then
            --Si vale "no" dejar en blanco el argumento para no obtener el valor
            --de Wikidata
            copia[k] = ''
        elseif v~='' then
            --Si está en blanco dejarlo a nil para obtener en su caso el valor de 
            -- Wikidata si no hay otro argumento con un nombre similar
            copia[k] = original[k]
        end
    end
    
    return copia
end

function obtenerEtiquetaWikidata()
    if Entidad and Entidad.labels and Entidad.labels.es then
        return Entidad.labels.es.value
    end
end

function propiedad(idPropiedad,opciones)
    if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then
    	if not opciones then
    		opciones = {}
    	end
    	opciones['propiedad'] = idPropiedad

        valorPropiedad = ModuloWikidata.getPropiedad(opciones,Entidad.claims[idPropiedad])

        if valorPropiedad and valorPropiedad:match('%[%[:d:') then
          algunaPropiedadEnlazaWikidata = true
        end

    	return valorPropiedad
    end
end

--Devuelve la fecha de inicio y fin de la construcción
function obtenerfechasObra(unaTabla)
		--local evsig = elementoTabla(Entidad, 'claims','P793',1)
        --local construccion = elementoTabla(Entidad,'claims','P793',1)
        
        local precision = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','precision')
        if precision ~= 11 then
        	return
       	end
       	
        local fechainicio = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','time')
        local anyoinicio = tonumber(fechainicio:sub(2,5))
        local mesinicio = tonumber(fechainicio:sub(7,8))
        local diainicio = tonumber(fechainicio:sub(10,11))
        local fechafin = elementoTabla(unaTabla,'qualifiers','P582',1,'datavalue','value','time')
        local anyofin = tonumber(fechafin:sub(2,5))
        local mesfin = tonumber(fechafin:sub(7,8))
        local diafin = tonumber(fechafin:sub(10,11))
        local meses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"}
        local retorno = {}
        retorno['fechainicio'] = diainicio ..' de '..meses[mesinicio]..' de '..anyoinicio
        retorno['fechafin'] = diafin..' de '..meses[mesfin]..' de ' ..anyofin
        return retorno
 end
--Devuelve la fecha ceremonia de inauguración 
function devolvercereminaug(unaTabla)
	      
        local precision = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','precision')
        if precision ~= 11 then
        	return
       	end
       	
        local fecha = elementoTabla(unaTabla,'qualifiers','P585',1,'datavalue','value','time')
        local anyo = tonumber(fechainicio:sub(2,5))
        local mes = tonumber(fechainicio:sub(7,8))
        local meses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"}
        local dia = tonumber(fechainicio:sub(10,11))
        local fecha = elementoTabla(unaTabla,'qualifiers','P582',1,'datavalue','value','time')
        local retorno = dia .."de" ..meses[mes] .. "de" ..anyo
        return retorno
end

--Devuelve los campos de elementos significativos de Wikidata
function devolverelemensigs(unaEntidad)
	local evsigs = elementoTabla(unaEntidad,'claims','P793')
	if evsigs == nil then
		return
	end
    local elementos = {}
    for i, j in pairs(evsigs)
          do
          valorQ =  elementoTabla(j,'mainsnak','datavalue','value','id')
          if valorQ == 'Q385378' then
          	 elementos[valorQ] = obtenerfechasObra(j)
          end
      	  if valorQ == 'Q3010369' then
      	  	 elementos[valorQ] = devolvercereminaug(j)
      	  end
  	  	  if valorQ == 'Q744913' then
  	  	  	  elementos[valorQ]= elementoTabla(construccion,'qualifiers','P805',1,'datavalue','value','id')
  	  	  end
    	  if valorQ == 'Q1068633' then
    	  	 elementos[valorQ]= elementoTabla(construccion,'qualifiers','P585',1,'datavalue','value','time')
    	  	end
          end 
return elementos
end
--Devuelve la altura en metros
function devolveraltura(unaTabla)
		local altura = elementoTabla(unaTabla,'claims','P2048',1)
      	local valoraltura = elementoTabla(altura,'mainsnak','datavalue','value','amount')
      	local alturamaxima =  elementoTabla(unaTabla,'claims','P2048',2)
      	local valoralturamaxima = elementoTabla(alturamaxima,'mainsnak','datavalue','value','amount')
      	local retorno = {}
      	if altura ~= nil then
        	local unidadaltura = elementoTabla(altura,'mainsnak','datavalue','value','unit')
         	if unidadaltura == "http://www.wikidata.org/entity/Q3710" or unidadaltura == "Q3710" then
      	  valoraltura = valoraltura * 0.3048 --pie a metro
            end
       	 retorno.altura = tostring(valoraltura) .."&nbsp;[[metro|m]]."
      	end
      	if alturamaxima ~= nil then
      		local unidadalturamaxima = elementoTabla(alturamaxima,'mainsnak','datavalue','value','unit')
         	if unidadalturamaxima == "http://www.wikidata.org/entity/Q3710" or unidadaltura == "Q3710" then
      	       valoralturamaxima = valoralturamaxima * 0.3048 --pie a metro
         	end
         retorno.alturamaxima = tostring(valoralturamaxima) .."&nbsp;[[metro|m]]."
   	    end
   	    
   	    return retorno 
end
  	
 function obtenerCalle()
		Entidad   = mw.wikibase.getEntityObject(argumento['id']) or {}
        local calles = elementoTabla(Entidad,'claims','P669')
        local retorno = ''
        if calles ~= nil then
            for i, j in pairs(calles)
        	do
             local calle = elementoTabla(j, 'mainsnak','datavalue','value','id')
             local nrocalle = elementoTabla(Entidad,'claims','P669',1,'qualifiers','P670',1,'datavalue')
             nrocalle = elementoTabla(nrocalle,'value')
             local nombrecalle = mw.wikibase.getEntityObject(calle)
             nombrecalle = elementoTabla(nombrecalle,'labels','es','value')
             if nrocalle ~= nil then
               retorno = retorno..'[['..nombrecalle..']] Nº '..nrocalle ..' y'..' '
            else
               retorno = retorno..'[['..nombrecalle..']]' ..' y'..' '	
             end
             end
        retorno = string.sub(retorno, 0, -3)
        end
        return retorno
        end

function obtenerMaterial()
	 Entidad   = mw.wikibase.getEntityObject(argumento['id']) or {}
     materiales = elementoTabla(Entidad,'claims','P186')
     local material = ""
     if materiales ~= nil then
     local auxQ, aux 
      for i,j in pairs(materiales)
        do
        	auxQ = elementoTabla(j, 'mainsnak','datavalue','value','id')
        	aux = mw.wikibase.getEntityObject(auxQ) or {}
        	material = material ..'[['..elementoTabla(aux,'labels','es','value')..']]'..'<br>'
        end
    end
    return material
end
      	

return z