[aMess - a Messaging Program]

aMess

a Messaging Program

SourceForge Logo

aMess Query Language (aQL)

To make aMail core independent from each implementation of the different modules (data storage, message retrieval, etc.) a common language must be provided regardind the data specification for its location.

The first obviuos choice could be something similar to SQL (Strcutured Query Language) that has been proved to be very iseful in this area. The complexities of this can take aMail to contain a huge amount of code that could convert aMail a non-choice for platforms that can't devote too much resources (cell phones, PDAs, etc.), so these choices can be implemented:

SQL subset

Implement only a subset of SQL ANSI language (mainly the DML or data manipulation which the most important is the SELECT clause).

aMail Query Language (aQL)

To use a new and simpler query language to sepcify queries (or lacations to write to) where it can be hash based (mainly for its flexibility) that can be very similar to QBE, for example :
%Query-Hash = (
               SUBJECT => '^[aMail-devel]',
               FROM => 'someone@somedomain',
               MSG_NUM => '> 2000000',
);
being each hash element a regular expression or a compare (if it starts with any comparison simbol), where all the hash elements are the terms of an AND clause: will be returned all elements whose SUBJECT will start with '[aMail-devel]' AND are from 'someone@somedomain' AND the MSG_NUM is 'greater than 20000000000'.

Pros and cons

SQL is bullet-proof but has the con that fits better in relational data (remember that the config data is better viewed as a hierarchical one).

aQL is a new query lang that can be molded to our needs but has no maturity at all.


[aMess documentation]

aMess

a Messaging program