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.