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 Backup Files, ANGEL Archive Files, and even 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.
ANGEL IMS CC files are no longer reprocessed by ConversionThingy 2: the formatting problems that
prevented them from loading into Moodle 2.x seem to have been resolved. That said, if you've got the choice, you'll probably
want to convert a backup file anyway, if only to retain forums, assessments, dropboxes....
Moodle 1.98 backup files (and probably other Moodle 1.x backup files as well) can be converted to Moodle 2.0 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, assignments, forums, chat rooms, quizzes, questions, question bank
categories, wikis, letter-number grade conversion tables, labels. Choice,
database, glossary, and lesson activities get moved too. ConversionThingy 2 does not move student records or submissions.
Output
1. Identifiers
Any given installation of ConversionThingy 2 will generate unique, consecutive ID
numbers for all objects converted by that installation, regardless of how many
conversion sessions are run. That distinct numbering applies to the following
areas of the generated Moodle backup file:
- //QUESTION_CATEGORIES/QUESTION_CATEGORY/QUESTIONS/QUESTION/ANSWERS/ANSWER/ID
- //QUESTION_CATEGORIES/QUESTION_CATEGORY/QUESTIONS/QUESTION/ID
- //MODULES/MOD/QUESTION_INSTANCES/QUESTION_INSTANCE/ID
- //MODULES/MOD/FEEDBACKS/FEEDBACK/ID
- //MODULES/MOD/ID
- //SECTIONS/SECTION/MODS/MOD/ID
- //GRADEBOOK/GRADE_CATEGORIES/GRADE_CATEGORY/ID
- //COURSE/GRADEBOOK/GRADE_ITEMS/GRADE_ITEM/ID
- //QUESTION_CATEGORIES/QUESTION_CATEGORY
- //SECTIONS/SECTION/ID
This gesture, of maintaining distinct IDs across multiple conversions, may be
wholly irrelevant, as the indexing key is more complex than just a single item
identifier. But it's a gesture, nonetheless.
2. 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.
3. 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 2.0.1.54
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 2.0.1.53 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 2.0.1.54 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 2.0.1.58
Moodle 2.0 output
With ConversionThingy 2.0.1.58, 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 2.0.1.60
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 2.0.1.63
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 2.0.1.64 (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 2.0.1.79 (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.