<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://guanches.org/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AWikidata%2FFormato_lugar</id>
	<title>Módulo:Wikidata/Formato lugar - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://guanches.org/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AWikidata%2FFormato_lugar"/>
	<link rel="alternate" type="text/html" href="https://guanches.org/index.php?title=M%C3%B3dulo:Wikidata/Formato_lugar&amp;action=history"/>
	<updated>2026-04-17T10:29:24Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://guanches.org/index.php?title=M%C3%B3dulo:Wikidata/Formato_lugar&amp;diff=218567&amp;oldid=prev</id>
		<title>Atamankad: Página creada con «local p = {}  local separadosPorComa           = require(&#039;Módulo:Formato texto&#039;).separadosPorComa local moduloTablas               = require(&#039;Módulo:Tablas&#039;) 	local elementoTabla          = moduloTablas.elemento local moduloWikidataFormatos     = require(&#039;Módulo:Wikidata/Formatos&#039;) 	local enlazar                = moduloWikidataFormatos.enlazar 	local obtenerDatos           = moduloWikidataFormatos.obtenerDatos local Date                       = require(&#039;Módulo:Dat…»</title>
		<link rel="alternate" type="text/html" href="https://guanches.org/index.php?title=M%C3%B3dulo:Wikidata/Formato_lugar&amp;diff=218567&amp;oldid=prev"/>
		<updated>2026-02-14T16:09:13Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «local p = {}  local separadosPorComa           = require(&amp;#039;Módulo:Formato texto&amp;#039;).separadosPorComa local moduloTablas               = require(&amp;#039;Módulo:Tablas&amp;#039;) 	local elementoTabla          = moduloTablas.elemento local moduloWikidataFormatos     = require(&amp;#039;Módulo:Wikidata/Formatos&amp;#039;) 	local enlazar                = moduloWikidataFormatos.enlazar 	local obtenerDatos           = moduloWikidataFormatos.obtenerDatos local Date                       = require(&amp;#039;Módulo:Dat…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local separadosPorComa           = require(&amp;#039;Módulo:Formato texto&amp;#039;).separadosPorComa&lt;br /&gt;
local moduloTablas               = require(&amp;#039;Módulo:Tablas&amp;#039;)&lt;br /&gt;
	local elementoTabla          = moduloTablas.elemento&lt;br /&gt;
local moduloWikidataFormatos     = require(&amp;#039;Módulo:Wikidata/Formatos&amp;#039;)&lt;br /&gt;
	local enlazar                = moduloWikidataFormatos.enlazar&lt;br /&gt;
	local obtenerDatos           = moduloWikidataFormatos.obtenerDatos&lt;br /&gt;
local Date                       = require(&amp;#039;Módulo:Date&amp;#039;)._Date&lt;br /&gt;
&lt;br /&gt;
function p.formatoLugar(valor, opciones, frame, calificativos)&lt;br /&gt;
	-- Función que devuelve algo de la forma Lugar, entidad territorial administrativa, país&lt;br /&gt;
	&lt;br /&gt;
	function obtenerOcurrenciaAFecha(tabla, fecha)&lt;br /&gt;
		if not tabla or not fecha then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local fechaInicio, fechaFin&lt;br /&gt;
		fecha = Date(fecha)&lt;br /&gt;
		&lt;br /&gt;
		--if true then return require(&amp;#039;Módulo:Tablas&amp;#039;).tostring(tabla) end&lt;br /&gt;
		--&lt;br /&gt;
		for k,v in pairs(tabla) do&lt;br /&gt;
			fechaInicio = elementoTabla(v,&amp;#039;qualifiers&amp;#039;,&amp;#039;P580&amp;#039;,1,&amp;#039;datavalue&amp;#039;,&amp;#039;value&amp;#039;,&amp;#039;time&amp;#039;)&lt;br /&gt;
			fechaFin    = elementoTabla(v,&amp;#039;qualifiers&amp;#039;,&amp;#039;P582&amp;#039;,1,&amp;#039;datavalue&amp;#039;,&amp;#039;value&amp;#039;,&amp;#039;time&amp;#039;)&lt;br /&gt;
			fechaInicio = Date(fechaInicio)&lt;br /&gt;
			fechaFin    = Date(fechaFin)&lt;br /&gt;
			&lt;br /&gt;
			if fechaInicio and fechaFin then&lt;br /&gt;
				if  fecha &amp;gt;= fechaInicio and&lt;br /&gt;
					fecha &amp;lt;= fechaFin then&lt;br /&gt;
						return k&lt;br /&gt;
				end&lt;br /&gt;
			elseif fechaInicio then&lt;br /&gt;
				if  fecha &amp;gt;= fechaInicio then&lt;br /&gt;
						return k&lt;br /&gt;
				end&lt;br /&gt;
			elseif fechaFin then&lt;br /&gt;
				if  fecha &amp;lt;= fechaFin then&lt;br /&gt;
						return k&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
			&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	function obtenerOcurrenciaRangoPreferente(tabla)&lt;br /&gt;
		if not tabla then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		for k,v in pairs(tabla) do&lt;br /&gt;
			if v.rank == &amp;#039;preferred&amp;#039; then&lt;br /&gt;
				return k&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local idLugar, enlaceLugar, etiquetaLugar, lugarEnlazado&lt;br /&gt;
	local entidadTerritorialAdministrativaEnlazada	&lt;br /&gt;
	local idPais, enlacePais, etiquetaPais, paisEnlazado&lt;br /&gt;
	local fecha&lt;br /&gt;
	&lt;br /&gt;
	-- Validar que está informado el id del lugar.&lt;br /&gt;
	if not valor or not valor[&amp;#039;numeric-id&amp;#039;] then &lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if opciones then&lt;br /&gt;
		fecha = opciones.fecha&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Obtener primero la entidad territorial administrativa y el país de los calificativos si es posible&lt;br /&gt;
	-- No se obtiene primero el lugar, que sería lo más lógico, porque se obtendrá de forma diferente según&lt;br /&gt;
	-- estén o no informados los calificativos&lt;br /&gt;
	&lt;br /&gt;
	if calificativos then&lt;br /&gt;
		entidadTerritorialAdministrativaEnlazada = enlazar(obtenerDatos(elementoTabla(calificativos,&amp;#039;P131&amp;#039;,1,&amp;#039;datavalue&amp;#039;,&amp;#039;value&amp;#039;)))&lt;br /&gt;
		enlacePais, etiquetaPais, idPais         = obtenerDatos(elementoTabla(calificativos,&amp;#039;P17&amp;#039;,1,&amp;#039;datavalue&amp;#039;,&amp;#039;value&amp;#039;))&lt;br /&gt;
		paisEnlazado                             = enlazar(enlacePais, etiquetaPais, idPais)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if paisEnlazado then&lt;br /&gt;
		enlaceLugar, etiquetaLugar, idLugar = obtenerDatos(valor)&lt;br /&gt;
		lugarEnlazado = enlazar(enlaceLugar, etiquetaLugar, idLugar)&lt;br /&gt;
	else&lt;br /&gt;
	 -- Si el lugar no tiene el calificativo de país obtenerlo de la propiedad país de la &lt;br /&gt;
	 -- entidad de Wikidata del lugar.&lt;br /&gt;
	 &lt;br /&gt;
	 -- De momento no se obtiene la entidad administrativa (tiene unas barbaridades...)&lt;br /&gt;
		local entidad&lt;br /&gt;
		&lt;br /&gt;
		idLugar = &amp;#039;Q&amp;#039; .. valor[&amp;#039;numeric-id&amp;#039;]&lt;br /&gt;
		entidad = mw.wikibase.getEntityObject(idLugar)&lt;br /&gt;
		&lt;br /&gt;
		if not entidad then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		enlaceLugar   = elementoTabla(entidad,&amp;#039;sitelinks&amp;#039;,&amp;#039;eswiki&amp;#039;,&amp;#039;title&amp;#039;)&lt;br /&gt;
		etiquetaLugar = elementoTabla(entidad,&amp;#039;labels&amp;#039;,&amp;#039;es&amp;#039;,&amp;#039;value&amp;#039;)&lt;br /&gt;
		lugarEnlazado = enlazar(enlaceLugar, etiquetaLugar, idLugar, opciones)&lt;br /&gt;
		--&lt;br /&gt;
		-- Obtener el país del lugar.&lt;br /&gt;
		--&lt;br /&gt;
		local paisesLugar = elementoTabla(entidad,&amp;#039;claims&amp;#039;,&amp;#039;P17&amp;#039;)&lt;br /&gt;
		&lt;br /&gt;
		if paisesLugar then&lt;br /&gt;
			-- Primero se intenta con el país en la fecha de las opciones, luego&lt;br /&gt;
			-- el país con rango máximo (el actual) y luego el primer país.&lt;br /&gt;
			local ocurrenciaPais = obtenerOcurrenciaAFecha(paisesLugar, fecha) or&lt;br /&gt;
			obtenerOcurrenciaRangoPreferente(paisesLugar) or &lt;br /&gt;
			1&lt;br /&gt;
&lt;br /&gt;
			enlacePais, etiquetaPais, idPais = obtenerDatos(elementoTabla(paisesLugar,ocurrenciaPais,&amp;#039;mainsnak&amp;#039;,&amp;#039;datavalue&amp;#039;,&amp;#039;value&amp;#039;))&lt;br /&gt;
			paisEnlazado  = enlazar(enlacePais, etiquetaPais, idPais)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if idLugar == idPais then -- Si el lugar es un país, por ejemplo, estados Unidos, en Wikidata tiene la propiedad país informada con Estados Unidos.&lt;br /&gt;
		return lugarEnlazado&lt;br /&gt;
	elseif lugarEnlazado and entidadTerritorialAdministrativaEnlazada and paisEnlazado then&lt;br /&gt;
		return lugarEnlazado .. &amp;#039; (&amp;#039; .. entidadTerritorialAdministrativaEnlazada ..  &amp;#039;, &amp;#039; .. paisEnlazado .. &amp;#039;)&amp;#039;&lt;br /&gt;
	elseif lugarEnlazado and entidadTerritorialAdministrativaEnlazada then&lt;br /&gt;
		return lugarEnlazado .. &amp;#039; (&amp;#039; .. entidadTerritorialAdministrativaEnlazada .. &amp;#039;)&amp;#039;&lt;br /&gt;
	elseif lugarEnlazado and paisEnlazado then&lt;br /&gt;
		return lugarEnlazado .. &amp;#039; (&amp;#039; .. paisEnlazado .. &amp;#039;)&amp;#039;		&lt;br /&gt;
	elseif entidadTerritorialAdministrativaEnlazada and paisEnlazado then&lt;br /&gt;
		return entidadTerritorialAdministrativaEnlazada .. &amp;#039; (&amp;#039; .. paisEnlazado .. &amp;#039;)&amp;#039;	&lt;br /&gt;
	else&lt;br /&gt;
		return lugarEnlazado or entidadTerritorialAdministrativaEnlazada or paisEnlazado	&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--*****************************************************************************&lt;br /&gt;
-- Alias de formatos para utilizar en la plantilla propiedad&lt;br /&gt;
--*****************************************************************************&lt;br /&gt;
p[&amp;#039;lugar&amp;#039;]     = p[&amp;#039;formatoLugar&amp;#039;]&lt;br /&gt;
	&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Atamankad</name></author>
	</entry>
</feed>