Table of Contents

  1. The Fedora Digital Object Model
  2. Three Types of Fedora Digital Objects
  3. Application Programming Interface for Object Creation (API-M)
  4. Creation of Data Objects (3 ways)
  5. Creation of Behavior Definition and Mechanism Objects (2 ways)
  6. Rules for Encoding a Fedora Object XML Submission Package
  1. The Fedora Digital Object Model

    All Fedora objects conform to the Fedora digital object model which is described in detail elsewhere (Fedora publications). Briefly, the Fedora object model consists of:
  2. Three Types of Fedora Digital Objects

    Although every Fedora digital object conforms to the Fedora object model, as described above, there are three distinct types of Fedora digital objects that can be stored in a Fedora repository. The distinction between these three types is fundamental to how the Fedora repository system works. Basically, in Fedora, there are objects that store digital content entities, objects that store service descriptions, and objects that store service binding information.

    Data Objects

    In Fedora, a Data Object is the type of object used to represent a digital content entity. Data Objects are what we normally think of when we imagine a repository storing digital collections. Data Objects can represent such varied entities such as images, books, electronic texts, learning objects, publications, datasets, and many other entities. One or more Datastreams represent the parts of the digital content entity. One or more Disseminators represent services that can present different views or transformations of the content entity.

    Behavior Definition Objects

    In Fedora, a Behavior Definition Object is the type of object used to represent an abstract service definition in the form of an abstract set of methods. This is similar to the notion of an interface in Java. From the Fedora perspective, a Behavior Definition Object defines a “behavior contract” that one or more Data Object may “subscribe” to. A Data Object is said to subscribe to a particular behavior contract when its Disseminator points to the PID of a given Behavior Definition Object.

    Behavior Definition Objects are stored in the repository just like other Fedora objects. Although the Fedora repository system is able to identify Behavior Definition Objects as special “utility” objects, it stores and manages them just like Fedora Data Objects. Also, clients can access these objects in the same manner they access Data Objects.

    Behavior Mechanism Objects

    In Fedora, a Behavior Mechanism Object is the type of object used to represent a concrete service definition. From the Fedora perspective a Behavior Mechanism Object represents a service that fulfills the requirements of a behavior contract defined by a Behavior Definition. The combination of a Behavior Definition and Behavior Mechanism constitutes a Disseminator on a Data Object. Together, they provide the means for associating a set of behaviors with a Fedora Data Object.
    For a Disseminator to work, a Data Object must be associated with particular service that is an “implementation” of a behavior contract it to which the object “subscribes.” Thus, a Data Object’s Disseminator not only points to the PID of a given Behavior Definition Object, it also points to the PID of particular Behavior Mechanism Object.

    A Behavior Mechanism Object stores several forms of metadata that describe a set of methods and the runtime bindings for invoking these methods. The most significant of these metadata formats is service binding information encoded in the Web Services Description Language (WSDL). Fedora uses WSDL to “normalize” the view of a service. This enables Fedora to talk to a variety of different services in a predictable and standard manner. It also contains metadata that defines a “data contract” between the service and any object that associates with the service. The data contract (also known as the “Datastream Input Specification”) specifies the kind of datastreams that must be available in the data object to serve as input to the various methods of the service. Given that a typical use of a service is to transform or present the datastream content of a Data Object, it is necessary to define datastreams as “input parameters” to the service methods.

    Behavior Mechanism Objects are stored in the repository just like other Fedora objects. Although the Fedora repository system is able to identify Behavior Mechanism Objects as special “utility” objects, it stores and manages them just like Fedora Data Objects. Also, clients can access these objects in the same manner they access Data Objects.
  3. Application Programming Interface for Object Creation (API-M)

    Digital object construction is achieved via the methods of the Fedora Management API (API-M). The Management API exposes methods to ingest objects into the repository, as well as methods to create objects interactively. For a detailed description of each of the methods in API-M, see the specification at http://www.fedora.info/definitions/1/0/api/. The API is also expressed in the Web Services Description Language (WSDL) and is available at http://www.fedora.info/documents/Fedora-API-M.wsdl
  4. Creation of Data Objects (3 ways)

    XML Submission (Ingest) Interactive Building Batch Loading
  5. Creation of Behavior Definition and Mechanism Objects (2 ways)

    XML Submission (Ingest) Interactive Building