K2 is a system for generating mediators. A mediator is a piece of middleware that facilitates the integration of multiple distributed heterogeneous data sources. K2 employs a general complex-value-based data model which includes collections and "dictionaries" (finite functions). This allows for a uniform treatment of object-oriented, relational, and semistructured data, which in turn provides opportunities for optimization that exceed those of more limited systems.
Get some background information about K2, and its predecessor, Kleisli.
View the architecture of K2, from client to data sources and back again.
The mediator generation process is a simple means of connecting and integrating data sources.
The distributed nature of K2 is among its most powerful features.
Technical documentation is available, which explains all the nitty-gritty details of using K2.
See what's planned for future versions of K2.
Some papers with more information about K2.