Difference between revisions of "Chess Query Language"

From Chessprogramming wiki
Jump to: navigation, search
Line 41: Line 41:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=60090 Chess Query Language] by Giovanni Lavorgna, [[CCC]], May 07, 2016
 
* [http://www.talkchess.com/forum/viewtopic.php?t=60090 Chess Query Language] by Giovanni Lavorgna, [[CCC]], May 07, 2016
 
* [http://www.talkchess.com/forum/viewtopic.php?t=65815 Scid vs PC with CQL , build issue] by [[Steven Atkinson]], [[CCC]], November 25, 2017 » [[Scid vs. PC]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=65815 Scid vs PC with CQL , build issue] by [[Steven Atkinson]], [[CCC]], November 25, 2017 » [[Scid vs. PC]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=66562 Scid vs PC CQL 5.2 feature] by [[Steven Atkinson]], [[CCC]], February 11, 2018 » [[Scid vs. PC]]
  
 
=External Links=  
 
=External Links=  

Revision as of 20:09, 5 August 2019

Home * Chess * Chess Query Language

The Chess Query Language (CQL) is a structured query language to search for games, problems, and studies that match specific themes from a collection in Portable Game Notation. CQL was developed by Gady Costeff and Lewis Stiller. It is Copyright (c) 2003-2018 and is free. The CQL Manual is hosted by the Internet Archive [1] [2] .

The current version is 5.1 and the documentation and download of the executable can be found on the website of Gady Costeff [3].

Sample query

[4] [5]

;; look for positions where a rook circles in a 4x3 rectangle
;; we use the rectangle g2, d2, d6, g6 together with shift and flip
;;
(match :pgn input.pgn
       :output output.pgn
       :forany piece [Rr]
       (position
        $piece[g2]
        :and (
              (position :gappedsequence ((position :movefrom $piece[g6,d2] :moveto ?g2)))
              (position :gappedsequence ((position :movefrom $piece[d6,g2] :moveto ?d2)))
              (position :gappedsequence ((position :movefrom $piece[d6,g2] :moveto ?g6)))
              (position :gappedsequence ((position :movefrom $piece[g6,d2] :moveto ?d6)))
             )
        :shift
        :flip
       )
)

See also

Publications

Forum Posts

External Links

References

Up one Level