PC sent a new Italian GUI file for the IMT, based on the new release, so I rebuilt the installer to incorporate it, and uploaded it to the site.
A new version of the Image Markup Tool has been released, providing a small bugfix, and a new feature: the ability to distinguish between transcriptional and non-transcriptional annotations. This feature brings the IMT into line with recent changes to the TEI P5 guidelines, and was requested by several users. Version 1.8 of the IMT is available from the project website.
Finished the DocBook conversion code, and tested round-tripping, then updated all the help/tutorial files, and upgraded all the distro P5 files and HTML output. Built the installer and tested it; found a bug with the category manager, which caused the top category in the list to be obscured by the columns above it. Fixed the bug, tested the app and the installer on both Linux and Windows (VISTA), and updated the Website to make a formal release. I won't announce this to the TEI list until we've hammered it a bit.
I got the version 1.8 file i/o completed and tested, so the new "transcriptional" feature is correctly saving and loading, and dictating the use of @facs or @corresp. Then I started working on the DocBook export/import. I'm mapping the new <desc>
element in the <rendition>
element (the annotation category data) to a tag like this in the equivalent docbook <member>
element:
<property role="transcriptional">true</property>
For speed and simplicity, I'm also storing, for each individual annotation <div>
in TEI, an @remap
attribute (remap="facs"
, or remap="corresp"
) on the db <callout>
element.
Next, I need to:
- Update the docbook-to-imt file accordingly, so round-tripping works
- Rewrite the Help/docs XSLT to take account of the new format.
- Convert all the IMT documentation files to 1.8, then to the new docbook format.
- Update the screenshot for the annotation category list, and the category editor screen.
- Update other Help file and tutorial stuff to explain the new boolean/checkbox.
I've elected to store the "transcriptional" boolean in the form of a <desc>
tag like this, inside the <rendition>
element:
<desc>transcriptional</desc>
I have this correctly saving and reloading from the file; what isn't done yet is the distinction between the use of @facs
and @corresp
for linking. I'll have to do this by giving the annotation list a method pointer which can be set to point to TAnnCatList.GetTranscriptionalFromCatID
method. I'll have to make sure that binding is set up by the TIMTDoc, in its Create
method. Then the annotation list can find that information and decide which attribute it needs to use when saving the file.
I had assumed that the decision to link an annotation using @facs
or @corresp
, depending on the "transcriptional" setting of its category, would be a simple one, but it turns out to be slightly more complicated than I had hoped. Ironically, this is because I have good object-orientated code with separation of concerns; annotations write themselves to the output document, at the behest of their annotation list, and neither they nor their annotation list know anything about the category object except its CategoryID
, which is known to the annotation list object. Therefore the neither the annotation nor the annotation list which manages it have any way to know directly whether @facs
or @corresp
should be used.
When we're reading documens back in, this is no problem; the annotation can check for @facs
, and if it's not there, check for @corresp
. I already have that code written and working. The problem is only in writing out the files. I really don't want to undermine the clean separation of the objects, so I'll probably have to create some kind of callback function that the annotation list can use to query the category, to find out what kind of thing it is.
An added complication, though, is that there is no useful place to store the category's type (transcriptional or not) in the <rendition>
element which is used to store category information. My (rather vague) plan had been to have the category infer its own nature by looking at the attribute used by annotations linked to it, but this is actually a bit circular, and even if it worked, it would leave us in a situation where we couldn't save the state of this boolean without there actually being an annotation in that category. That's obviously unacceptable; documents are regularly saved with categories that don't yet have annotations in associated with them, and we can't afford to throw away category data when this happens. So I'm going back to the drawing board (or the TEI schema).
The next version, 1.8, will have two basic changes: first, the bug reported by JC will be fixed (@facs
attributes will begin with a hash), and there will be a boolean field applied to categories which defines them as transcriptional or non-transcriptional. The former is a straightforward change, and I've begun work on it by first updating the schema and ODD file (no changes except in documentation and filenames), and then by writing all the XSLT conversion files for the new version.
The next stage will be to plan for the handling of @corresp vs @facs. I need to figure out whether I should store a value in the category definition itself (a rendition element, which has no @type attribute).
While I was away, JC reported a bug with the file format -- @facs references should be preceded by a hash, of course. Easy to fix, but I'll integrate the fix into the next release, when I add discrimination between transcriptional (@facs) and non-transcriptional (@corresp) associations between annotations and zones.
PC sent over the latest Italian interface file for IMT, and also reported a couple of bugs. There are two or three bits of text which don't translate properly -- one being the Hint property of the UniSynEdit controls, which paradoxically is not Unicode -- and also reported that when you use Insert Tag from the main form menu when working on the Annotation form, nothing happens. Actually, it operates in the context of the form with the focus, so it works on the main form instead. I've worked around this by adding a little drop-down menu to the toolbar of the Annotation window, so users will use that instead of the main window. This needs looking at again, though.
PC also reported a bug relating to the save location and filename of thumbnails, which I've fixed. Released 1.7.2.6. The Hint problems will have to wait, if they can be solved at all -- but they're very minor and the advantage of syntax highlighting etc. outweighs the absence of a hint.
A new version of the Image Markup Tool has been released. These are some of the changes:
- The application now has XML syntax highlighting in the text boxes where blocks of XML are edited (the annotation text field and the teiHeader area).
- The
Edit
menu now has a new command,Insert tag
(Control + E
), which provides a simple interface for inserting tags. - A "PortableApps" install option is now included, for creating a portable installation which saves all settings in the program folder. This is useful if you're installing the program on a removable drive