Donatus comprises (1) a plugin architecture for integrating backend tools and data sources, using a simple programmatic interface (this interface will be described in a separate document); (2) a hub that invokes the appropriate backend plugins, passes linguistic data for analysis, and integrates data from the backends into a unified XML document that may be passed to user agents; and (3) public interfaces to the hub, including a CGI interface designed for direct human use, and an XML-RPC interface designed for programmatic use. The XML-RPC interface is described in this document.
Donatus employs a two-tiered lookup strategy for morphological analysis. First, forms are delegated for analysis to a backend that supports the appropriate language. If the backend fails to identify the form, a fallback database is queried. The fallback system allows new lemma/form/analysis triples to be added to Donatus through a single interface, with no need to extend the backend systems. This functionality is especially important, because backends may be proprietary or legacy systems that cannot be extended by users.