While it's unclear whether we need to explicitly list some of the more foundational features of fedora (disaster recovery through transparent storage, integrated access control, etc.) the following use cases are either not met by the current fedora, or are listed because there's been considerable talk of dropping support for them in future versions.
Title (goal) | Applications can be easily built to work against fedora |
---|---|
Primary Actor | developers |
Scope | |
Level | |
Story | In creating an application that uses fedora as the underlying data store, the API should meet some very basic needs.
|
Title (goal) | Repository-level metadata transformations/mapping |
---|---|
Primary Actor | user |
Scope | |
Level | |
Story | A user requests metadata in a certain form. The repository (based on RDF assertions, metadata characteristics, or any other mechanism) provides metadata in that form. In the three-series fedora, this can be accomplished by exposing a method in a service definition for dissemination of metadata in that form. The repository need not maintain metadata in multiple forms, it just needs to maintain mappings. For the benefits of preservation, having this transformation be embedded in the repository is important. (this may further the goal of TRAC B2.8 in cases where the metadata format of record is application-specific) One of the strengths of fedora 3.* was the ease with which one could add a new service to a content model. Updating every object to change their behaviors in the repository is an unacceptable regression to the functionality of fedora 2*. |
Comments | AWoods: There are two issues at play here:
There are several ways that both #1 and #2 can be achieved. We should establish a group of institutions with the same use case and discuss/design. |
Title (goal) | Repository generated/mediated derivatives |
---|---|
Primary Actor | repository manager |
Scope | |
Level | |
Story | A user requests the download of some material from the repository. Based on the metadata for that object, the characteristics of the requesting user the derivative provided to the user contains extra information (context, rights restrictions, etc.). This attachment of functionality to an object in fedora must be integrated into fedora such that:
|
Title (goal) | live querying of object graph |
---|---|
Primary Actor | script or program acting against the repository |
Story | Ingest and update routines often have to determine where in the graph of relationships to place a new (or updated) object, in doing so, querying a synchronously updated index of the relationships is necessary. For example:
|
Comments | In previous versions of fedora, having the resource index synchronized caused a huge performance hit, but if updates weren't synchronized, the most common use cases would fail in unpredictable ways. One query might not pick up recent changes, then the next one would, even with only a single process running against fedora. |
Querying unidirectional relationships take the following form and seem to work in the alpha-4 release.
SELECT ?s WHERE { ?s <http://fedora.lib.virginia.edu/relationships#follows> <http://localhost:8080/rest/firstObject> }
Other Use Cases of Interest
- xxx