2. Interaction Between imsld package and .LRN Services

The imsld package is a .LRN service (or package, we use these terms indifferently in this specification when referring to .LRN), wich will interact with some other .LRN services. When writing this specification, we expect the imsld package to interact with at least the following .LRN packages:

As we mentioned earlier, the imsld package allows to easily modify the mappings between the elemnts of the IMS LD specification and the .LRN services. And not only modifying the mappings, but also to add new ones. By these way if the IMS LD specification change in some aspect, then the package will addapt to the new changes easily. From our point of view it is necessary that in the future the IMS LD specification will add more tags that univoquily mapping with services. By these way compatibility between LMS are obtained, and if an LMS doesn't understand one tag because it is not available, then it will be ignored and nothing will be presented to the user.

Besides, we take advantage of the new callbacks used in OpenACS in order to provide a clean interaction between different .LRN packages. With the callbacks we can determine if some needed package is not installed, and instead of displaying an error to the user, try to map the activity or whatever we are mapping to other package, and if after trying with all the available packages we can't map the item to .LRN, a message is shown to the user with this and any other item that coud not be mapped by the system and with the purpose of leting the user to do the manual mapping.

We have to take into account that the item will not allways have all the necessary information to let the mapping be done easily, but we try to do our best by providing at least the required information to create the forum, chat, assessment, task, etc, and if definetively no mapping can be done, a final error message is shown to the user indicating that there is at least one item that .LRN can't understand.