close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

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.

Change History (1)

comment:1 Changed 15 years ago by livanr68

Resolution: duplicate
Status: newclosed

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

Note: See TracTickets for help on using tickets.