CQL: The Chess Query Language (version 6.0 beta 3)
What is CQL?Chess Query Language (CQL) searches for user-defined patterns and themes in chess games and studies.
To use CQL
- first, define the pattern you are looking for in the CQL language;
- second, run
cqlspecifying that pattern.
Quick intro: mirror matesSuppose the pattern you are looking for is mirror mates, where the mated king is surrounded by empty squares:
(found from CQL file: mirrormate.cql)
You can find these by running
cql -i sample.pgn -cql "btm mate _ attackedby k == 8"
sample.pgn is the file of games to search. The pattern specifying mirror mate
is in the quoted string following
-cql option. (Usually the pattern is in a separate file.)
The meaning of the terms in the pattern are:
btmmeans black to move;
_means empty square;
attackedbymeans attacked by.
kis the black king.
_ attacked by kis the set of empty squares adjacent to the black king.
_ attacked by k == 8means this set has 8 squares in it
Click on the examples tab in the sidebar for more examples.
DownloadsCQL may be downloaded here. Questions or comments about CQL should be directed to
costeffat the domain
VersionThe current version of CQL is CQL 6.0 (beta 3). CQL 5.2, the previous major release, is here.