Speculoos was initially created to provide a solution for accessing directories from Java applications without the complexity of the standard JNDI/LDAP API provided in Java SDK (or similar features provided by directory server vendors like Novell). Accessing directory has been standard in Java SDK since version 1.3 and yet it is difficult and tedious to create requests. While there exists solutions that provide this kind of feature, they are either limited in scope (eg. Directory4j) or proprietary (eg. BMC Calendra).
There is to the best of our knowledge no library that provides some sort of Object-to-LDAP mapping service in an easy-to-use and non-intrusive way. There exists however lots of libraries using different techniques for mapping XML data to Java types and the other way round. One can then observe that XML and LDAP servers share a common underlying structure:
Speculoos then aims at providing a unifying view of various kind of graph and tree-structured data by being a kind of Domain Specific Language for accessing such data independently of the specific backends used for storing it.