Gestor de base de datos de partidas de ajedrez IV
Esta es una serie de artículos dedicados al programa ChessPosDB, un gestor de base de datos de partidas de ajedrez con un motor de búsqueda muy potente. Podéis descargar el programa usando este enlace. Si queréis empezar desde el principio, en este enlace podéis acceder al primer artículo de esta serie. En el presente artículo voy a terminar de explicar la construcción de filtros de búsqueda mostrando los filtros de partida, que pueden estar compuestos de varios filtros de movimiento o posición que ya hemos visto en entradas anteriores.
Filtros de partida
A diferencia de los filtros de movimiento/posición, que buscan en la base de datos una jugada o una posición determinada, independientemente de la partida en la que aparezca, los filtros de partida buscan partidas en función de condiciones como los nombres de los jugadores, el resultado final, o una serie de movimientos y posiciones en un orden determinado, como puede ser por ejemplo una apertura.
Los filtros de partida se construyen usando el mismo interfaz que los de movimiento, incluyendo la posibilidad de construir filtros O y filtros Y para agrupar varias condiciones. Para acceder al editor usaremos la opción Editor de filtros de partida del menú Base de datos:
Al igual que sucede con los filtros de movimiento/posición, tenemos una herramienta con una lista desplegable en la que podemos seleccionar los diferentes tipos de filtro a añadir:
Filtro de estadística de partida
Con este filtro podemos buscar partidas con un cierto valor en el recuento de algunos eventos. Actualmente solo existe la cuenta de jaques producidos durante la partida, aunque en el futuro se pueden añadir otro tipo de recuentos, sin más que calcularlos en la base de datos.
Pulsando el botón Editar se puede seleccionar uno de los recuentos en el cuadro de diálogo:
Por lo demás, la configuración es la misma que para los filtros de estadística de posición.
Filtro de etiqueta de partida
Las partidas se pueden etiquetar con cualquier texto que las describa de alguna manera, como los nombres de los jugadores, el resultado, el lugar donde se ha jugado, etc. Con este filtro podemos seleccionar partidas según el texto de una de estas etiquetas. Se puede usar un filtro compuesto (Y u O) para combinar varias de estas etiquetas, por ejemplo: Blancas, Karpov; Negras, Kasparov; Resultado, 1-0:
Al pulsar el botón Editar, se mostrará el cuadro de diálogo que permite configurar este filtro:
Estas etiquetas pueden haberse creado al integrar los archivos PGN con las partidas, o bien se pueden crear usando el editor de partidas de este mismo programa. Todas ellas contienen texto, por lo que los operadores que podemos utilizar son diferentes a los usados con valores numéricos:
Los patrones de texto permiten especificar expresiones regulares complejas, si no queremos complicarnos demasiado, podemos buscar solo parte del texto usando los operadores Contiene o No contiene. Es probable que no todas las etiquetas contengan el mismo texto para especificar los mismos nombres, por lo que, en general, estos operadores son preferibles al operador Igual. Una vez seleccionado el operador, escribiremos el texto a buscar o el patrón de expresión regular en el cuadro de texto Valor y pulsaremos el botón OK.
Filtro de información de partida
Este filtro permite combinar varias de las principales etiquetas estándar que contienen todas las partidas en formato PGN en una misma operación.
Pulsando el botón Editar se mostrará el cuadro de diálogo de configuración:
Para cada etiqueta, existe una lista desplegable con los operadores a aplicar, un cuadro de texto para escribir el valor y un botón con un aspa roja que permite eliminar la configuración. Solo se tendrán en cuenta las etiquetas para las que hayamos proporcionado algún valor, y solo se seleccionarán las partidas que cumplan todas las condiciones. La etiqueta Blancas/Negras permite especificar el nombre de un jugador independientemente de que juegue con blancas o negras. Todas las etiquetas admiten valores alfanuméricos, excepto Movimientos y Jugadas, que son valores numéricos, ya que no se trata realmente de etiquetas, con el recuento de las jugadas (un movimiento de ambos jugadores) o de los movimientos totales.
Filtro de serie de movimientos o posiciones
Con este filtro, combinado con los filtros Y o filtros O, podemos configurar una serie de movimientos o de posiciones para especificar, por ejemplo, las primeras jugadas de una determinada apertura. También se pueden usar para buscar partidas en las que se producen una serie de combinaciones en un orden determinado.
Antes de poder configurar este filtro, deberemos haber creado algunos filtros de movimiento o de posición, o haber abierto un fichero con una colección de filtros, como veremos en el siguiente apartado, yo he creado como ejemplo un par de filtros de movimiento sencillo: una dama captura una torre y una dama captura una dama:
Los operadores que se aplican aquí se refieren al número de orden del movimiento o posición dentro de la partida. El primer movimiento de las blancas es el movimiento 1, el primero de las negras es el movimiento 2, y así sucesivamente. Las posiciones se numeran con el número del movimiento que las ha producido:
Aparte de los operadores habituales, como Igual o Mayor que, existen unos operadores específicos para este filtro:
- Primero: indicamos que este movimiento debe ser el primero de una serie, independientemente de en qué punto de la partida se realice. Para este operador no hay que poner ningún Valor en el cuadro de texto.
- Primero +: El valor que indiquemos en el cuadro de texto será relativo a la posición del movimiento o posición configurada con el operador anterior. Si el valor es 1, por ejemplo, deberá ser el inmediatamente siguiente al primero.
- Posterior: El movimiento o posición deberá ser posterior al primero, sin importar a qué distancia se encuentren dentro de la partida. Para este operador no es necesario indicar ningún valor.
- Entre los siguientes…: El valor que indiquemos indicará la distancia máxima que debe tener este movimiento o posición con respecto al primero.
En la imagen se puede ver un filtro Y con dos movimientos: primero una dama captura a una torre y, en los siguientes tres movimientos como mucho, una dama captura a la otra. En este caso no se ha especificado el color, por lo que cualquier combinación es válida:
Colecciones de filtros
El programa no sería de mucha utilidad si hubiera que volver a construir los filtros cada vez que se quiere realizar una consulta. Existe la posibilidad de guardar colecciones de filtros en archivos XML, cada una de las cuales puede contener tanto filtros de movimiento como de partida. Las colecciones de filtros se pueden ir ampliando añadiendo nuevos filtros, y construir nuevos filtros de partida usando los filtros de movimiento/posición de un archivo previamente creado.
En el editor de filtro, tanto de partida como de movimiento, podemos guardar el filtro creado en la colección actual usando los botones de la barra de herramientas. Si todavía no hemos creado ninguna colección, se creará una vacía al guardar por primera vez un filtro:
En primer lugar, hay que escribir un nombre para el filtro en el cuadro de texto correspondiente para poder identificarlo más adelante. También se puede escribir una descripción con un texto más largo. A continuación, se debe pulsar el botón que está a la derecha del cuadro de texto Descripción para añadirlo a la colección de filtros o actualizarlo, si lo estamos modificando. El siguiente botón añade una nueva copia del filtro, lo que puede resultar de utilidad si estamos creando varios filtros con pequeñas diferencias. El último botón es para limpiar el editor y empezar a crear un nuevo filtro.
La colección de filtros tiene su propia ventana, que podemos seleccionar, por ejemplo, desde el menú Ventana:
En los cuadros de texto Nombre y Descripción podemos cambiar el nombre y la descripción del elemento seleccionado en el árbol. El primer nivel es la propia colección de filtros, el segundo es para cada uno de los filtros, y el tercero es para los elementos que componen cada filtro.
Pulsando el primer botón a la izquierda del cuadro de texto Descripción, el filtro seleccionado se abrirá en el editor de filtros, con el siguiente botón se eliminará el filtro. En caso de que el elemento seleccionado no sea un filtro, estos botones estarán deshabilitados.
En el menú Archivo se encuentran las opciones para guardar y abrir estos archivos de colecciones de filtros:
Las opciones para guardar solo están presentes si está seleccionada la ventana de colección de filtros, las opciones para crear o abrir una colección aparecen siempre en el menú.
Con esto terminamos la parte dedicada a la creación de filtros. En el próximo artículo explicaré cómo realizar consultas en la base de datos aplicando estos filtros.
¡Hasta la próxima, gracias por leer!