Coral is as an object oriented database. It manages structured resources, that can be mapped to Java objects in a JDBC relational database.
Besides simple object persistency mechanism Coral provides an expressive security system, many kinds of resources relations (intrinsic tree organization or resources, reference attributes, set theory relations) and a powerful query facility that can use attribute values and resource relations to select objects from the store.
The resources can be manipulated through Java API, or interactively using RML script language. Resource types can be created and modified at runtime (existing resource instances are aproprietly adjusted). Java wrapper sources for the resources can be genereated using a Maven plugin from RML scripts, or a live database instance.