Personal Collections will all be children of Fedora Objects that use a separate namespace based on a user's shibboleth fcHomeInstitution
and eppn
values, such as: amherst:acoburn
.
When acoburn@amherst.edu
logs in for the first time, there are a number of datastreams and objects that would be created by default.
Please note that users may choose to simply put all digital objects directly in this amherst:user
level, or they may choose to create sub-collections into which they put individual items. We could leave this up to the user or require a simple 2-level hierarchy in which digital objects must be placed into named sub-collections.
Either way, the amherst:user
object requires a number of custom datastreams that should be added when the user first logs in. They include the following.
The RELS-EXT
datastream controls how a particular object relates to other objects. This datastream should use this format for any collection object containing linked digital objects.
Here is an example for a sub-collection inside the amherst:acoburn
collection.
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="info:fedora/collection:164"> <isMemberOfCollection xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/amherst:acoburn"/> <hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/amherst:personalCModel"/> <hasCollectionMember xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/asc:19"/> <hasCollectionMember xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/asc:200"/> <hasCollectionMember xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/asc:260"/> </rdf:Description> </rdf:RDF>
When a new item is added to a user's collection, an additional item hasCollectionMember
item will be added to the rdf
statement. In this way, it is possible for users to upload their own items, each of which would contain its own isMemberOfCollection
specification, but I imagine that for the most part, users will link to existing objects in the collection. This should make the overhead involved in adding an item to a collection quite minimal.
The contents of personal collections can be accessed with a simple Sparql command:
SELECT * WHERE { <fedora:collection:164> <fedora-rels-ext:hasCollectionMember> ?object . ?object <fedora-model:label> ?title . ?object <fedora-model:hasModel> ?model . ?object <fedora-model:state> <fedora-model:Active> . FILTER (?model = <fedora:amherst:objectCModel>) }