1. A computer program product having program code adapted to provide, upon execution, a database of objects and a database engine for managing said objects, characterized in that each object comprises metadata for describing the object and for defining a hierarchical structure of branches which constitutes said object and which includes relations to other objects, wherein an individual branch has: a metadata type, which is selected from a predetermined and limited set of n different metadata types and which represents one respective hierarchical level in said hierarchical structure; a metadata value; and an arbitrary number of other branches, of any hierarchical level strictly subordinate to the hierarchical level of said individual branch, connected to said individual branch as children thereof, said arbitrary number including zero branches.