¿Cómo buscar sacrificios de intercambio en una base de datos de ajedrez?

Estoy buscando una forma dentro de cualquiera de los paquetes de ajedrez comunes para buscar una maniobra específica: ¿la torre toma alfil protegido (es decir, un sacrificio de intercambio)? He oído hablar de CQL , pero nunca lo usé, por lo que sería curioso si admite algo como...