Table of Contents

Browse child pages, or create a new one!

Children of this page will contain sketches of possible revisions to the fedora object model.

Overview

While the final high-level storage interfaces are yet to be formally designed, the initial interfaces from the proposal and subsequent documents generally use some representation of the fedora object model as the basic unit of information that passes between the repository layer and the high-level storage layer. In previous discussion, this has been assumed to be analogous to DigitalObject in the current code base.

In the process of discussing high-level storage design among the fedora committers, several problems with the current object model were raised. The general consensus of the group was that the fedora object model and corresponding Java representation should be revised as part of the High-level storage design. This page serves as an entry point to this process by soliciting initial sketches of an improved object model from the community. These sketches will serve as a starting point in the design process.

Possible improvements

The following topics were discussed as possible areas of interest that may have implications in a revised Fedora object model (or Java representation) within the context of high-level storage.

  • Versioning
    • Should datastream versioning remain an explicit part of the object model, or is it a concern of the storage layer?
    • Should object-level versioning be introduced?
  • Audit trail
    • Should audit trail to be modeled as a datastream? Are the access methods in the current DigitalObject interface proper, necessary, or sufficient? Is the audit trail a concern of the object model at all?
  • Control groups
  • Object properties vs RELS-* relationships
  • Convenience methods on DigitalObject interface
    • ...to provide access to an object's content models, rather than having to introspect on RELS-EXT?
  • Minimal necessary object model to support storage

Sketches

As mentioned earlier, child pages will contain sketches of possible changes to the abstract Fedora object model, the corresponding Java interface, or both. They will be used as a starting point for a larger design discussion in which a specific set of changes will be proposed as part of the high-level storage design effort. All input is welcome, so committers and community members alike should feel free to submit a sketch in a child page, even if it is limited to one particular area of interest within the model.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels

1 Comment

  1. Some thoughts on the "possible improvements":

    • Should datastream versioning remain an explicit part of the object model, or is it a concern of the storage layer?
      • If versioning is pushed down into storage, it becomes more difficult to properly integrate objects with different needs for versioning into workflows that go against the published APIs.
    • Object properties vs RELS-* relationships
      • People have been using RELS-EXT to store metadata assertions with literal RDF-objects for some time now. Meanwhile, support for object properties hasn't improved for a good while. Perhaps it's time to reconsider the need for object properties and the appropriateness of segregating RELS-EXT and RELS-INT. Some form of division may be appropriate, but -EXT and -INT may or may not be it.
    • Convenience methods on DigitalObject interface ...to provide access to an object's content models, rather than having to introspect on RELS-EXT?
      • Why not go further to provide convenience methods to list available disseminations and required/optional datastreams, OWL ontologies (with ECM in play), etc.? Why require people to rewrite the same introspection code (the same SPARQL queries)?