Forum .LRN Q&A: dotLRN applets for Wimpy Point (slim) and Glossary

Greetings !

We just started integrating Wimpy Point and Glossary with dotLRN ( in PostgreSQL, but Oracle port should be easy ). Is any effort for these two OpenACS packages already underway ?

The task looks straight-forward on lines of FAQ. But there are certain questions :


* What we display in wimpy portlet :
If we exactly emulate FAQ portlet for Wimpy Point, it would mean display list of presentations, and in case there is only one presentation, then display (first n ?) slides.
* What will be displayed in Glossary portlet ?
Usually, a class will be for a single subject so there would be single Glossary and we can display glossary terms in the portlet. It makes sense to display terms added most recently.

Related thread is here https://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=00053O

Thanks !

Samir, this is great. May I ask which institution is developing this?
Thanks Michael.

This is for my alma mater M. S. University of Baroda in India  and the community :). Development is by Symphinity (symphiniity.com ).

Samir,

I have worked with the newest version of Wimpy Point for OpenACS and it needs some work before it can be ported to dotLRN. The present version has a few bugs, some which can even cause database inconsistencies (one slide had three live revisions with two different sort keys, every slide should just have one live revision and one sort key which caused an error - Peter Marklund tracked the problem down, but could not find the cause).

One thing that is missing is a function which allows the user to create a computer/network independent version of their presentation (for backup purposes). Printing each individual slide is quite laborious and unpractical (having something serverside that creates a pdf of all the slides would be nice).

As far as a standard for glossary export (as you asked in the other thread) you should seriously consider the IMS Content Packaging Specification as outlined here: http://www.imsglobal.org/content/packaging/index.cfm

I found a sample implementation of an export from a glossary tool in a commercial eLearning platform: http://www.webct.com/service/ViewContent?contentID=10936290 Starting on page 64 of the document you will find an recommended IMS data manifest and data file for the WebCT glossary tool.

It would also be nice to see a bulk upload/download feature for glossary which uses a format the users are used to dealing with (e.g. .csv).

I also feel that it is critical for the platform that all dotLRN packages/ applets take advantage of the group/community structures which are built into dotLRN (which I hope make it into OpenACS soon). This applies to both the glossary and Wimpy Point (and all other packages/applets for that matter). This would allow for different levels of collaborative authoring, content sharing, permissioning and publication with others in learning communities. Content should be able to be shared and commented on within a scope defined by the author, so that the author can publish to any user, group, or the general public. It would be best if there was a single UI for this. This kind of functionality will eventually make dotLRN stand out of the crowd... I really look forward to seeing the approach taken with the Research and Collaboration tool.

Samir, it sounds to me like what you have on your hands is an outstanding pilot project for the community to collectively learn about how to port a package to dotLRN the right way. In particular, following the suggestions that Carl makes above for glossary would be fantastic. I'm especially excited about the prospect of IMS standards integration.

Please do keep posting on your thoughts and progress as you go. This is important.

I'm really exicited you are doing this Samir,

I like the idea of the portlet for WP showing links to the slide if there is only one presentation.

If you look at dotLRN you see two basic looks for portlets the FAQ look with a table and the News look with a list. Right now we are moving towards the News look, at least for Survey.

Glossary is an interesting question. Perhaps we need two portets. A full_glossary page that is designed to take up a whole page like full_calendar and a mini_glossary that is just a small portlet that lets you click to the glossary and maybe type in a letter.  Then instructors and group admins could decide which is more appropriate for thier use.

Thanks Michael, Carl and Caroline !

As this discussion continues, myself and colleagues Adarsh and Ashish are working on these. By next Monday, we should be ready for test-drive !

*Wimpy Point : We will add package_id column for presentations, so it can be scoped appropriately. Carl, your suggestion is very good - We will also provide printer-friendly view of presentation, suitable for printing through browser. I am also experimenting integrating MathML support for Wimpy. We have some bug fixes after which 4.5 Wimpy seems quite stable.

I have impression that the basic dotLRN system is pretty developer-friendly when it comes to integrating an OpenACS package with itself. As long as a package is able to differntiate between data from  different instances, it should be scopable per dotLRN schme of things.

*Glossary : We have csv export/import of glossary.  For XML, we have simple DTD reflecting the data model. Carl, we can use the XML format in the link you provided, but it seems proprietary and IMS is silent on Glossary. May be OpenACS can submit a proposal for Glossary standard to IMS :). For portlet, we'll go ahead and implement Caroline's suggestion.

* IMS Content packaging : I have implemented IMS Question and Test (QTI) but am barely familiar with IMS content packaging/ SCROM. This is really important issue encompassing whole dotLRN e.g. archive of a community/class can be in IMS format. This really deserves a full fledged discussion.

Hi Samir and Others,

I am a student of University Sydney and currently given a thesis project which is quite similar to the stuff you guys are doing.

I am using the ETP package and have to implement functionality to import/export XML. My project is to develop a e-Learning application to deliver courses online.

Here's a brief explanation:

1. IMPORT XML : The User comes and writes the chapters of a book using ETP and wants to save it as XML DTD Docbook. This is a function to upload the content to the web page as a XML Docbook.

2. EXPORT XML : This is a function to download the Docbook in order to put that in another page if needed.This is quite complicated and hard to implement.

Please suggest ways to implement the above two cases. Any ideas/similar implementations would really help me get started.

This sounded quite similar to export/import glossary and that's the reason I posted this thread. Please keep updated of future threads.

Thanks!

Sandhya,

Your project is very interesting.

We used nsxml bundled with OpenACS distribution which does not have many XML features, and I think in very near future it may be replaced with something better (tDOM??). http://www.fifthgate.org has good article on using nsxml with AOLServer.

A look at this link ( http://dev.openacs.org/projects/openacs/developers/todo ) suggests that effort is underway to provide support for XML import /export for content repository. You can co-ordinate your work with that, as Glossary, News, WP, ETP all use content repository to store there data.And ETP itself has its version 2.0 shaping up...

Ok, here is the alpha version for Postgres : WP- Glossary code . Much appreciation for suggestions and feedback !

Sandhya, you may find glossary-xml-import.tcl glossary-xml-export.tcl in glossary package helpfull - it uses nsxml to parse xml document. wp-slim is similar.

Hello Samir, Thanks for taking on this task. Here is what I found when trying to get a printer friendly version of a presentation:


Request Error

can't read "attach_list:rowcount": no such variable
    while executing
"for { set __t28_i 1 } { $__t28_i <= ${attach_list:rowcount}  } { 
incr __t28_i } {
    upvar 0 attach_list:$__t28_i attach_list
  
if {[string equal "$..."
    ("uplevel" body line 222)
    invoked from within
"uplevel {
          set __adp_output ""

    set __adp_master [template::util::url_to_file "master" 
"$__adp_stub"]
set __adp_properties(title) "${pres_ti..."
    (procedure 
"template::code::adp::/web/EOR2/packages/wp-slim/www/serve-pr..." 
line 2)

Have I missed something? Thanks, Zack.
OK. I see - needed to add at least one slide first.

Thanks, Zack.

Samir, I get the following error when deleting a presentation:



Request Error

Database operation "0or1row" failed (exception NSDB, "Query was not 
a statement returning rows.")
    while executing
"ns_pg_bind 0or1row nsdb0 {
  
        select wp_presentation__delete(:pres_item_id);
        
      }"
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_pg_bind $type $db $sql"
    invoked from within
"db_exec 0or1row $db $full_statement_name $sql"
    invoked from within
"if {[regexp -nocase -- {^s*select} $test_sql match]} {
            db_qd_log Debug "PLPGSQL: bypassed anon function"
            set selection [db_ex..."
    ("uplevel" body line 6)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle db {
        # plsql calls that are simple selects bypass the plpgsql 
        # mechanism for creating anonymous functions (OpenACS - ..."
    (procedure "db_exec_plsql" line 13)
    invoked from within
"db_exec_plsql delete_presentation {
        begin
          wp_presentation.delete(:pres_item_id);
        end;
    }"

P.S. There is an existing bug report that says there is trouble with deleting slides. Thanks, Zack.
Thanks Zack,
You ran some successfull tests !

Delete presentation worked fine for me - but I will try more to reproduce the problem. Unfortunately, I do not have access to development machine today. I willl post updated version tomorrow. What is Postgres version that you are using ?

Thanks Samir,

PG7.2 also using RedHat 7.2.

Zack.