The UGH library represents such a programming interface, which can and should be used by different tools and programs to load and save data. This interface implements a universal document model, which is independent of underlying formats for describing meta information. Instead, there are different classes for serializing a document. Each of these classes implements exactly one data format. Superior program layers (e.g. the business logic) are therefore completely independent of the data format. Note, however, that not all data formats can always implement the complete universal document model. Similarly, some serialization classes can only read data, since writing is not required for this data format or does not seem to make much sense. This applies, for example, to classes that transfer data formats from library catalogs. Since only the bibliographic level is usually represented there, all structure information and references could not be written. For this reason, a write method was not used for these classes.