Context is any information used to characterize the situation of an entity. Examples of contexts include time, location, identity, and activity of a user. This project proposes a general context-aware DBMS, named Chameleon*, that will eliminate the need for having specialized database engines, e.g., spatial DBMS, temporal DBMS, and Hippocratic DBMS, since space, time, and identity can be treated as contexts in the general context-aware DBMS.

In Chameleon, we model two classes of context: the query issuer's context and the database objects' context. Examples of user or query issuer contexts include the location of the query issuer, the identity of the query issuer, or the time when the query is issued. Database objects have contexts that are reciprocal to the query issuer contexts, e.g., the location of the database objects, the time duration of an object (or when the object can be available for querying), and the identity of the object (or the ids of the query issuers or classes of query issuers that are allowed to access the object).

In Chameleon, we can combine multiple contexts into more complex ones using the proposed context composition, e.g., a Hippocratic DBMS that also provides spatio-temporal and location contextual services. As a proof of concept, we construct two case studies using the same context-aware DBMS platform within Chameleon. One treats identity as a context to realize a privacy-aware (Hippocratic) database server, while the other treats space as a context to realize a spatial database server using the same proposed constructs and interfaces of Chameleon.

The real Chameleons also change their color and appearance based on the context they are in.