Saturday, March 18, 2006

Mapping group types

To use Enterprise Services, you need to create a set of mappings between the objects used in the various Java method calls, and the data in your system. One of the most important aspects of doing this mapping is establishing what types of Groups you are working with.

IMS Enterprise mandates specifying a group Type for every Group instance, such as "Module" or "Course". These are identified with a Scheme attribute, so there is the potential to map groups across diverse systems based on value spaces. There is also a Level value for hinting at relative granularity, which can sometimes be useful.

For example, if you created a vocabulary of the types of groups Moodle supports as being in the http://www.moodle.org scheme:

[scheme:type:level]
moodle:course:1
moodle:group:2

And for LAMS:

lams:enrolledGroup:1
lams:sequenceGroup:2
lams:dynamicActivityGroup:3

(these are just examples, I don't know what structures Moodle and LAMS actually use - ask Alex!)

When calling the service, you can then correlate the types so that you get the right types of groups.

For example, if LAMS is the provider, and Moodle is the client, and a call returns a Group with the type "lams:sequenceGroup:2", you might assert that you're dealing with the equivalent of a Moodle Group rather than a whole new course.

These mapping rules can then be encoded into an interface you wrap around the SDK at the client end so that it just returns the kind of groups that make sense in local terms, rather than any and all generic IMS groups.

This is important, because in a lot of MIS systems groups are keyed on all kinds of factors, like semester and campus, and also often contain both canonical and actual courses, so doing a straight transfer from MIS->VLE can generate zillions of courses if you don't sort out the mapping rules.

0 Comments:

Post a Comment

<< Home