Forum .LRN Q&A: ANN IMS-LD v.0.1d tagged and released

Hello all,

The E-LANE project is glad to announce the first stable release of the IMS-LD package.

The package has been developed on CVS HEAD (requires at least oacs-5-2). We will focus our efforts now on fixing bugs reports and improving the package.

The IMS-LD package has been designed for .LRN and consists of three packages: imsld, imsld-portlet and dotlrn-imsld. The first version of the packages have been tagged as imsld-1-0-1-final, imsld-portlet-1-0-0-final, dotlrn-imsld-1-0-0-final respectively, and as openacs-5-2-compat the three of them.

You are welcome to download and install the package, or try it at http://strauss.gast.it.uc3m.es:8020 (the user and password are set automatically).

Any suggestions, comments or bug reports will be greatly appreciated.

Finally, we have done a user's guide where we explain how to correctly install the package and how to use it. Besides, there you can find more information about the IMS LD standard.

Congratulations!

Do you have any sort of release notes? Will be good since this is a news that we would like to disseminate.

Also, what are the next step after this release, do you have a short-mid term roadmap?

Hello all,

As part of the E-LANE project, the uc3m is glad to announce the second release of the IMS-LD package. We are also glad to announce that we were invited to give a demo of the package in the IMS Global Consortium Quarterly Meetings and Learning Design Summit, which will be held in the Open University of the Netherlands in November.

Among other things, the package includes:

  • Full Level A support (parser and player)
    • Simple sequencing of activities
    • Simple integration with LORS and Assessment
    • Services support: E-mail and Forums
    • Roles support for the Unit of Learning (UoL)
  • Full Level B support (parser and player)
    • Properties support
    • Conditional sequencing
    • Evaluation of conditions/expressions
    • Support of imsldcontent resources (where the users can manipulate properties)
    • Services support: Monitor

The package is being developed in the HEAD branch of CVS. If you want to try it you have two options:

  1. Use our test server: http://strauss.gast.it.uc3m.es/ (There you will find info about the a ccounts)
  2. Install .LRN from the CVS or the latest tarball, then get the package from CVS and install it. (IMS-LD install guide)

We will now focus on:

  • Support for Level C
  • Monitoring tools for the course administrators
  • Fixing bugs and improving the package (both user interface and code)

You are welcome to try the package, and any suggestions, comments or bug reports will be greatly appreciated.

Collapse
Posted by Caroline Meeks on
Congratulations! Will your slides or a podcast of the presentation be available?

Do you have a screencast of an activity we could view?

Thanks
Caroline

Hi all,

".LRN is the first VLE to provide support for IMS LD, levels A, B & C." (quoted from http://www.imsglobal.org/ldsummit/4.%20Dai%20Griffiths_LD-summit_08nov06_post.pdf)

We are glad to announce that in the IMS Learning Design Summit, .LRN was presented as the first LMS (VLE) providing support for the IMS Learning Design specification. Among other projects/LMS working on the field, Moodle plans to support IMS LD in ther release in mid 2007.

Now we'll try to keep on the leading edge...

Regards,

Jose Pablo Escobedo

Collapse
Posted by john zhang on
Jose,

Thank you so much for your valuable information!
Any mor related links would be also appreciated from my side.

John

Sure, here they are:

  1. IMS Learning Design Specification
  2. IMS LD .LRN package documentation
  3. IMS LD .LRN user's and install guide
  4. Some IMS LD .LRN package given presentations
  5. Test server

Please feel free to try it and any comment/suggestion will be greatly welcomed

Besides, as stated in the given presentations, the official release supporting the level C of the spec is planned to be done in December (it's al ready finished and commited in CVS, but we are now doing some tunning and improvements).

jopez

Excellent!
I have always thought this is a huge contribution, the differentiation is the key, hope we can know how to take advantage of that =).
hi, i cannot download the files....why? thanks!
Hi John,

I tried downloading the files (in the links I posted) today and it worked fine... what files are you talking about?

Jose,

I really appreciate your prompt reply:

Maybe I went to the wrong place (I always got lost while I'm driving.... :)....Here is the link:

http://strauss.gast.it.uc3m.es:8020/

and I got the following message

There was a server error processing your request. We apologize.

Take me back where I was (before the error)

Database operation "dml" failed (exception ERROR, "ERROR: could not extend relation 1663/8690319/8691601: No space left on device
HINT: Check free disk space.
")

ERROR: could not extend relation 1663/8690319/8691601: No space left on device
HINT: Check free disk space.

SQL:
insert into sec_session_properties
(session_id, module, property_name, secure_p, last_hit)
select '60019', 'dotlrn', 'page_num', 'f', '1163592889'
from dual
where not exists (select 1
from sec_session_properties
where session_id = '60019' and
module = 'dotlrn' and
property_name = 'page_num')

Caroline,

I'm very sorry but I missed your post! Anyway, in case you haven't fond what you asked for, here there are some links to some presentations we have done (with screenshots), and some other relevant information:

  1. IMS Learning Design Specification
  2. IMS LD .LRN package documentation
  3. IMS LD .LRN user's and install guide
  4. Some IMS LD .LRN package given presentations
  5. Test server

Thanks for the interest.

Jose Pablo Escobedo

Thanks for reporting the bug, John.

That is our test server and it is reinstalled everyday. I'll check what the problem is and hopefully it will be running correctly again soon.

Regards

Collapse
Posted by Kenneth Wyrick on
i need documentation for upgrading the http://e-lane.org/pub to include the ims ld .

2005-10-12 English (EN) Release e-lane-1.0b8 with postgreSQL 7.4.7-6sarge1
The CD contains a /contents directory with SCORM E-LANE ICDL Courses in Spanish (Tutorial of edition of contents, Module 1, Module 2, Module 3 (OpenOffice) and Module 7). If you view the CD on Windows, you will see a page explains what the CD contains. (Administrator account: Login: e-lane, Password: e-lane)

I'm familiar with the http://e-lane.org/pub/tutorial.html

I have e-lane data files at:
http://www.solutiongrove.com/kmw/files/index?folder%5fid=241169

I'd like to have you download the boulder version and boot it with the e-lane liveCD see that i've installed the project manager, etp, simulations and others as a front end.

i also use the http://e-lane.org/public and I'd like to see more files in this area.

there are a few bugs in the current e-lane 10-05-05 version and with a bit of help from the community

I'm very interested in the simulations and the project-manager and have installed them on the current e-lane liveCD distro. i'm also looking at http://edubuntu.org http://dynebolic.org and http://moodle.org is easily installed via the cPanel Fantastico program installer. e-lane is very competitive

I'd also like to see the e-lane liveCD with a simple HD install script.

The thing that I find so wonderful about e-lane is the persistant OS image and the e-lane-data.img (where it stores all the system activity so that it can be used instantly on another computer booting with the e-lane liveCD

Collapse
16: e-lane files (response to 15)
Posted by Kenneth Wyrick on
I made the boulder e-lane files public just now at the same location in the original post: http://www.solutiongrove.com/kmw/files/index?folder%5fid=241169

Hello all,

We are glad to announce the third official release of the IMS-LD package for .LRN.

Among other things, this release includes:

  • Improvements
    • Bug fixes
    • UI improvements
    • Support for different roles in the conference services
    • Sql scripts for upgrade and delete the package
  • Full Level C support (parser and player, previously commited)
    • Notifications support
    • Runtime assigned activities (assigned by the notifications)
  • Monitoring Tools for the Course Administrator
    • List of activities in the run
    • Activity reports: Users that have visited the activity
    • User reports: Activities that a given user has visited

As usual, please feel free to try our test server (http://strauss.gast.it.uc3m.es), or install the package from CVS (IMS-LD install guide)

We will now focus on code and functionalities improvements, bug fixes, UI and performance improvements; but regarding to the IMS LD spec, there is nothing else to do =)

Regards and happy holidays!

Jose Pablo Escobedo

Hi Jose Pablo,

Thanks for that new release of imsld package. I've installed it on a fresh install and now will "play" with it.

However I've noticed a couple of things:

- The packages are tagged as 1-2-0-final but the info files say it is version 1.0d (imsld) and 0.1d (imsld-portlet and dotlrn-imsld).

- The pg upgrade script is "upgrade-0.01d-1.0d.sql" but previous version of imsld was "0.1d" (not 0.01d) so it won't be run at upgrade time.

Thank for the info Emmanuelle. These glitches will be quickly fixed. As usual, we are eager to get your feedback once you "played" with the tool.
Thanks very much Emma!

The name of the script has been fixed, even though when I tried it before committing everything went OK. I think that it was because the APM looks for every upgrade script with a version number lower than the current one and runs it, no mater what.

Regarding the tag name, I had understood (somebody correct me if I'm wrong) that the package version in the info file and the CVS tag name do not necessarily have to be the same.

Thanks again for your feedback.

Regards

Hi José Pablo,

I've tried to upgrade imsld from version 0.1d to version 1.0d and got the following error (I'm using dotLRN 2.2.1-final on pg 8.1):

CONTEXT:  sentencia SQL: create rule imsld_send_mail_data_r as on insert to imsld_send_mail_datai do instead (
                update cr_dummy set val = (
                select content_revision__new(
                                     new.title,
                                     new.description,
                                     now(),
                                     new.mime_type,
                                     new.nls_language,
                                     case when new.text is null 
                                              then new.data 
                                              else new.text
                                           end,
                                     content_symlink__resolve(new.item_id),
                                     new.revision_id,
                                     now(),
                                     new.creation_user, 
                                     new.creation_ip,
                                     new.object_package_id
                ));
                 insert into imsld_send_mail_data ( data_id, role_id, mail_data ) values (cr_dummy.val, new.role_id, new.mail_data); );
PL/pgSQL function "content_type__refresh_trigger" line 73 at execute statement
sentencia SQL: SELECT  content_type__refresh_trigger( $1 )
PL/pgSQL function "content_type__refresh_view" line 105 at perform
sentencia SQL: SELECT  content_type__refresh_view( $1 )
PL/pgSQL function "content_type__drop_attribute" line 42 at perform
CONTEXT:  sentencia SQL: create rule imsld_send_mail_services_r as on insert to imsld_send_mail_servicesi do instead (
                update cr_dummy set val = (
                select content_revision__new(
                                     new.title,
                                     new.description,
                                     now(),
                                     new.mime_type,
                                     new.nls_language,
                                     case when new.text is null 
                                              then new.data 
                                              else new.text
                                           end,
                                     content_symlink__resolve(new.item_id),
                                     new.revision_id,
                                     now(),
                                     new.creation_user, 
                                     new.creation_ip,
                                     new.object_package_id
                ));
                 insert into imsld_send_mail_services ( mail_id, service_id, recipients, is_visible_p, parameters, username_property_id ) values (cr_dummy.val, new.service_id, new.recipients, new.is_visible_p, new.parameters, new.username_property_id); );
PL/pgSQL function "content_type__refresh_trigger" line 73 at execute statement
sentencia SQL: SELECT  content_type__refresh_trigger( $1 )
PL/pgSQL function "content_type__refresh_view" line 105 at perform
sentencia SQL: SELECT  content_type__refresh_view( $1 )
PL/pgSQL function "content_type__drop_attribute" line 42 at perform
CONTEXT:  sentencia SQL: create rule imsld_send_mail_services_r as on insert to imsld_send_mail_servicesi do instead (
                update cr_dummy set val = (
                select content_revision__new(
                                     new.title,
                                     new.description,
                                     now(),
                                     new.mime_type,
                                     new.nls_language,
                                     case when new.text is null 
                                              then new.data 
                                              else new.text
                                           end,
                                     content_symlink__resolve(new.item_id),
                                     new.revision_id,
                                     now(),
                                     new.creation_user, 
                                     new.creation_ip,
                                     new.object_package_id
                ));
                 insert into imsld_send_mail_services ( mail_id, service_id, recipients, is_visible_p, parameters ) values (cr_dummy.val, new.service_id, new.recipients, new.is_visible_p, new.parameters); );
PL/pgSQL function "content_type__refresh_trigger" line 73 at execute statement
sentencia SQL: SELECT  content_type__refresh_trigger( $1 )
PL/pgSQL function "content_type__refresh_view" line 105 at perform
sentencia SQL: SELECT  content_type__refresh_view( $1 )
PL/pgSQL function "content_type__drop_attribute" line 42 at perform
psql:../imsld-level-c-create.sql:47: ERROR:  la relacin t_imsld_rar_seq ya existe
psql:../imsld-level-c-create.sql:49: ERROR:  la relacin imsld_rar_seq ya existe
psql:../imsld-level-c-create.sql:64: ERROR:  la relacin imsld_runtime_activities_rels ya existe

Thanks for reporting the bug Emma.

I don't know yet what's causing it, but apparently the sql upgrade script is executed more than once and that's why the upgrade fails. I'll work on it and I hope to fix it soon.

Regards

Hi again Emma,

I think this bug was related to the previous one you reported about the sql upgrade file name. The code was "duplicated" in the sql upgrade script and in the tcl upgrade script. It is fixed now. Please re-check out the code of the latest release (imsld-1-2-0-final) and it should work ok.

Thanks again,

Jose Pablo

Thanks Jose Pablo, upgrade works fine now :)
Hi,

I've installed imsld on a fresh install and got some problems when uploading a level B LD after creating runs, groups etc:

1) a typo in the context_info query (proc imsld::runtime::activity_structure::show_hide). I fixed it locally:

original query:

db_1row context_info {
select isa.structure_id,
isa.item as structure_item_id
from imsld_runs ir, imsld_componentsi comp, imsld_activity_structuresi isa, imsld_imsldsi ii
where ir.run_id = :run_id
and ir.imsld_id = ii.imsld_id
and ii.item_id = comp.imsld_id
and isa.identifier = :identifier
and isa.component_id = comp.item_id
}

fixed query:

db_1row context_info {
select isa.structure_id,
isa.item_id as structure_item_id
from imsld_runs ir, imsld_componentsi comp, imsld_activity_structuresi isa, imsld_imsldsi ii
where ir.run_id = :run_id
and ir.imsld_id = ii.imsld_id
and ii.item_id = comp.imsld_id
and isa.identifier = :identifier
and isa.component_id = comp.item_id
}

2) a typo in the learning_activity db_foreach (same proc):

Original:

# 2. show the learning activities
db_foreach learning_activity {
select la.item_id as activity_item_id,
la.identifier as la_identifier
from imsld_learning_activitiesi, acs_rels ar
where ar.object_id_one = :structure_item_id
and ar.object_id_two = la.item_id
} {
imsld::runtime::isvisible::show -run_id $run_id -identifier $la_identifier -action $action -user_id $user_id
}

Fixed one:

# 2. show the learning activities
db_foreach learning_activity {
select la.item_id as activity_item_id,
la.identifier as la_identifier
from imsld_learning_activitiesi la, acs_rels ar
where ar.object_id_one = :structure_item_id
and ar.object_id_two = la.item_id
} {
imsld::runtime::isvisible::show -run_id $run_id -identifier $la_identifier -action $action -user_id $user_id
}

But after fixing those 2, hoping my fix is correct, I still got an error:

invalid command name "imsld::runtime::isvisible::show"
while executing
"imsld::runtime::isvisible::show -run_id $run_id -identifier $la_identifier -action $action -user_id $user_id"
("uplevel" body line 2)
invoked from within
"uplevel 1 $code_block "
("1" arm line 1)
invoked from within
"switch $errno {
0 {
# TCL_OK
}
1 {
# TCL_ERROR
..."
("while" body line 20)
invoked from within
"while { [db_getrow $db $selection] } {
incr counter
if { [info exists array_val] } {
unset array_val
..."
("uplevel" body line 5)
invoked from within
"uplevel 1 $code_block "
invoked from within
"db_with_handle -dbn $dbn db {
set selection [db_exec select $db $full_statement_name $sql]

set counter 0
while { [db_getrow $..."
(procedure "db_foreach" line 36)
invoked from within
"db_foreach learning_activity {
select la.item_id as activity_item_id,
la.identifier as la_identifier
from imsld_learning_activ..."
(procedure "imsld::runtime::activity_structure::show_hide" line 32)
invoked from within
"imsld::runtime::activity_structure::show_hide -run_id $run_id -identifier [$refNodes getAttribute "ref"] -action "show""
("activity-structure-ref" arm line 2)
invoked from within
"switch -- [$refNodes localName] {
{class} {
set class [$refNodes getAttribute class ""]
..."
("foreach" body line 2)
invoked from within
"foreach refNodes [$executeNode childNodes] {
switch -- [$refNodes localName] {
{class} {
..."
("show" arm line 2)
invoked from within
"switch -- [$executeNode localName] {
{show} {
foreach refNodes [$executeNode childNodes] {
switch -- [..."
(procedure "imsld::statement::execute" line 8)
invoked from within
"imsld::statement::execute -run_id $run_id -statement [$thenNode childNodes] -user_id $user_id"
(procedure "imsld::condition::execute" line 14)
invoked from within
"imsld::condition::execute -run_id $run_id -condition $condition -user_id $user_id"
(procedure "imsld::condition::execute_all" line 17)
invoked from within
"imsld::condition::execute_all -run_id $run_id -user_id $user_id"
("foreach" body line 2)
invoked from within
"foreach user_id $users_list {
imsld::condition::execute_all -run_id $run_id -user_id $user_id
}"
("uplevel" body line 33)
invoked from within
"uplevel {
ad_page_contract {
Confirm changes and set a run as activeAsign users assigned to an specified group

@author mailto:lfuente@it....";
(procedure "code::tcl::/web/cursos/packages/imsld/www/admin/imsld-confir..." line 2)
invoked from within
"code::tcl::$__adp_stub"
invoked from within
"if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init tcl $__adp_stub
..."
("uplevel" body line 3)
invoked from within
"uplevel {

if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init t..."
(procedure "adp_prepare" line 2)
invoked from within
"adp_prepare "
(procedure "template::adp_parse" line 30)
invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
(procedure "adp_parse_ad_conn_file" line 5)
invoked from within
"$handler"
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
$handler
} ad_script_abort val {
# do nothing
}"
invoked from within
"rp_serve_concrete_file [ad_conn file]"
(procedure "rp_serve_abstract_file" line 60)
invoked from within
"rp_serve_abstract_file "$root/$path""
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
rp_serve_abstract_file "$root/$path"
set tcl_url2file([ad_conn url]) [ad_conn file]
set tcl_url2path_info..."

Hi Emma,

I really want to thank you for all of your help!

The bug is fixed and commited in head. It was a proc which was not tested by our UoLs, it had some typos and had wrong proc calls. It should work fine now.

I encourage you to keep reporting any bug that you might find (not too many, I hope! ;o)

Regards,

Jose Pablo

Thank you Jose Pablo for fixing this so quickly. I can upload a level-b LD with no error now :).

Hello all,

We are glad to announce the forth official release of the IMS-LD package for .LRN. The player (which now is also referred to as GRAIL) is the most important part of the package and it is the one we are working on.

Among other things, this release includes:

  • Improvements
    • Bug fixes
    • UI improvements
    • Properties of type file now correctly handled
    • The resources of the UoL can now be edited (not only viewed) from the file-storage UI, not having to upload a new zip when editing a single resource
  • New additions
    • Monitoring Tools for the Course Administrator: now all the properties of the UoL can be edited from a single monitoring page

Besides, we are also glad to announce that we have succesfully completed the first real experience with a real course using the GRAIL player, as part of the Mosaic project.

As usual, please feel free to try our test server (http://strauss.gast.it.uc3m.es), install the package from CVS (IMS-LD install guide), or try our virtual machine.

Comments, suggestions and bug reports are allways more than welcome.

Regards,

Jose Pablo Escobedo

I forgot to say that we also took into account the evaluation done by Olga Revilla and made some improvements on that too
Collapse
Posted by vivian Aguilar on
I installed and upload some content but navigating inside of one UoL i got this:
missing close-bracket
while executing
"set one_prerequisite_ul [imsld::process_resource_as_ul -resource_item_id $resource_item_id -run_id $run_id -dom_doc $dom_doc -dom_node $dom_node
..."
("uplevel" body line 6)
invoked from within
"uplevel 1 $code_block "
("1" arm line 1)
invoked from within
"switch $errno {
0 {
# TCL_OK
}
1 {
# TCL_ERROR
..."
("while" body line 20)
invoked from within
"while { [db_getrow $db $selection] } {
incr counter
if { [info exists array_val] } {
unset array_val
..."
("uplevel" body line 5)
invoked from within
"uplevel 1 $code_block "
invoked from within
Hi Vivian!

Thanks for the bug report. It is fixed now. Please update the
file imsld-procs.tcl

Best regards,

jopez