A content model will typically describe the datastream composition, semantic identifiers for datastream relationships, and optionally disseminators. The datastream composition defines the number and kinds of datastreams that must be present in the digital object, the format(s) for those datastreams, whether each kind of datastream is required or optional, and their cardinality constraints.
One of the many advantages of using the eSciDoc infrastructure over a out-of-the-box Fedora installation is the provision of well-designed object patterns and content models. The manifold of information objects, data structures, and file formats to be handled within the research process require very flexible content models for eSciDoc. Fedora imposes little constraints on content models, which is one of its strengths. However, this flexibility delegates the enforcement of business rules and content models to the application layer on top of Fedora. eSciDoc provides a set of well-designed object patterns and content models. The object patterns are known to the business logic of the infrastructure, which allows for more advanced functionality. Even though eSciDoc covers many disciplines and use cases in the field of e-research, we created only three generic object patterns:
- Context (administrative container)
- Container (aggregations, e.g., collections, bundles)
A more technical view on the generic object patterns and their relationship to each other is depicted in the following diagram.
The two types of data objects (Item and Container) are then further specialized by content models. In order to describe individual constraints (kind and number of metadata sets, structural and content relations etc.), every of these objects refer to a Content Model Object in eSciDoc. Examples of such content models are images, videos, translations, and transcriptions.
With the separation of object patterns and content models and the creation of a content-model-aware middleware, we simplify the design and implementation of e-research applications dramatically.
Find more information on Fedora content models in general and some examples from other Fedora-based projects on the Fedora Wiki.