Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Throughout the Fedora Future build-out, we've maintained a Sufia-based Hydra head that consumes the Fedora APIs. At the June Hydra partners' meeting, we were able to cut over from the "legacy" Fedora 3-like APIs to the new, RDF based APIs. 

A large amount of the effort was devoted to consuming the RDF and reproducing objects that appear to downstream API consumers like Fedora 3 objects, by providing analogues to Fedora 3 concepts (e.g. object properties like labels, owners, etc). In addition, converting multivalued fields to single valued fields to support Fedora 3-like objects.

There was some amount of tedious effort patching ActiveFedora to:

  • use Rubydora exclusively for interacting with Fedora
  • remove assumptions about the behavior of Fedora 3 (default DC datastreams, RELS-EXT, etc) and features not-yet-present in Fedora 4 (e.g. external datastreams)
  • stop using FOXML to store fixture objects, and instead build them up programmatically.


Hydra is taking advantage of some of the new Fedora 4 features, including:

  • Using RDF responses that contain full profile information for the object and datastreams to minimize HTTP round-trips
  • Allowing (and exposing) arbitrary properties on objects, and pushing that through the stack, in order to let Hydra heads "tag" objects with arbitrary, non-datastream information