Import and Export of Fedora objects using Content Models

The Doms system defines import and export of objects to/from Fedora as disseminators on content models. The main problem of import and export, is that in an atomistic datamodel, importing from an external system will probably generate more Fedora objects, and export to another system will probably need to draw on information from more then one object.

Basically, a number of disseminators are reserved for communication with external systems. The idea is that import-disseminators will generate a number of related objects in Fedora, and return the PID of on object of the content model the disseminator is defined on. Export-disseminators will bundle together a number of objects and generate an external representation based on that information. This will be described in more detail below.

Import

Given a content model, it may have disseminators for Import of objects to this content model.

The disseminators are recognisable as import disseminators by naming: The name of the disseminator will have the prefix "import_".

The disseminator may take input parameters, usually this will include an ID from the system to import from.

Calling the disseminator will have the side effect of a number of objects being ingested in Fedora. These objects will be interrelated, and usually part of the same view.

The disseminator will return a single string, that is the PID of one of the created objects. The Content Model of this PID will always be of the Content Model the import disseminator is called on.

Disseminators are always called on objects, never just on a content model. Therefore, to call the disseminator you need to select an object to call it on. It is expected that it is always called on template objects, and the implementation of disseminators are allowed, but not required, to use information defined in the template objects.

Export

Export is also defined as disseminators on content models.

The disseminators are recognisable as export disseminators by naming: The name of the disseminator will have the prefix "export_".

The disseminator may take input parameters, but this is not required.

Calling the dissemintor on an object will generate output in a format defined by the disseminator, and may draw on the given object, and any other objects. Usually, it will use information from the same view.