Introduction to Fedora™

Fedora™ Development Team

$Id: introduction.dbx,v 1.6 2004/04/16 12:57:45 rlw Exp $

Table of Contents

Introducing Fedora

Introducing Fedora


The Fedora software is based on an architecture known as FEDORA (Flexible Extensible Digital Object and Repository Architecture) [view paper]. The Fedora architecture was developed by Carl Lagoze and Sandy Payette at Cornell University, inspired by ideas of the Kahn/Wilensky Framework [view paper] and the Warwick Framework [view paper].

Since its inception, the architecture has seen multiple implementations. Over the last several years, Cornell University and The University of Virginia have created promising prototypes of their own. This open-source implementation, indended for public release, is the result of a collaborative effort between Cornell and UVa. The project is funded by a grant from the Andrew W. Mellon foundation.

More information about the project and its history can be found at


A good understanding of the ideas behind Fedora can be gathered by reading the related publications and the technical specification. Briefly:

In Fedora, a digital object is a data structure with a PID (a unique, persistent identifer), one or more datastreams (typed sequences of bits), and one or more disseminators. A disseminator maps an object's datastreams as input to a service, enabling the repository to provide disseminations of the object. A dissemination is simply a representation of an object.

A behavior mechanism represents a service that performs functions on datastreams. It is the means by which a disseminator binds to a service. A behavior mechanism specifies the datastream input constraints of the service it describes. It also adheres to a contract that is specified by its behavior definition.

A behavior definition specifies the names of methods that subscribing mechanisms must implement. It also specifies the user parameters that implementing services must accept. These are the same user parameters that are used by the disseminating party in the request to the Fedora repository.