설명
체스 쿼리 언어, 줄여서 CQL을 사용하면 정밀한 체스 쿼리를 작성할 수 있다. 쿼리는 찾으려는 대상을 형식적으로 기술한 것으로, 특정 칸의 기물, 수순, 체크가 있는 포지션 또는 여러 조건의 조합 등이 될 수 있다. CQL은 대국과 스터디 모음 안에서 패턴을 검색하도록 설계되었다.
기본 작업 흐름은 두 부분으로 이루어진다. CQL로 패턴을 작성한 다음 PGN 파일에 cql 프로그램을 실행한다. PGN은 대국을 기록하는 텍스트 형식인 휴대용 게임 기보법을 뜻한다. CQL은 조건에 맞는 대국이 들어 있는 다른 파일을 만든다. 이 언어는 기물, 칸, 수순을 기술하고, 색을 서로 바꾸거나 보드를 반사하며, 정규 표현식과 비슷한 반복 규칙을 사용할 수 있다. 반복 규칙은 패턴의 일부가 몇 번 반복될 수 있는지를 지정한다.
CQL은 일상 언어로 쓴 질문도, 대국을 기록하는 기보법도, 그 자체로 하나의 데이터베이스도 아니다. 작성 규칙을 익혀야 하며, 쿼리가 정확히 무엇을 일치로 인정할지 결정한다. 지나치게 엄격한 쿼리는 동등한 예를 놓칠 수 있고, 너무 넓은 쿼리는 겉으로만 비슷한 포지션을 반환할 수 있다.
용법과 맥락
CQL은 찾는 기준이 체스의 기하 관계나 수순에 달려 있어 선수, 날짜, 오프닝 같은 필드만으로 제대로 표현하기 어려울 때 특히 유용하다.
자주 혼동하는 개념
자연어 검색
CQL은 아름다운 희생을 찾아 달라는 식의 자유로운 문장을 해석하지 않는다. 어떤 기물, 칸, 수 또는 관계가 패턴을 이루는지 문법으로 표현해야 한다.
저장 형식
CQL은 검색을 기술한다. 대국은 별도의 형식, 보통 PGN으로 읽고 쓴다.
출처
- 1.CQL: The Chess Query Language, Gady Costeff
