CONTENTdm Extensions Terry Reese 541-737-6384 firstname.lastname@example.org Slides: http://oregonstate.edu/~reeset/contentdm/presentation/2004_05_09.ppt
Retrieving Data: OAI & the CONTENTdm API • Two primary methods for accessing collection data dynamically within CONTENTdm: • API • Example: queryget.exe • Usage Example: http://digitalcollections.library.oregonstate.edu/cgi-bin/queryget.exe?CISOROOT0=/archives&CISOROOT1=/fakecollection&CISOOP=all&CISOMAX=17000000&CISOSTART=1&CISOSORTBY=title&subjec=memorial+union
Retrieving Data: OAI & the CONTENTdm API • Two primary methods for accessing collection data dynamically within CONTENTdm: • OAI • Retrieves all Dublin Core tagged Fields • Retrieves data as simple Dublin Core • Example: • http://digitalcollections.library.oregonstate.edu/cgi-bin/oai.exe?verb=ListRecords&metadataPrefix=oai_dc&set=archives
Examples: E-Commerce Extension • E-commerce extension: • What it does: • Allows institutions to implement a shopping cart feature with CONTENTdm • Provides patrons with a printout receipt of their orders • Provides staff with an html encoded email with links into the CONTENTdm collection to eliminate confusion regarding staff requests • Provides a method to potentially allow online billing of documents • Method will vary from institution to institution based on their business offices rules and practices
Examples: E-Commerce Extension • E-commerce extension: • How it works: • Modifications to the global.js script to: • Insert shopping cart buttons in the item & results windows • Add Cookie parsing and Packing functions • The script uses the same cookie as the My Favorites functionality, allowing the Shopping Cart to import data from the My Favorites list. • Creation of two php scripts: • mycart.php (handles the data retrieval submission form generation) • request.php (generates & emails this request – also provides the fork point for online payment if available)
Examples: E-Commerce Extension • E-Commerce extension: • Data flow: • Patron clicks on shopping cart link to pack CISOPTR into the cookie. • Patron clicks on “order prints” link to generate the request form. • Request form (mycart.php) generates an OAI request for each item and extracts the necessary data required to generate the print/email request. • Patron enters data & submits data – receipt is generated and user is given one last opportunity to verify data. • Submits data – Email is sent to staff which fill the request.
Examples: E-Commerce Extension • E-Commerce extension: • Example (Demo here): • http://digitalcollections.library.oregonstate.edu/bracero/
Examples: RSS Generator • RSS Feed Generator • Probably the most widely used CONTENTdm extension in our library. • Used by: • Librarians to track individual collection or topical growth within collections. • Managers (like myself) as a review tool to keep track of items as they change and check resulting metadata.
Examples: RSS Generator • RSS Feed Generator • How it works: • Uses OAI for data retrieval • OAI is called using date limiters that can be specified by the user • SAXON for XSLT parsing • This allows the OAI to be pre-processed to Qualified Dublin Core and then processed against a users processing instructions. Using XSLT, the user can: • Query items with specific keywords • Query items with specific creators/titles • Query items with a combination of criteria – XSLT step simply allows script to produce queries using a level of granularity that isn’t available in OAI. • RSS Feed reader to display results
Examples: RSS Generator • RSS Feed Generator • Example: • Within Bloglines • Example • As a simple link • http://fluffy.library.oregonstate.edu/cgi-bin/harvester/harvester.pl?collection_server=digitalcollections.library.oregonstate.edu&collection_project=all&collection_options=rss&collection_wrapper=1&rss_time=14
Things I’d like to see or am working on • An Open-Source Acquisitions client built in Java (so it can be run on Linux and customized for specific workflows • Open Source Multi-Site server solution • True OBDC driver to access CONTENTdm database natively within scripts • More folks developing and sharing their development.
Going Further: Embedding Rights Management • Rights management example – how it works: • Generate a wrapper .exe for the CONTENTdm display exe. • Embed rights management metadata into individual items • Have the wrapper pre-process requests on the server, pulling data from CONTENTdm using the OAI. Example screenshots: • Metadata (http://oregonstate.edu/~reeset/contentdm/screens/rights1.png) • Display (http://oregonstate.edu/~reeset/contentdm/screens/rights2.png) For more information, feel free to contact me.