Attached is a METS export plugin and gateway plugin for OJS. Also included is a draft OJS Journal METS Profile. The profile is based on the Australian METS Profile and Australian Journal METS Profile, both published profiles available on the Library of Congress web site (see http://www.loc.gov/standards/mets/mets- ... files.html
). The architecture for the METS Profile is a three-tier model moving from a single parent generic profile (the Australian METS Profile) to domain-based profiles each of which inherits the rules of the generic profile; the Australian Journal METS Profile is an example of one of these. An implementation profile then inherits rules from its domain profile and is a profile specific to an application or an expressed contract between institutions; the draft OJS profile included is an example of an implementation profile.
The advantage of publishing this profile as part of the plugin work is that the OJS Profile (once agreed upon) is based on published standards and can be evolved over time with the OJS community.
While this work is a tidy-up of one of our last year's projects, we are hopeful that this work is of interest and relevance to PKP as we would like to see the METS feature included in a future OJS release and would be happy to collaborate on making it better. We would be interested in following this up once the PKP-ers have had a chance to test out the code and examine the profile. If possible, it would be great if each plugin plus the profile could be published on the OJS plugins page as early as convenient (feedback can be directed to us if required).
Regarding the distribution itself, the same dom and xml generation code is used in each plugin - we did not want to interfere in the core OJS code in case the code is not incorporated into a future version of OJS. Should the code be accepted for a future OJS release, we'd suggest the common DOM/XML modules be moved into the source code tree ratther than be duplicated in each plugin. Each plugin currently stands alone and either or both can be deployed on an OJS instance. Several config options are available which are outlined in the readme file included with the distro.