The system is based on a modular service-oriented architecture and designed to be put to work in a distributed and heterogeneous virtual landscape. The principle idea behind the architecture is to decouple the modules serving data from the user-interface components. To achieve this end, a number of basic requirements are imposed on the system: dynamic configuration of data sources, dynamic configuration of frontend layout, and support for different (XML-based) data formats.
corpus_shell implements the Federated-Content-Search protocol [clarin.eu/fcs] developed within and promoted by CLARIN as a lingua franca allowing for search in heterogeneous language resources distributed across multiple CLARIN centres in Europe. This protocol is used both for connecting to external services for federated setup, as well as for feeding data to the frontend.
ACDH has developed two implementations each focusing on different data types. The XQuery-based implementation (called cr-xq-mets) is mainly geared towards digital editions of historical texts while the php-based implementation is meant primarily for lexical resources. Presentation logic is encapsulated in a reusable suite of XSLT-stylesheets (cs-xsl).
The framework is open source, the source code is available on GitHub.