ap5 is a mature embedded in-memory relational database which stores arbitrary lisp objects.

ap5 allows to define:
- "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 constraings
- "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 buidling 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/