Design ~~~~~~ The main challenge for the ``clld`` framework is to balance abstraction and concreteness. The following goals directed the design: - There must be a core database model, which allows for as much shared functionality as possible. In particular, publication of Linked Data and integration with services such as `OLAC `_ must be implemented by the framework. - Deployment of ``clld`` applications must be uniform and easy. - User interfaces of applications for browsers must be fully customizable. - It must be easy to re-implement legacy applications using the framework. These constraints led to the following design decisions: - Use `sqlalchemy `_ and it's implementation of `joined table inheritance `_ to provide a core database model that can easily be extended. - Use the `pyramid framework `_ for its `extensible configuration mechanism `_ and support of the `Zope component architecture (zca) `_. - Use `zca `_ for pluggable functionality. - Allow UI customization via i18n and overrideable templates.