source: enpraxis.educommons/trunk/enpraxis/educommons/IMSContentPackaging.txt @ 566

Revision 566, 17.1 KB checked in by tom, 4 years ago (diff)

updating documentation and educommons.com links

Line 
1IMS Content Packaging and eduCommons 3.2.1-rc2
2================================================
3
4This document details how to write IMS Content packages that are compatible with
5eduCommons 3.2.1-rc2.
6
7eduCommons uses version 1.2 of the IMS Content Packaging Specification. XML Schemas
8for the specification can be found at http://imsglobal.org/xsd/imscp_v1p2.xsd and
9http://imsglobal.org/xsd/imsmd_v1p2p4.xsd.
10
11Using XML Schemas and a Validating XML Editor
12=============================================
13
14In the process of writing software that exports eduCommons supported IMS Content
15Packages, it is highly recommended to use a validating XML editor and associated
16schema files to check manifests for validity. eduCommons in some circumstances
17will expect import manifests to meet validity standards, and the chances of
18creating content packages that will work with eduCommons will be greatly increased.
19eduCommons provides XML schema files on export for this purpose.
20
21An XML schema file for eduCommons specific metadata can be found both online
22(http://cosl.usu.edu/xsd/eduCommonsv1.1.xsd) and in eduCommons IMS Content
23Packages.
24
25To use the IMS Content Package XML schemas along with the eduCommons schema, make
26sure your manifest specifies these packages and the relevant XML schema informtation
27in the header. Below is an example of attributes which you may want to set on the
28*manifest* tag.
29
30::
31
32    xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
33    xmlns:eduCommons="http://cosl.usu.edu/xsd/eduCommonsv1.1"
34    xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
35    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
36    xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p2.xsd
37                        http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p4.xsd
38                        http://cosl.usu.edu/xsd/eduCommonsv1.2 eduCommonsv1.2.xsd">
39
40
41
42Specifying and Using eduCommons Namespaces
43==========================================
44
45The IMS CP specification allows content packages to be extended using custom
46metadata fields. eduCommons takes advantage of this to pass information that
47does not fit into the LOM metadata format. Using the eduCommons extensions
48requires the use of the eduCommons namespace in typical XML style.
49
50eduCommons can read values from colon prefixed tags, or by using an *xmlns*
51attribute on the top level eduCommons tag as shown below. Although both methods
52are acceptable, the latter is preferred due to the fact that it makes the
53corresponding XML more readable. Examples in the rest of the document will
54be given in this format.
55
56::
57
58   <manifest xmlns="....
59             xmlns:eduCommons="http://cosl.usu.edu/xsd/eduCommonsv1.2"
60             ...
61             >
62
63       ...
64
65       <eduCommons:eduCommons>
66           <eduComons:objectType>
67               Course
68           </eduCommons:objectType>
69       </eduCommons:eduCommons>
70
71       ...
72    </manifest>
73
74::
75
76    <eduCommons xmlns="http://cosl.usu.edu/xsd/eduCommonsv1.2">
77        <objectType>
78            Course
79        </objectType>
80    </eduCommons>
81
82
83How to Make Items Appear in the Left Hand Navigation
84====================================================
85
86eduCommons will add links to objects in the left hand navigation of a course
87view through the use of the *organizations* section in an IMS content package.
88Becuase IMS CP standards support multiple organizations within a manifest,
89eduCommons will use the default organization if it is specified. If no default
90is specified eduCommons will read from the first *organization* tag listed
91in the organizations section.
92
93eduCommons gets its left hand navigation information from the *isVisible* attribute
94on items. If this attribute is present and set to true, eduCommons will mark
95this object as displayable in the left hand navigation. eduCommons will order
96left hand navigation items based on the ordering of *item* tags within the
97organization section.
98
99An example of how to write an organizations section that eduCommons can read is
100given below. Notice how the default organization section is set, and how unique
101identifiers are used to link the item to the resource in the resources section.
102
103The IMS CP specification requires that any id value use be unique to the manifest,
104otherwise anything can be used.
105
106::
107
108   <oganizations default="ORG1234">
109       <organization identifier="ORG1234">
110           <item identifier="ITM1234" identifierref="RES1234" isVisible="true">
111               <title>
112                   Hello World
113               </title>
114           </item>
115           ...
116       </organization>
117   </organizations>
118   <resources>
119       <resource identifier="RES1234">
120          ...
121       </resource>
122       ...
123   </resources>
124
125Setting Metadata on eduCommons Enabled IMS Content Packages
126===========================================================
127
128eduCommons stores metadata for every content object entered into its repository.
129In order to write a content package that eduCommons can process, it is necessary
130to include a metadata section for every resource specified in the manifest.
131
132It is also important to note that eduCommons currently will not read top level
133metadata sections, nor will it support nested manifests within IMS Content
134Packages. Support for nested manifests, and non eduCommons content packages
135are currently listed as future eduCommons features.
136
137An example of how to lay out your manifest section to be eduCommons friendly is
138given below.
139
140::
141
142    <manifest>
143        <organizations>
144            <organization>
145            </organization>
146        </organizations>
147        <metadata>
148            ... any metadata specified here is ignored by eduCommons ...
149        </metadata>
150        <resources>
151            <resource>
152                <metadata>
153                   ... metadata specified here is used to apply metadata
154                       to content objects ...
155                </metadata>
156                <file href=" ... used by eduCommons to name the content object
157                                 and find it within the package ..."/>
158            </resource>
159            ...
160        </resources>
161        <manifest>
162            ... nested manifests are not currently supported by eduCommons,
163                but may be at a future date ...
164        </manifest>           
165    </manifest>
166
167
168The eduCommons Course Object
169============================
170
171The eduCommons course object is different to other content objects in that
172it has extra requirements. eduCommons represents courses as both a document
173and a container for content objects. This means in an IMS Manifest it will
174appear as a content object that is connected to an HTML file (used to
175render the front course page) and is also a folder which contains  all content
176related to the course. It appears in the manifest as both.
177
178Courses also have additional metadata associated with them in the eduCommons
179specific metadata section. This extra metadata is specified in a further section
180below.
181
182Each manifest should specify a course object as the initial resource.
183
184
185LOM Metadata Fields Read By eduCommons on Import
186================================================
187
188eduCommons uses Dublin Core fields to store metadata internally. In order to
189be able to support IEEE LOM metadata standards in IMS Content Packages, some
190mapping between metadata standards must be done. Not all LOM metadata fields
191are supported, and although eduCommons may populate some of these extra fields
192on output, it only supports reading data from the following fields:
193
1941. General
195----------
196
1971.2 Title
198~~~~~~~~~
199
200eduCommons uses this field to set the title on an object. This field is
201required.
202
2031.3 Language
204~~~~~~~~~~~~
205
206eduCommons uses the language setting to set the language of the content object
207and its metadata. eduCommons does not support setting language values on metadata
208or individual metadata fields. All LOM language attributes in "langstring" nodes
209are ignored by eduCommons. This field is optional, but recommended.
210
2111.4 Description
212~~~~~~~~~~~~~~~
213
214eduCommons sets descriptions on content objects using this field. This field is
215optional, but recommended.
216
2171.5 Keyword
218~~~~~~~~~~~
219
220eduCommons supports the use of keywords for search purposes over content. It
221uses this LOM field. This field is optional.
222
223
2242. Lifecycle
225------------
226
2272.3 Contribute
228~~~~~~~~~~~~~~
229
230eduCommons supports a number of fields based on the LOM Contribute node.
231
232When the role in a contribute node is set to "creator", eduCommons will
233set the eduCommons creator field to the name value in the VCARD of this
234section. When the role is set to "creator" it will also use the date field
235to set the creation date on the eduCommons content object.
236
237eduCommons will set its contributors field with the names listed in any other
238LOM based contribute nodes. The roles defined in additional LOM based contribute
239nodes are not read or stored by eduCommons.
240
241eduCommons also supports a number of eduCommons specific contribute nodes
242which are detailed in the next section.
243
244Other
245-----
246
247eduCommons may support a larger number of LOM fields in the future. The current
248supported set is likely to be expanded. However, attempts will be made to remain
249compatible with the above listed fields.
250
251
252LOM Based eduCommons Metadata Fields
253====================================
254
255The *rights holder* field
256-------------------------
257
258eduCommons supports setting a rights holder for every content object. However, it
259also supports setting content to use a site wide default, making it possible to
260set a default rights holder over the whole eduComomns site. To use the site wide
261default setting, use "(site default)" as the rights holder name.
262
263eduCommons will read an write the rights holder information in a *contribute*
264section in the LOM metadata section of an IMS content package. The *source*
265tag in this contribute section is set to "eduCommonsv1.1" signifying that this
266role is defined by eduCommons and is not a standard LOM role. An example of how
267the rights holder is given below. The date field can be set to a publication or
268creation date. It does not matter, as eduCommons does not use the date field in
269this section.
270
271::
272
273    <contribute>
274        <role>
275            <source>
276                <langstring xml:lang="en">
277                    eduCommonsv1.2
278                </langstring>
279            </source>
280            <value>
281                <langstring xml:lang="en">
282                    rights holder
283                </langstring>
284            </value>
285        </role>
286        <centity>
287            <vcard>
288                BEGIN:VCARD
289                FN: John Smith
290                END:VCARD
291            </vcard>
292        </centity>
293        <date>
294            <datetime>
295                2006-08-07 15:59:23
296            </datetime>
297        </date>
298    </contribute>
299
300Note
301  The VCARD Section In The Xml File Should Be Left Aligned, With No Whitespace In
302  Order To Comply With VCARD Standards.
303
304
305The *Instructor* and *InstructorEmail* fields
306---------------------------------------------
307
308The instructor field is also encoded in a LOM contribute node, similar to the
309rights holder field above. Things to note here are that eduCommons will read both
310the *FN:* and *EMAIL;INTERNET:* fields out of the VCARD, and use them to set
311the *Instructor* and *InstructorEmail* settings accordingly.
312
313::
314
315    <contribute>
316        <role>
317            <source>
318                eduCommonsv1.2
319            </source>
320            <value>
321                instructor
322            </value>
323        </role>
324        <centity>
325            <vcard>
326                BEGIN:VCARD
327                FN: John Smith
328                EMAIL;INTERNET: johnsmith@somewhere.com
329                END:VCARD
330            </vcard>
331        </centity>
332        <date>
333            <datetime>
334                2006-08-07 15:59:23
335            </datetime>
336        </date>
337    </contribute>
338
339Note
340  The VCARD Section In The Xml File Should Be Left Aligned, With No Whitespace In
341  Order To Comply With VCARD Standards.
342
343
344
345eduCommons Specific Metadata
346============================
347
348This section details eduCommons metadata that does not appear within the LOM
349metadata section. Instead it appears in a section following the LOM metadata as
350follows.
351
352::
353
354    <metadata>
355        <lom xmlns="http://www.imsglobal.org/xsd/imsmd_v1p2">
356            <general>
357            </general>
358            <lifecycle>
359            </lifecycle>
360            ...
361        </lom>
362        <eduCommons xmlns="http://cosl.usu.edu/xsd/eduCommonsv1.2">
363           <objectType>
364           </objectType>
365           ...
366        </eduCommons>
367    </metadata>
368
369
370The following section describes the tags supported by eduCommons in detail.
371
372eduCommons Metadata Tags
373========================
374
375The *objectType* tag
376--------------------
377
378The *objectType* tag is used to signify what type of content object eduCommons
379should create for the given resource. Possible values are Course, Document,
380File, Image, or Link. This field is required. HTML or plain text resources
381should use the document setting. Images should use the image setting. All other
382resources should use the File setting, unless they are an external link. If
383a resource is in HTML format and represents a course home page, use the Course
384setting and make sure the resource appears first in the manifest resources
385section.
386
387::
388
389    <objectType>
390        Course
391    </objectType>
392
393The *copyright* tag
394-------------------
395
396The *copyright* tag is used by eduCommons to license content objects. It also uses
397the field to render copyright bylines for objects. The field should specify both
398the copyright and the date. e. g. "Copyright 2006". This field is optional. If
399it is not included, the site default copyright string will be used instead.
400
401::
402
403    <copyright>
404        Copyright 2006
405    </copyright>
406
407The *license* tag
408-----------------
409
410The license tag is used to assign a copyright license to a content object. It
411is also used to render a copyright byline for an object.
412
413The license field supports four parameters:
414
415- License Cateogory
416- License Name
417- License URL
418- License Icon URL
419
420The category field appears as an attribute in the *license* tag, and must be
421set to one of the following:
422
423- (site default)
424- All Rights Reserved
425- GNU Free Document License
426- Creative Commons License
427- Other
428
429The category field is also used as a label by eduCommons to allow a user to
430select a copyright license for a content object. It is a required field.
431
432The *licenseName* tag is used to identify the name of the license. This name
433will be used in the copyright byline, and should slot into the following sentence:
434This resource is licensed under a ____________. This is an optional field only
435if "(site default)" is chosen. Otherwise it must be specified.
436
437The *licenseUrl* tag is used to specify a public web site where the legal definition
438of the license is displayed. It allows the license name in the copyright byline to
439be linked directly to the definition. It is optional.
440
441The *licenseIconUrl* tag is used to specify a public icon image that represents
442the content license. This field is optional, and likely not to be included, unless
443the license includes a representative icon. An example where you would want
444to include this field would be to specify a creative commons icon along with
445the license.
446
447Below is an example of how the license field would be encoded within the eduCommons
448metadata.
449
450::
451
452    <license category="Creative Commons License">
453        <licenseName>
454            Attribution 2.5
455        </licenseName>
456        <licenseUrl>
457            http://creativecommons.org
458        </licenseUrl>
459        <licenseIconUrl>
460            http://creativecommons.org
461        </licenseIconUrl>
462    </license>
463
464The *clearedCopyright* tag
465--------------------------
466
467The *clearedCoypright* field is used by eduCommons to keep track of whether or not
468a content object has been cleared for publication in an open content environment.
469It can be set to either "true" or "false". This field is optional, and is set to
470"false" by default.
471
472::
473
474    <clearedCopyright>
475        true
476    </clearedCopyright>
477
478Course related metadata
479=======================
480
481The following metadata is only applicable when the *objectType* field is set
482to Course. It contains metadata that is specific to course objects.
483
484The *courseId* tag
485------------------
486
487The *courseId* tag is used to identify the course catalog number at an institution.
488It is used by eduComomns to render a full title of a course. Although this tag not
489required, is highly recommended.
490
491::
492
493    <courseId>
494        INST7000
495    </courseId>
496
497The *term* tag
498--------------
499
500The *term* tag is used by eduCommons to specify which term, or semester the course
501was taught in. It is used by eduCommons to render a full title of a course. Although
502this tag is not required, it is highly recommended.
503
504::
505 
506    <term>
507        Fall 2005
508    </term>
509
510The *displayInstructorEmail* tag
511--------------------------------
512
513The *displayInstructorEmail* tag is used to specify whether or not an Instructor's
514Email address should be published or not. It can be set to "true" or "false".
515This tag is optional and defaults to "false".
516
517::
518
519    <displayInstructorEmail>
520        false
521    </displayInstructorEmail>
522
523
524Example IMS Content Packages
525============================
526
527You can create example IMS packages by building content in eduCommons and then
528use the IMS export functionality to export them. This feature can be useful
529in figuring out how to write compatible packages.
Note: See TracBrowser for help on using the repository browser.