﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc
268	Filtrado de las variables usando las etiquetas	Pedro Gea	livanr68	"En el tique #243 se puso de manifiesto la necesidad de poder seleccionar un conjunto de variables de acuerdo a sus atributos, con especial hincapié en las etiquetas (tags).

Desde el punto de vista del desarrollo del núcleo, no parece necesario implementar métodos de selección especiales ya que se pueden seleccionar mediante el {{{Select}}} de TOL.

A continuación pongo un ejemplo de cómo se filtrarían variables de acuerdo a sus etiquetas:

Sea el conjunto completo de variables (o una selección previa):
{{{
Set variables; // SetOf{@MMS.Variable}
}}}
una selección de ellas verificando que:
 * contenga alguna de las etiquetas: ""clima"", ""ventas"" o ""economía""
 * no contenga la etiqueta: ""old""
se haría:
{{{
Set Select(variables, Real (@MMS.Variable variable) {
  Set tags = variable::GetTags(?);
  Real And(
    Card(tags * [[""clima"", ""ventas"", ""economía""]]), // la intersección no sea nula
    !Card(tags * [[""old""]])                         // la intersección sea nula
  )
})
}}}

Está claro que podría hacerse una función como la que se propone en #243, pero la sintaxis para obtener la selección anterior habría que crear un lenguaje de especificacion de opciones nuevo que no aportaría gran cosa y que podría tener un aspecto como el siguiente:
{{{
Set MMS::GetVariables_FilterTags([[
  @MMS.TagsFilter(""contains"", ""clima""),
  @MMS.TagsFilter(""contains"", ""ventas""),
  @MMS.TagsFilter(""contains"", ""economía""),
  @MMS.TagsFilter(""doesn't contain"", ""old"")
]])
}}}
Además casi sin duda este lenguaje de filtrado estaría más limitado que el propio {{{Select}}}. Estoy pensando en cuestiones como: distinguir mayúsculas y minúsculas, considerar acentos, o simplemente concatenar casuisticas del tipo: si se contiene esto que no contenga aquello o que contenga las dos a la vez, etc.

Sin embargo, quizá desde el desarrollo de la interfaz de usuario, aparecen necesidades específicas, según estén diseñados sus filtros.

Abro este tique para recoger la posible necesidad de métodos que ayuden a filtrar las variables para la GUI, si fuera necesario."	doubt	closed	major	GUI 0.5	GUI	duplicate		
