EasyDeposit looks more and more promising as a straightforward way to manage the deposit interface for Fedora. I have written content models for the main categories of materials type (hardware, software, etc.). These content model objects also contain the
<rel:isCollection>true</rel:isCollection>
attribute elaborated on here, so they can function as “collections” in Fedora. Submitting test objects into these collections correctly gives them a RELS-EXT datastream stating they are a member of this collection, i.e.:
<rel:isMemberOf rdf:resource="gcm-cModel:hardware" />.
This is a good start I hope.
From this point two key issues stand out. The first is that EasyDeposit defaults to zipping submissions. This is appropriate when the submission is the actual data meant to be preserved, as is the case with a software submission, but is not appropriate when the submission is simply metadata. In this case a simple FOXML file is all that needs to be submitted. I am sure this can be changed somewhere.
The second is that a key feature of the repository is mapping relationships between pieces of hardware and software. Thus, a submitter needs to be able to specify such a relationship, ideally in the submission process. There needs to be a step where the user can pick from a list of relationships and previously submitted target resources. For example, some record isPartOf of x and y or hasPart a and b. Generating a list of possible relationships should be straightforward, but it is likely the user will simply have to specify manually what the target resource is.
The first part of what you want to do should be reasonably easy:
Take a look inside the deposit controller:
http://github.com/stuartlewis/EasyDeposit/blob/master/system/application/controllers/deposit.php
The index function is split into two parts – the first builds the package (as you say, a zipped METS/SWAP package), and the second part makes the actual SWORD deposit.
You should just need to change how the packager works – perhaps write a new packager that just constructs a FOXML file. Then tweak the deposit settings to deposit that FOXML file that you created, and set the format type and content type appropriately.
Fell free to get in touch if I can help further – it’s great to see EasyDeposit getting used.
Cheers,
Stuart