Notes
Slide Show
Outline
1
CWSpace
  • Archiving Courseware Websites to DSpace
  • Using a Content Packaging Profile
  • & Web Services
2
Project Overview
  •  Vision: Increase value in Institute publication: OCW
    • Also: Increase value in Open Source platform: DSpace
3
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 (?)
4
InterOp: What’s Available
  • Normalized data model (out of chaos)
    • "Sections" fit well to publication organization
  • Normalized content files (.PDF)
    • Reduced ability to disaggregate, re-purpose
5
InterOp: What’s Achievable
6
InterOp: Challenges
7
InterOp: Possible Resolution?
8
OCW Materials in DSpace =
New Ground
9
OCW Materials in DSpace =
New Ground
10
Content Packaging
11
Content Packaging: Steps Toward a Profile
  • Model OCW Content
  • Choose Packaging Specification
  • Profile That Specification


12
Content Package
  • Package Interchange File (PIF)


  • Usually a .zip file
  • Contains a manifest
  • Manifest references files (some in, some out of the package)


13
Object Models
  • Mapping one world to another
14
Object Models
  • Mapping one world to another
  • Content Package design considerations


15
Object Models
  • Mapping one world to another
  • Content Package design considerations
  • Use, re-use, subsequent dissemination
16
OCW to DSpace mapping
17
OCW to DSpace mapping
18
OCW to DSpace mapping
19
OCW to DSpace mapping
20
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
21
METS and IMS-CP
22
IMS-CP & OCW Content Model
23
IMS-CP & OCW Content Model
24
IMS-CP & OCW Content Model
25
IMS-CP & OCW Content Model
26
IMS-CP & OCW Content Model
27
IMS-CP & DSpace Object Model
28
IMS-CP & DSpace Object Model
29
IMS-CP & DSpace Object Model
30
IMS-CP & DSpace Object Model
31
IMS-CP & DSpace Object Model
32
OCW to IMS-CP to DSpace
33
Profiling Package Standards
  • 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


34
Application Profiles
35
Application Profiles
36
Application Profiles
37
Application Profiles
38
Application Profiles
39
Profiled Content Package…
  • Now with Package defined…


  • …need to move that across the network from producer to consumer…
40
Web Services
41
DSpace dev: LNI & PKGers
42
DSpace dev: LNI & PKGers
43
Lightweight Network Interface
  • 0.  What Was The Problem?


  • What Is the LNI?
  • DSpace & WebDAV
  • Example of Use: Submit OCW
  • Future Development…
44
What was the Problem…?
  • Content Providers wanted…
  • Networked Access:  Programmatically access the DSpace object model, but not running on the DSpace server
45
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
46
DSpace: Model
  • DSpace digital repository
  • Differs from file system
    • Submit URI not known
    • Workflow (optional)



47
WebDAV: Model, Basics
  • Each Resource named by a URL
  • Properties are "name value" pairs
  • Properties are extensible
  • Property values can be found, and modified
48
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
49
DSpace Mapped to WebDAV
50
DSpace Implemented as WebDAV
  • Properties
    • WebDAV
    • Custom for DSpace
  • DSpace LNI URLs
  • WebDAV Methods
51
Properties: WebDAV
  • DAV:creationdate
  • DAV:displayname
  • DAV:getcontentlength
  • DAV:getcontenttype
  • DAV:getlastmodified
  • DAV:resourcetype
  • …
52
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
53
Properties: Custom DSpace (2 of 3)
  • Community DSpace Objects
    • dspace:logo
    • dspace:short_description
    • dspace:side_bar_text
    • dspace:handle
    • …
54
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)
55
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
56
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.
57
Current DSpace (pre-LNI)
  • Content Provider, currently
  • Batch import (& export)
  • End user Web U/I


  • dspace-admin Web U/I



  • SRW, OAI-PMH
58
DSpace with LNI
  • 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
59
Submission: Overview
  • 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)"


60
Submission: 1. Lookup
  • 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


61
Submission: 2. Collections
  • 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>...
62
Submission: 3. Submit (PUT)
  • 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 Item in "Location" Header:
  • HTTP/1.1 201 OK
  • Location: http://dspace.mit.edu/dspace/dav/dso_1721.1$836
  •              ....other headers....
63
Submission: 4. Item Handle
  • 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"
64
Submission: Summary
  • 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)
65
Future Development
  • Other DSpace objects
    • Bitstream Format Registry
    • Metadata Registry …
  • Other WebDAV methods
    • PUT (for Replacement)
    • DELETE
    • MKCOL …
66
CWSpace
  • Archiving Courseware Websites to DSpace