Citation Sharing Technology
Dryad provides the ability to download a citation for a data package stored in Dryad. It also provides the ability to 'bookmark' a link to a data package on a variety of social networking sites (e.g., Delicious, Facebook, Digg, Mendeley, etc.) Both of these options are available from the item view pages for data files and packages. If the option to download a citation (or bookmark) is made from a data file page, the information for that file's data package will be used as what's cited (or bookmarked) -- instead of the information from the data file.
The functionality provided by the citation download is related to Dryad's DOI module. Inside that module is a CitationServlet Java class that resolves the DOI provided as the authoritative reference for that data package. Once the DOI is resolved to a DSpace record, the metadata for that record is extracted and converted into either the BibTex or RIS format and made available for download from the servlet.
The sharing works in a slightly different way. It uses the metadata from the data package but because we're just building a link to a remote social networking site, we can use the metadata that is already available to the XSLT that renders the item view page (and the links to the remote social networking sites). One thing this depends on is the ability to make the data package's metadata available on the data file's item view page.
The data package's metadata is included in the display for the data file thanks to the org.datadryad.dspace.xmlui.aspect.browse.ItemViewer class. This is a modification of the ItemViewer class that comes with DSpace. Because we've completely co-opted the ItemViewer, though, to represent the package to file relationship, we've moved this ItemViewer class into the org.datadryad.dspace package and changed the DSpace Discovery aspect to use this viewer (instead of the standard DSpace ItemViewer).
Question: Why is the ItemViewer in the DSpace Discovery module in the first place? Seems like there would be a better place for it.
Both of these mechanisms rely on the DryadItemSummary.xsl file to construct the links that provide the functionality and to present the options underneath the "How to cite a Dryad package" box. In the design stage, we decided we didn't want the cite and share options visible at first glance, but hidden in a div that is exposed to the user when s/he clicks on the option to "cite | share" (displayed under the citation display when they are visible).
COinS is also supported by Dryad. Sites like Mendeley and Zotero can read the COinS data in a page and enable the page to be bookmarked through their (Mendeley's and Zotero's) browser plugins. The COinS information is put into the HTML page via the Dryad theme's XSLTs, specifically the DryadUtils.xsl file, which provides some general templates for use by the other XSLTs.
- User visits item page (package or file)
- XSLT pulls metadata from the item record or the page metadata (e.g., in the case of the data file, the ItemViewer has put Dryad data package metadata into the pageMeta element)
- XSLT displays this option in a hidden div whose content can be viewed by the user by clicking on the option to view it (under the citation information at the top of the page)
- The user clicks the link and is taken to the remote site with all or some of the form information supplied by the metadata values in the link they followed
- User visits item page (package or file)
- An option for RIS or !BibTex is presented to the user in the form of a parameterized link
- The user clicks on a link and is sent to the CitationServlet with information about which format they want
- The CitationServlet uses the DOI that is sent and resolves that to a DSpace item record
- The servlet extracts the metadata from the DSpace item record
- The servlet formats this metadata as either RIS or !BibTex, depending on which parameter it receives, and sends the data citation back to the browser as a data stream
- The user is given the option to download the data to their file system where their citation management software can then import it
The configuration of which citation formats are supported (currently BibTex and RIS) is built into the CitationServlet itself. There are separate methods for rendering the item metadata into the official citation format. More formats could be supported by adding additional methods, though we've determined the RIS format covers most of the citation management software packages (Endnote, etc.)
Relation to DSpace