This is an old revision of the document!
Redesign of the CQi client-server protocol
The CQi protocol defines a client-server API to CWB/CQP with the following three goals:
- provide a uniform API to corpus data and CQP queries, which can easily be accessed from all programming languages (without having to link against C libraries or run slave processes in the background)
- allow remote access to CQP process running on a dedicated server (e.g. from thin client or Web interface)
- enable distributed processing, where multiple (sub)corpora can be queried in parallel by separate CQi server instances (either on the same server or on different nodes in a compute grid)
The official CWB distribution currently includes the CQi 1.0 protocol specification, a stand-alone CQi server (cqpserver
), and a reference client implementation for Perl. CWB users have implemented similar clients for Java, Lisp and Python with varying success.
The CQi protocol was