ConversionThingy 2

ConversionThingy 2

ConversionThingy 2: Technical Notes

Below are some technical notes on the conversion process--these may not be particularly exciting for the lay reader.

Source Files

ANGEL 7.3, 7.4, and 8.0 Backup and Archive Files, and Moodle 1.9x backup files can all be passed through the conversion process, though considerable differences in the content of these files produce somewhat different output.

ANGEL 7.3 backup files and archive files share a common structure and produce identical output when processed.

ANGEL 7.4 archive files created via the "Export and Restore" console within a course site differ from the ANGEL 7.4 backup files created via the "Backup and Restore" options within a course site, in that the archives lack the "Course" section that appears in the backup.  Without this, it is not possible to identify details like the course name, number or section, the department in which it is taught, or the name or the id of the instructor. That has little bearing on the conversion of course materials on the whole, but it frustrates efforts to create tidy searchable indices for the conversion reports or logs.

Moodle 1.98 backup files (and probably other Moodle 1.x backup files as well) can be converted to Moodle 2.x backup files: the objects that get converted constitute what may be the most commonly used objects of the Moodle core: web pages, file resources, text, url resources, sections, gradebooks and gradebook items, scales, assignments, forums, chat rooms, quizzes, questions, question bank categories, wikis, letter-number grade conversion tables, labels, feedback, choice, database, glossary, journal, and lesson activities get moved too. (Journal objects get converted to "Online Text" assignments.)  ConversionThingy 2 does not move student records or submissions.


1. Files

Moodle 1.98 Output

All files are stored in the course_files folder of the Moodle backup file; they are renamed (and appropriately relinked) whenever filename collisions threaten to appear because two ANGEL objects have supporting files with identical names. The files are NOT put into object-specific folders.

Moodle 2.0 Output

All files are referenced with the PLUGINFILE notation and have their filenames duly hashed and tucked away backup's files folder.  This means that all files can be accessed in Moodle 2 via the new file picker; nothing relies on a legacy files area. Some files may seem to get lost in the conversion: notably, images that were linked into the choices for Multiple Choice and Multiple Select questions haven't anywhere to go in Moodle 2.0x. Moodle 2.1x resolves that problem. Files that are referenced in object tags may inadvertently be skipped.

ConversionThingy 2 does NOT include, in the created Moodle backup, any unlinked file content that was included within the ANGEL or Moodle source file: if the file wasn't being put to use, it wasn't moved.

2. Question Titles

Where questions in the question bank or an assessment lack a title (which, among ANGEL users, is usually), a title is created from the first 50 characters of the question text, with some effort being made to ensure that doing so doesn't split an html tag.

4. Question Pools

ANGEL has a very sophisticated querying mechanism for building question pools, allowing users to select from  a variety of criteria, and then building the pools accordingly.  In Moodle, at least in the 1.9x version that forms the basis for the conversions done by ConversionThingy 2, there is no equivalent selection tool. Because of this, ConversionThingy 2 builds a separate questionbank category for every question that wants a random number of questions. While this provides a question that will deliver the same number of questions from the same selection of questions, it also has the potential to create an unmanageable number of questionbank categories.   It also has the potential to run into some issues when the ANGEL pool from which questions are being drawn contains question types  that cannot converted for the Moodle archive: the pool that returns 5 questions in ANGEL may only have 3 to draw from in Moodle.  The logs document this issue whenever it arises, but you can usually expect to see something of an explosion in the number of questionbank categories being generated whenever there are a large number of pool questions in the ANGEL course site.

5. Assessment/Question Bank Questions

Multiple Choice, Multiple Select, True/False, Matching, Fill-in-the-Blank, Short Answer, and Essay questions are all converted to Moodle equivalents.  ANGEL's Ordering and Offline Item questions are  NOT converted as they've got no reasonable Moodle equivalents. In questions that do get converted, pictures are converted as supported.  In most instances this means all pictures should appear in Moodle, but special care should be taken in reviewing the output.

Addenda for version

Multiple blank questions

Some multiple blank questions are now converted as embedded cloze types in Moodle--they're a nuisance to edit, but they seem to work. The type of multiple blank question that will convert is one in which each blank carries a specific answer (or set of answers). This one, for instance, would work:
   ______ and Jill went up the _____ to fetch a pail of _____. (works)
On the other hand, the type of multiple blank question that won't translate is the one that shares a set of responses across blanks independent of the sequence of those blanks:
    ________ and ________ are the elements that make up water. (won't work)
Questions of this sort--where the sequence of the responses is inconsequential to a correct answer--remain on the list of questions that get skipped.

Orphaned question bank branches

This happens rarely, but when version encountered an orphaned ANGEL question bank folder, it would first raise a "Pause" message box and then pretty  much crash in an inelegant fashion.  This problem probably occurs very infrequently, but seems to be occasioned by a slightly corrupted ANGEL archive construction in which question bank folders exist without any link to the question bank's root folder: the result (pretty much what would happen if you had branches of a tree that weren't in some way connected to the trunk) was an unsightly failure. The Conversionthingy fix grafts those wayward branches back onto the root. This solves the immediate problem and lets the file parse: that said, the error log will still flag this as a potentially serious issue, since pool questions could conceivably have been constructed from unexpected branches of the tree. As always, check the results carefully...

Feedback/Contact button

This does little more than launch your default mail client and aim a message at me. My understanding is that really nice messages get delivered faster.

Call to server on program start

The program now sends your installation ID to the server when it's run. It's my small way of knowing the program's still being used.

New ids.xml file written to output folder

In the output folder where your converted files get written, a file called ids.xml will be written every time the program is closed: this file duplicates the data otherwise automatically saved in the program's settings, because that settings information may not survive version changes in the program. The ids.xml file contains the last Moodle ids assigned to various objects. Deleting the file will result in nothing more than it being re-built the next time you close the program; if there's an upgrade in that time, you may lose some of the uniqueness of the unique identifiers (and that in itself doesn't seem to be tragic), for reasons outline above in the section on output identifiers. 


Addenda for version

Moodle 2.0 output

With ConversionThingy, the program has a configuration option allowing you to specify whether you'd like it to generate Moodle 1.98 or Moodle 2.0 backup files. The Moodle 2 backups do not presently allow some of the flexibility that the Moodle 1.98 backups allowed--notably, it's proven so far to be impossible for me (and others, I should add) to get a picture into the option fields for multiple choice or multiple select questions. This is, though, the only significant issue I've been able to identify to date. In the file handling, the catch-all "legacy files" have been scrupulously avoided to allow all files to be handled with the new Moodle 2 file picker. 

The new Moodle 2 output option also allows the program to run conversions of Moodle 1.98 backup files to rebuild them as Moodle 2.0 backup files: this only works for the components that the program would ordinarily pull from ANGEL: web (content) pages, url links, labels (section headings), resources (uploaded files), forums, assignments (dropboxes), quizzes (assessments), chat areas, and gradebooks. The program may or may not balk at unfamiliar elements: I wouldn't bet on success if you stray too deep into (or too far from) the Moodle core.  Please note that none of the configuration options have a bearing on what gets shifted in the Moodle-to-Moodle conversion: if it's in the Moodle 1.9x backup file, the program will try to shift it to the corresponding 2.0 file. And note also, please, that if the Moodle-to-Moodle conversions fail to provide useful output, it would be wrong to assume that the fault lies with the Moodle instance that cannot upload it: in all probability, ConversionThingy has simply encountered something it could not anticipate and has produced meaningless output.

Option to remove "Using ANGEL" folders

This option, new to the configuration tab, does just what it says: it'll prevent any folder containing the words "Using ANGEL" from being written to the final Moodle file during conversions from ANGEL. You can, of course, change the text on the configuration page to target some other common folder set you'd like to eliminate before the conversion. This option acts on questionbank folders (and their contents) and course content folders  (and their contents). It does not act on individual content items except when those content items are in the folders targeted for removal: as such it has the potential of mucking up all sorts of things if you're not confident that the materials you're deleting in folders aren't depended upon by materials that lie beyond those folders. If you have doubts, let those stray folders pass through on the conversion, and eliminate them as you restore the backup file to Moodle. The default setting for ConversionThingy 2 leaves this option unchecked, and as a general recommendation, I'd advise you get rid of those extraneous materials in the ANGEL site before you back it up, rather than attempting, via this option, to do it after the fact.

So, you might ask, why not just uncheck the section I don't want restored while I'm restoring the backup in Moodle? The answer's quite simple: that leaves a hole in your course site, because the section will simply appear empty. If you can identify the folder title and use this option, then the site will restore as though the omitted folder had never existed.


Addenda for version

Moodle 1.9x -> Moodle 2.0 Conversion Changes

The range of components that get converted in the Moodle-to-Moodle conversion has been extended to include Database, Glossary, and Choice activities. All of these move, like everything else in the ConversionThingy processing, without user data.


Addenda for version

Moodle 1.9x -> Moodle 2.0 Conversion Changes

The range of components that get converted in the Moodle-to-Moodle conversion has been extended to include Directory (Folder in 2.0), and Lesson activities. Please see the Known Issues page to find out about the problems presently interfering with the correct restoration of Lesson activities.

Configuration tab changes

The clutter on the configuration screen was tidied up with a new set of tabs with type-specific options. See the Configuration page for the fresh screenshots. A pair of options has been added for the Moodle->Moodle conversions, allowing the inclusion (or omission) of Lesson activities, and the renaming of the default site url that gets embedded in the backup.


Addenda for version (early February, 2011)

Moodle 1.9x -> Moodle 2.0 Conversion Changes

File resources for which no file exists (usually because the user removed the file but not the resource itself) are now being screened on the Moodle 1.9x -> Moodle 2.0 conversion. If the files don't exist as linked, the resource is dropped from the conversion manifest, with the result (hopefully) that the restore process won't hang or crash because of a file issue.

The check for mime types no longer gets confused by uppercase letters in file extensions.

ANGEL -> Moodle Conversion Changes

Equation editor images (see Issue 4 on the Known Issues page) can now be reclaimed from the source ANGEL server if a path is provided on the configuration screen.

Files linked via the $COURSE_PATH$ token are now being included in the conversion; any ANGEL "LINK" object gets changed to a "FILE" object if it refers to an identifiable file in the $COURSE_PATH$. (This works insofar as the linked file has no dependencies: ie. the file isn't, say, an HTML file that references images or media or script files that were also uploaded. Because the ANGEL "associated files" area can be a bit like the wild west, the conversion process includes the linked file, but not any dependent files.)

The Moodle->Moodle conversion process changes noted above also hold true here: the check for mime types is now case-independent, and references to non-existent files should no longer create wonky output.


Addenda for version (early March, 2011)

Moodle 1.9x -> Moodle 2.0 Conversion Changes

Question mapping: questions which were initially created in the default context for a quiz now remain within that default context on conversion (They'd been going to a shared question bank context before this time.) Pictures in the question text (for all question contexts) should now be reliable.

ANGEL -> Moodle Conversion Changes

Question mapping: in theory, it would be attractive to take all ANGEL questions that are local to an Assessment (and thus, that haven't been added to a question bank) and map those to the "Default folder for..." category in Moodle. Indeed, that's what the program was doing until March. The problem is that questions from such Assessments can, in ANGEL, still be recycled into other Assessments--and that's something that really doesn't work in Moodle, where a question defined in the default context for a quiz simply isn't available to other quizzes. And thus a change was necessitated in the handling of questions coming from ANGEL: they are now all mapped to a question bank regardless of whether they had initially been attached to the question bank or not.