A mature, embedded, in-memory Relational ObjectStore and a high-level/declarative/specification language.

ap5 supports the definition of -
- "transition relations" which are like SQL database tables
- "defined relations" which are like SQL views
- "computed relations" which are like SQL stored procedures returning data
- "constraints" which are like SQL constraints
- "automation rules" which are like SQL triggers

Data representation allows indexing. User can add new types of indexing. Queries are optimized according to user-definable index performance heuristics. Ap5 supports transactions. Transaction log is available for reading. Definition language is rather powerful and goes far beyond SQL. e.g. data can be canonicalized when storing and finding, transitive closure of binary relations can be defined.

So ap5 can be classified as ai application and used as a fundament for building knowledge representation systems systems. ap5 is a language extension, its queries are just lisp expressions so they are embedded into lisp code easily.

Homepage: http://ap5.com/