We want to be able to define a generic directory (name, "table", schema, id fields etc.) whose actual implementation (SQL, LDAP, ...) is delegated to a centrally defined template.
This will allow redefining with one change a whole set of directories in the platform (for example, all vocabularies). This is important in order to be able to switch easily the backend storage of all directories, for instance from SQL to MongoDB