Opened 15 years ago
Closed 15 years ago
#268 closed doubt (duplicate)
Filtrado de las variables usando las etiquetas
Reported by: | Pedro Gea | Owned by: | livanr68 |
---|---|---|---|
Priority: | major | Milestone: | GUI 0.5 |
Component: | GUI | Keywords: | |
Cc: |
Description
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.
El tratamiento de filtros se ha pasado a la versión 0.6, aunque por supuesto cuando se implementen en esa versión se adaptará a la 0.5 lo que corresponda.
Cerramos este ticket pues ya existe uno que aborda el tema, ver el #23