Title (Goal)

As a developer, I want to retrieve a set of objects from the repository that conform to my domain model. 

Primary Actor

Developer 

Scope

 

Level

 

Author

Elliot Metsger 

Story (A paragraph or two describing what happens)

Retrieve a set of domain objects from the repository. 

As a developer, I would like to retrieve a set of domain objects that conform to a domain (content) model.

For example:

  • Retrieve a list of images and descriptive metadata for each image.

    • Pages of a sheet music item

    • Pages of a newspaper

    • Pages of a medieval manuscript

  • Retrieve the component parts of an Electronic Thesis and Dissertation.

  • Retrieve a list of Data Items in a Collection (Collection and Data Item are domain objects in the Data Conservancy data model).
  •  Retrieve a list of Collections in a Project (Project is also a domain object in the Data Conservancy data model).
  • ...

My organization has multiple applications that access content in the repository, that vary in the programming language used and their platform requirements (LAMP stack vs servlet container, etc).  As a developer, it would be very inefficient to write and maintain the necessary transformations to render Fedora repository objects as domain objects for each application.  Instead, I would like to implement the Fedora to Domain Model transformation logic in one place, so that my applications can retrieve objects in their native domain, without having to concern themselves with Fedora objects and object transformation.

Furthermore, I would like to have confidence that all the required objects and properties will be available when the transformation occurs.  For example, if a Fedora object advertises it's participation in a content model, it would be nice if a service able to periodically verify (or verify upon request) the integrity of a content model instance.


 

8 Comments

  1. What do you mean by "domain object"? Clearly you aren't referring to any construct in a particular programming language. How then, is such a "domain object" to be represented or managed?

    1. A domain object in this context represents information about a domain according to an abstract model.  At JHU we’ve been undergoing modeling exercises for digital content we manage, including sheet music, manuscripts, ETDs, newspapers, etc.  A domain object may represent an issue of a newspaper, or an item of sheet music, or a particular ETD.  The concepts represented in the model have to be mapped or expressed in some concrete fashion using PREMIS, PCDM, and perhaps mapped further into LDP.

      1. I appreciate the response, but that does not answer my question. You refer to a hypothetical ability to "retrieve objects in their native domain". For retrieval to take place, no matter what model is brought into play, serialized information must be exchanged. In what form do you suppose that will take place? What do you expect to substitute for Fedora's RDF serialization, and in what sense will it be more general? If RDF, do you suppose this to be some kind of RDF-to-RDF mapping? Given that Fedora puts very little restraint on the RDF used in the repository, do you object to the presence of system-generated triples?

        To be perfectly clear, the remark "The concepts represented in the model have to be mapped or expressed in some concrete fashion using PREMIS, PCDM, and perhaps mapped further into LDP." is flatly untrue. PCDM, in particular, is no part of the Fedora API and will never be given any special support by the reference implementation, and engagement with the other two standards is in no way a requirement of using Fedora.

        1. You refer to a hypothetical ability to "retrieve objects in their native domain". For retrieval to take place, no matter what model is brought into play, serialized information must be exchanged. In what form do you suppose that will take place?

          I would expect that the role of this particular API Extension would be to transform Fedora's serialization of a resource to my "native domain" serialization.  I'll update the use case to be more clear.

          To be perfectly clear, the remark "The concepts represented in the model have to be mapped or expressed in some concrete fashion using PREMIS, PCDM, and perhaps mapped further into LDP." is flatly untrue. PCDM, in particular, is no part of the Fedora API and will never be given any special support by the reference implementation, and engagement with the other two standards is in no way a requirement of using Fedora.

          Thanks for the clarity.  I don't think I was implying that that Fedora should give special support to, nor elevate its requirements, in any way regarding the models it currently supports.

          1. Okay, so your "native domain" serialization is something other than RDF? Perhaps some programming-language-specific serialization or some kind of binary format? Now I think I see the functionality for which you are asking. This, if I understand correctly, is a particular use case for the general "transform the representation" functionality that old heads would think of as rebuilding Fedora <4 disseminators, yes?

          2. Thanks for the clarity.  I don't think I was implying that that Fedora should give special support to, nor elevate its requirements, in any way regarding the models it currently supports.

            My concern was with your remark that "The concepts represented in the model have to be mapped…" into specific vocabularies. They do not, and I would not want readers to take away a false impression. Requiring the use of particular vocabularies would indeed privilege them, but Fedora does not do that.

  2. Is this a special case of this?