Home
Name Modified Size InfoDownloads / Week
VoynichReaderInstaller.exe 2014-08-03 5.8 MB
readme.md 2014-08-03 8.5 kB
Totals: 2 Items   5.8 MB 0

VoynichReader Readme

Voynich Reader is intended to make it easier to read, search & analyse the interlinear transcription of the Voynich Manuscript that is curated by Prof. Jorge Stolfi. The program is currently built for Windows. It is written in standard C++ using the QT application framework, with no Windows-specific code, so porting it to other platforms supported by QT should be pretty straightforward.

Shameless Self-Promotion

I'm looking for paid contract work. I'm a C++ specialist, with a careful and painstaking approach to my work, and an extensive history of satisfied customers. The code you see in this project is representative of the kind of thing you'll get if you hire me. If you're interested, please take a look at my LinkedIn profile: http://uk.linkedin.com/pub/james-lothian/10/97/98b/, or email me at :jameslothian1@gmail.com.

Usage

Install Voynich Reader by downloading & running the VoynichReaderInstaller.exe file. Accept all the defaults. Some features will only work if the Voynich EVA Hand 1 font is installed (from e.g. http://www.as.up.krakow.pl/jvs/library/0-1-2007-08-28/). (On Windows, you should download the TTF file, right-click it, and select 'Install'.)

On running for the first time, the application will prompt you to open the transcription file, which is installed automatically in the application directory as TEXT16E6.EVT. Buttons and menu items are provided for stepping through the pages forward and backward and for going to the first or last page. A combo-box on the toolbar allows you to select any specific page. You can control whether comments in the text are visible. You can also select the readings (i.e. transcriptions from difference sources) that you want to be visible. Each reading has an associated letter. You can display a key explaining these initials by selecting 'Show Reading Key' from the 'View' menu. Selection of readings is done by clicking the 'Select Readings' menu item. Additionally, two toolbar buttons are provided. One of them displays the currently-selected readings, and brings up the 'Select Readings' dialog when clicked. The other, labelled 'All', selects all available readings.

Information about the page you are currently viewing can be shown by selecting 'Show Page Info' from the 'View' menu. This displays a bar across the top of the page view that shows the contents of the 'Parsable Information' fields in the transcription file, along with a list of the readings that are present on the current page.

If the EVA Hand 1 font is installed, you can use it to display the readings, by selecting 'Use Voynich Font' from the 'View' menu.

All settings are preserved from one run to the next -- if you retart the application after exiting it, it should start up with the same file, on the same page, and with the same view settings.

Reading Coverage

The Reading Coverage feature ('Analyse' menu, 'Show Reading Coverage...') brings up a dialog that graphically shows the parts of the document that contain readings from a given transcription. You can select the transcription using the combo-box at the top of the dialog.

The Find All Feature

This feature finds all occurrences of a given string in a given set of readings and optionally in the comments. Selecting Search -> Find All brings up a dialog box in which you can enter your search string. Selecting the 'Search Comments' checkbox will cause the program to search in the comments as well as in the transcription text. Selecting 'Match Whole Word' will cause whole words only to be matched (i.e. occurrences of the search string within a word will not be treated as matches).
Click the 'Readings' button to select the readings you want to search (defaults to the set of readings currently selected in the main view). Selecting 'Use Voynich font' will cause the search string field to use the EVA Hand 1 font, if it is installed. (This option is automatically switched on by default if the 'Use Voynich Font' option in the 'View' menu is enabled.)

Note that the 'Find what' field in the dialog will be pre-populated with any selected text in the view, so a convenient way of searching for all occurrences of a particular word is to double-click it in the view to select it, and then do Search -> Find All.

The Visual Search Feature

This feature finds all occurrences of a given string in all the readings in the text, and visually shows the positions of the results in the document, for a single transcription at a time. It does not search the comments. You select the transcription for which you want to see results by using the drop-down at the top of the results dialog. Pages that contain the search target are coloured red. As with the 'Reading Coverage' feature, blue areas represent pages that contain readings from the selected transcription.

The dialog will be pre-populated in the same way as the Find All dialog.

The Visual Search feature was inspired by work done by Gordon Rugg (http://searchvisualizer.wordpress.com/).

Statistics

The 'Word stats...' item on the 'Analyse' menu allows you to extract word statistics from a specified reading. Two tables are generated. The left-hand table lists each word in the reading along with a count of its occurrences. The right-hand table lists word length against count. Each table can be sorted by clicking its column headers. (So, for example, if you wanted to find the longest word in the transcription, you could click the 'length' column in the left-hand table to sort it by length.) The contents of either table can be saved as a CSV file (so that you can use something like Excel to graph it or analyse it further) by using the corresponding 'Save CSV' button under the table.

The 'Glyph stats...' item on the 'Analysis' menu provides the ability to find out how many times each glyph occurs word-initial, word-medial and word-final in a given reading. A total for each glyph is also provided. Again, the result table can be sorted by clicking on the headers. Note that in a single-glyph word, the glyph is counted as both word-initial and word-final -- if the numbers in the word-initial, word-medial and word-final columns add up to more than the value in the total column, this is why.

'Glyph N-Gram stats...' allows you to find all the different sequences of N glyphs in a given reading, along with a count of how many times each occurs. You can choose to ignore word and/or line breaks.

'Word Repetition stats...' shows all the repeated words in a specified transcription, along with the repetition count and the preceding word.

Each table in the statistical results dialogs has a pair of buttons underneath, 'Copy' and 'Save CSV...'. The 'Copy' button copies the contents of the table to the clipboard in CSV (comma-separated values) format. 'Save CSV...' saves the contents of the table to a file in CSV format. Either of these can be used to export the statistical data for further analysis, graphing or whatever.

Settings

The 'Options' menu contains a settings dialog that allows you to set the font size in which comments and transcription readings are displayed, and the colour of the transcription text.

Internals

The internals are built around a document model, which represents the textual entities in the transcription file, a parser and builder, which construct the document model from the input file, and a collection of visitors, which traverse the model in order to perform various tasks (e.g. rendering the text, searching). The parser, builder and document model are all written in standard C++, free from QT, in the hope that they may be useful to others who want to write software to analyse the manuscript but don't want a GUI.

Licence

Voynich Reader is licensed under the GPL.

Why / 'Are you crazy?'

I work as a C++ contractor. Much of the time, I find myself spending months on end doing nothing but debugging. This pays the bills and keeps me off the streets, but it can get a bit frustrating. I wrote Voynich Reader because (a) it was an itch I wanted to scratch, (b) I hoped that somebody might find it useful, (c) I wanted to get more experience of QT, and (d) I felt like having a bit of fun, after just finishing three pretty grim months stuck in various grotty hotels while working for an exceptionally difficult client.

Source: readme.md, updated 2014-08-03