Personal Collections

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.

RELS-EXT

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.

Person collection content

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>)
 }
personalcollections.txt · Last modified: 2013/03/19 13:35 by acoburn@amherst.edu
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International