510 likes | 768 Views
CWSpace. Archiving Courseware Websites to DSpace Using a Content Packaging Profile & Web Services. William Reilly, Rob Wolfe — MIT Libraries. Digital Library Federation Spring Forum, 2006 April 11, 2006 — Austin, Texas. ©. 2006. Project Overview.
E N D
CWSpace Archiving Courseware Websites to DSpace Using a Content Packaging Profile & Web Services William Reilly, Rob Wolfe — MIT Libraries Digital Library Federation Spring Forum, 2006 April 11, 2006 — Austin, Texas © 2006
Project Overview CWSpace: MIT iCampus project, nearing completion Vision: Increase value in Institute publication: OCW • Also: Increase value in Open Source platform: DSpace Goal: Archive OCW to MIT’s DSpace • Also: Make content available to CLEs * * CLE = Collaborative Learning Environment Method: Interoperability of systems • Use Content Packaging standard • Use Web Services standard MIT's CWSpace
Perceived Need: inter-operability™ • Obvious observation: Higher Ed. Technologies increasingly seeking integration with Library & Repository holdings • Not so obvious(?): Libraries seeing their charter to include collection, preservation, dissemination of Teaching & Learning materials(?) MIT's CWSpace
InterOp: What’s Available MIT's CWSpace
1 of 3 InterOp: What’s Achievable MIT's CWSpace
2 of 3 InterOp: Challenges MIT's CWSpace
3 of 3 InterOp: Possible Resolution? MIT's CWSpace
OCW Materials in DSpace = New Ground MIT's CWSpace
Content Packaging MIT's CWSpace
Content Packaging: Steps Toward a Profile • Model OCW Content • Choose Packaging Specification • Profile That Specification MIT's CWSpace
Content Package Package Interchange File (PIF) • Usually a .zip file • Contains a manifest • Manifest references files (some in, some out of the package) MIT's CWSpace
Object Models • Mapping one world to another • Content Package design considerations • Use, re-use, subsequent dissemination OCW DSpace … … DIP SIP MIT's CWSpace
OCW to DSpace mapping MIT's CWSpace
Which Packaging Spec.? • Content packaging specifications are generic loose envelopes to carry content, metadata • Choice of package is largely determined by user community • Dspace to use METS internally • Higher Education uses IMS Content Packaging • METS • IMS-CP • MPEG-21 DIDL • XFDU MIT's CWSpace
METS and IMS-CP MIT's CWSpace
IMS-CP & OCW Content Model MIT's CWSpace
IMS-CP & DSpace Object Model MIT's CWSpace
OCW to IMS-CP to DSpace MIT's CWSpace
Every Implementation of IMS-CP or METS will: Constrain the Standard Extend the Standard Interpret the Standard The sum of these adjustments is the implementation profile The Standards themselves encourage profiling in a systematic way: IMS Application Profile Guidelines Technical Manual http://imsglobal.org/ap/apv1p0/imsap_techv1p0.html METS Profile Schema and Guidelines http://www.loc.gov/standards/mets/mets-profiles.html Profiling Package Standards MIT's CWSpace
Application Profiles MIT's CWSpace
Application Profiles MIT's CWSpace
Application Profiles MIT's CWSpace
Application Profiles MIT's CWSpace
Application Profiles MIT's CWSpace
Now with Package defined… …need to move that across the network from producer to consumer… Content Provider DSpace Profiled Content Package… MIT's CWSpace
Web Services MIT's CWSpace
DSpace dev: LNI & PKGers MIT's CWSpace
Lightweight Network Interface 0. What Was The Problem? • What Is the LNI? • DSpace & WebDAV • Example of Use: Submit OCW • Future Development… MIT's CWSpace
Content Provider DSpace What was the Problem…? Content Providers wanted… • Networked Access: Programmatically access the DSpace object model, but not running on the DSpace server • Basic (Lightweight Network Interface (LNI)) • [ Access, Deposit, Limited Mods. ] • Submit • Retrieve Item w. Metadata • Build own U/I • Collection Mgt, Map Items • Advanced (possible future LNI dev.) • [ Replace, Withdraw, Delete ] • Specialist metadata • Automated metadata • Quality control checks • Format migration … MIT's CWSpace
What Is the LNI? The "Lightweight Network Interface" is: • A remote API to control DSpace • It's essentially WebDAV: Extensions to HTTP • A SOAP (with WSDL) equivalent is provided • It's a mapping: — • a "complete and comprehensive" view of the DSpace public object API… (the "business logic" layer) • …as mapped to WebDAV semantics MIT's CWSpace
DSpace: Model • DSpace digital repository • Differs from file system • Submit URI not known • Workflow • … MIT's CWSpace
WebDAV: Model, Basics DAV = "Distributed Authoring and Versioning" • Each Resource named by a URL • Properties are "name value" pairs • Properties are extensible • Property values can be found, and modified URL MIT's CWSpace
WebDAV: Model, Fuller • Resources can be Collections or leaf nodes • Collections can nest • Everything can be discovered descending from the DAV server's root '/' resource MIT's CWSpace
DSpace Mapped to WebDAV • WebDAV MIT's CWSpace
DSpace Implemented as WebDAV • Properties • WebDAV • Custom for DSpace • LNI URLs • WebDAV Methods MIT's CWSpace
Properties: WebDAV • DAV:creationdate • DAV:displayname • DAV:getcontentlength • DAV:getcontenttype • DAV:getlastmodified • DAV:resourcetype • … Akin to file system properties, with add'l. metadata http://www.webdav.org/specs/rfc2518.html MIT's CWSpace
Properties: Custom DSpace (1 of 3) • ALL DSpace Objects: • dspace:type • "BITSTREAM", "ITEM", "COMMUNITY" etc. • DAV:resourcetype • "COLLECTION" etc. • dspace:displayname • dspace:current-user-privilege-set MIT's CWSpace
Properties: Custom DSpace (2 of 3) • Community DSpace Objects • dspace:logo • dspace:short_description • dspace:side_bar_text • dspace:handle • … MIT's CWSpace
Properties: Custom DSpace (3 of 3) • Bitstream DSpace Objects • DAV:getcontentlength = getSize() • dspace:format = getFormat().getID() • dspace:sequence_id = getSequenceID() • … • Many more DSpace Objects (some 10) • With many more Properties (some 87) http://wiki.dspace.org/LightweightNetworkInterface MIT's CWSpace
URLs: DSpace LNI • Community • http://uni.edu/dspace/dav/dso_1721.1$46 • Collection • http://uni.edu/dspace/dav/dso_1721.1$349 • Item • http://uni.edu/dspace/dav/dso_1721.1$5543 • Bitstream • http://uni.edu/dspace/dav/dso_1721.1$5543/bitstream_13 • The LNI URLs for DSpace objects are only for use with the LNI. • They are therefore not to be used: • as persistent URLs (e.g. bookmark, store for later use) • as interactive URLs (e.g. browser) MIT's CWSpace
WebDAV Methods in LNI • PROPFIND - very powerful request with multiple functions: • list names of properties • return property values • recurse through 1 or more levels of a "collection" resource. • PROPPATCH - changes value of or deletes properties on one resource. • GET - retrieves contents of a resource • PUT - replace or add a new resource to a collection • COPY - map a resource ("Item") to a different Collection. As noted, equivalent SOAP methods are provided Not Implemented: Locking, Versioning. MIT's CWSpace
Current DSpace (pre-LNI) DSpace Non Std. Non Web Batch Importer Content Provider, currently • Batch import (& export) • End user Web U/I • dspace-admin Web U/I • SRW, OAI-PMH Web U/I Web, but Non Auto- mated Adm Workflow DSpace Object API OCW Comm. "Biology (7)" "Physics (8)" Item MIT's CWSpace
"Physics (8)" Item DSpace with LNI DSpace DSpaceLNI.class - Web. - Stds. - Batch- able. Content Provider using LNI: • LNI SOAP end-point URL • LNI WebDAV URLs • dspace-admin (partial) • SRW, OAI-PMH • (Not replicated in LNI) • Still available: • Batch import (& export) • End user Web U/I DSpace LNI WebDAV DSpace Object API OCW Comm. "Biology (7)" MIT's CWSpace
"Physics (8)" Item Submission: Overview DSpace DSpaceLNI.class Lang. - Indep. Platform - Indep. OpenCourseWare Client Needs 3 Values: • LNI SOAP end-point URL http://userid:password@dspace.mit.edu/dspace-lni/lni/DSpaceLNI • Handle for OCW Community = hdl:1721.1/125 • Dept. Name (MIT "Course" Number) for Course to be submitted = "Physics (8)" DSpace LNI WebDAV DSpace Object API OCW Comm. 1721.1/125 "Biology (7)" MIT's CWSpace
Submission: 1. Lookup DSpace DSpaceLNI.class Request: OCW Comm. HANDLE LNI lookup() = http://dspace.mit.edu/dspace-lni/dav/lookup/handle/1721.1/125 Response: OCW Comm. LNI URL http://dspace.mit.edu/dav/dso_1721.1$125 DSpace LNI WebDAV DSpace Object API OCW Comm. 1721.1/125 dso_1721.1$125 Lookup "Biology (7)" dso_1721.1$197 "Physics (8)" dso_1721.1$253 MIT's CWSpace
Submission: 2. Collections DSpace DSpaceLNI.class Request: PROPFIND on LNI URL for children DSpace Collections' "displaynames": <propfind> <prop> <DAV:displayname/> </prop> </propfind> Response: MULTISTATUS <multiStatus> <resource> <href URI="dso_1721.1$197"/> <displayname>Biology (7)</displayname> </resource> <resource> <href URI="dso_1721.1$253"/> <displayname>Physics (8)</displayname> </resource>... DSpace LNI WebDAV DSpace Object API OCW Comm. 1721.1/125 dso_1721.1$125 "Biology (7)" dso_1721.1$197 Iterate… "Physics (8)" dso_1721.1$253 MIT's CWSpace
Submission: 3. Submit (PUT) DSpace DSpaceLNI.class Request: PUT to DSpace Collection LNI URL, including specification of Packager Type (IMS-CP): PUT /dspace/dav/dso_1721.1$253?package=OCW-IMSCP ....package contents in body... Response: LNI URL for DSpace Itemin "Location" Header: HTTP/1.1 201 OK Location: http://dspace.mit.edu/dspace/dav/dso_1721.1$836 ....other headers.... DSpace LNI WebDAV DSpace Object API OCW Comm. 1721.1/125 dso_1721.1$125 "Physics (8)" dso_1721.1$253 Item dso_1721.1$836 Ingest MIT's CWSpace
Submission: 4. Item Handle DSpace DSpaceLNI.class Request: PROPFIND on DSpace Item LNI URL for the DSpace Handle: <propfind> <prop> <dspace:handle/> </prop> </propfind> Response: Properties Requested === PROPERTIES Successfully returned: dspace:handle = "hdl:1721.1/836" DSpace LNI WebDAV DSpace Object API OCW Comm. 1721.1/125 dso_1721.1$125 "Physics (8)" dso_1721.1$253 OCW Content Mgt. System Stores DSpace Handle SQL Server Table: hdl:1721.1/836 Item dso_1721.1$836 1721.1/836 Reverse Lookup MIT's CWSpace
Submission: Summary DSpace DSpaceLNI.class In this 4-step OpenCourseWare submission example, we've seen: • SOAP endpoint URL • Dspace Handles • Dspace LNI URLs • LNI Lookup() function • WebDAV Properties • WebDAV Methods • PROPFIND (LNI request) • MULTISTATUS (LNI response) • LNI "Reverse Lookup" • WebDAV Headers (Location; Success/Fail) DSpace LNI WebDAV DSpace Object API OCW Comm. 1721.1/125 "Physics (8)" 1721.1/253 Item 1721.1/836 MIT's CWSpace
Future Development • Other Use Cases, Needs • Basic, Advanced … • Other DSpace objects • Bitstream Format Registry • Metadata Registry … • Other WebDAV methods • PUT (for Replacement) • DELETE • MKCOL … MIT's CWSpace