add function to submit data with registry entities
A common request is to be able to submit data to the metacat along with a
registry entry as it is submitted. We've not done this because of the
additional metadata burden that is typically required to be EML compliant
(entity and attribute). However, there is some utility to being able to archive
the data even without the detailed entity and attribute metadata. Once strategy
1) Add a form upload field to allo a user to point at a data file on disk for upload
2) Upon submit, upload the metadata and data, parse out the data file and submit
it to metacat as its own object.
3) Use the ID for the submitted dataset to create a metacat URL, and write that
metacat url into the distribution section for the overall data package, and then
submit the metadata.
This is not the traditional approach to uploading EML data, as data are
typically uploaded in the dataTable/distribution section. A couple of problems
arise. First, because the distribution url is in an atypical place in EML,
metacat doesn't know how to set access control rules on the data object
properly, so this will need to be specially handled. Second, because the
distribution url is in an atypical place in EML, morpho won't know how to deal
with the data package and will need to be modified to detect the presence of
these data tables and 'move' the reference to the dataTable subtree to allow the
user to provide entity/attribute info for the table and to view the data. This
will be entered as a separate bug. So, an additional feature to contemplate is:
4) Add a form field for specifying access restrictions on the data. This could
be a simple radio button like:
"Make data 1) publicly available 2) private"
In some special cases, such as the NCEAS data registry, we might want a third
choice like "Group available" where the group consists of the people that are
members of the associated working group. THis will require being able to get
the list of ldap accounts associated with a group from the registry script, but
this could be presumably added to the admindb access script in perl.
Updated by Shaun Walbridge about 15 years ago
Bug fixed by fixing four aspects of Metacat:
1) Metacat core fixed to accept arbitrarily ordered form objects, and open the option of accepting multiple files in one HTTP POST operation.
2) In Metacat.Pm Perl bindings, added an upload option, now will encode forms using the enctype specified by the browser.
4) Refactored register-dataset.cgi (see version 1.75) to include data file uploads, generate EML with the data package <-> data object relationships, contained within the otherEntity element.