hi. in the past year i have implemented my idea of how a basic graph database should look like, with guile. and today it seems quite stable and usable.
it uses a memory-mapped data store to persist bi-directionally ordered (or weighted) pairs (what would be edges of a graph), bytevectors, strings and signed integers as well as references to files in the filesystem. it currently supports at most one open database per process and a socket based interface for inter-database communication. it is supposed to be concurrency safe and there are extended and experimental features available in a separate sph-lib-dg library (http://sph.io/content/3217). for example a semantic userspace filesystem, special query processors or procedures for the creation of data structures like sets and lists using pairs/edges here is the link to the project page: http://sph.io/content/2faf
