Thursday, February 26, 2026

The Toledo Letter (1629 edition) revisited

Now that I've had a chance for a more systematic search, it turns out that the publication of the 12th-century "Toledo Letter" in 1629 was a bigger deal than I had thought. Previously I had only identified one pamphlet edition and one published polemic against it (in two editions), but there were actually at least four editions containing the "Toledo Letter," an additional two versified versions, and two published polemics against it.

Print editions containing the "Toledo Letter"

Prognosticon. So mit vornehmer Astronomorum Calculation, auff das 1629. Jahr gerichtet/ und der Römischen Key: May: zugesendet worden: Neben einem Prognostico so dem ChnrFürsten von Sachsen/ durch gelartte Leute und Astrologos ist zugesand worden. VD17 23:332291K

Kurtzes und unvorgreiffliches Bedencken oder wolgemeynter Discurs... Item ein Prognosticon, So mit vielen vornehmen Astronomorum calculation auff das 29. Jahr gerechnet... VD17 39:125725B

Kurtzes und unvorgreiffliches Bedencken oder wolgemeinter Discurs... VD17 14:003920G

Luther, Martin. Warhafftige Weissagung des letzten Deutschen Propheten/ D. Martin Luther/ Welcher schon vor Hundert Jahren diesen jetzigen erbärmlichen und jämmerlichen Zustand beklaget und beweinet hat... VD17 3:630392V

Based on the similar title and format, the following edition likely contained the "Toledo Letter" as well, but only the first few pages are available:

Luther, Martin. Warhafftige Weissagung des letzten Deutschen Propheten D. Martini Luthers/ welcher schon vor hundert Jahren diesen jetzigen erbärmlichen und jämmerlichen Zustand beklaget und beweinet hat. VD17 39:125730V

 

Print editions containing the "Toledo Letter" in verse (two different versions)

Zezius, Michael. Profecey und Weyssagung Uber den kleglichen Zustandt dieses 1629. Jahrs/ der erschröcklichen verwüstung des gantzen Teutschen Landes ... VD17 23:236288W

Zwo Neue Wahrhafftige/ Und erschröckliche Practica/ auff das Jahr 1629: die Erste/ Von einem weitberümbten Sternkündiger: Die Ander/ Von Ihr Churfl. Durchl. zu Sachsen Mathematico gestelt/ ... Kürtzlich in ein Gesang verfasset... VD17 31:749110M

 

Printed polemics against the "Toledo Letter"

Barletus, Rupertus. Kurtze Widerlegung/ Einer in offenem Truck/ zu wider Astronomischen Gründen/ außgesprengten/ groben/ fetten/ dicken Land Luegen/ So unter dem Titul Progosticon vornemer Astronomorum außgangen auff instehendes 1629. Jahr calculirt ... seyn soll... VD17 23:260013L

Fröliche Zeitung. Das ist/ Grüntliche und Astronomische Widerlegung/ zweyer außgesprengten/ falscherdichteten Propheceyungen/ uber das 1629. Jahr... VD17 23:250802M

Fröliche Zeitung. Das ist: Gründtliche und Astronomische Widerlegung/ zweyer außgesprengten/ falscherdichteten Propheceyungen/ uber das 1629. Jahr... VD17 12:641205M

 

Tuesday, February 10, 2026

Seventeenth-century Gamaleon sightings v2

The "Gamaleon" prophecy is an interesting case of remarkable fifteenth-century manuscript transmission (Frances Kneupper's Empire at the End of Time records 16 manuscripts in three versions) and considerable secondary literature, followed by near silence in print. There is a single printed edition of 1538 (VD16 O 508). Otherwise "Gamaleon" only appears in antiquarian collections, including Wolfgang Lazius' 1547 Fragmentum vaticinii and 1554 Catalogus aliquot antiquorum vaticinorumMatthias Flacius' 1556 Catalogus testium veritatis, and Johann Wolff's massive collection in 1600.

We can extend this slightly with a few mentions of Gamaleon in other sources. Editions of "Alofresant" printed in 1530-40 and expanded with additional texts, mostly borrowed from Lichtenberger's Prognosticatio, cite "Gamaleone" or "Damaleone" as one of their authorities (VD16 A 1936 and ZV 416, A 1934), but without including any of the "Gamaleon" prophecy. Caspar Füger's 1568 Weissagung von der künftigen Zerstörung deutsches Landes durch den Türken in verse includes a note referencing "Gamaleon" in the version attributed to the sermon of a Johann Wünschelberg of Amberg: Lichtenberger had prophesied an advance of the Turks to Cologne, and  "Desgleichen hat gesagt ein Prediger zu Ambergk/ Wintschelbürger genant. Was diese beyde sonst geweissaget haben/ soll alles also ergangen sein." For a century with an ongoing interest in prophecies, that's not much.

"Gamaleon" actually looks to be better attested in the seventeenth century. Short excerpts from the prophecy are found in the following editions:

Newe Zeitung auß Bayerlandt/ ... Die ander/ Von dem Gesicht oder Visio Hemalionis, welches zu Heydelberg in der Cantzeley ist gefunden worden, 16221 (VD17 1:070329C): "Es ist in einer Archa oder Kist/ so in hundert Jahren nit geöffnet/ darinnen allerhand Brieff und Documenta gewesen/ under andern auch diese Schrifft gefunden worden. Ein Brieff darinnen ein Kind gemahlt gewesen/ welches ein Cron auff dem Haupt gehabt/ unnd vier Schwerdter in seinen Handen die Oberschrifft ist genant worden Visio Hemalionis, etc..." 

This text appears to be reprinted in Klägliche und trawrige Newe Zeitungen... Die ander/ Von dem Gesicht oder Visio Hemalionis, welches zu Heydelberg in der Cantzeley ist gefunden worden, 1621 (VD17 23:246515X), but no full facsimile is available yet.

Warhaffte Propheceyung Dreyer im Bapstumb Hochberühmbter Fürtrefflicher Männer, 1632 (VD17 23:296469W): "Der Erste ist gewesen Johannes Wund. Schellenburgensis Theologus und Praedicator zu Hamburg/ welcher umbs Jar Christi 1400 und also länger als vor 200. Jahren gelebt hat/ dessen Wort in seiner Weissagung also lauten: Imperator veniet a meridiae, qui incipiet malum Ecclesiae...et possessionem auferent ab Ecclesia:" followed by a German translation of the excerpt.

Another edition of this work:  Warhaffte Prophezeyung Dreyer Im Bapstumb Hochberümbter Fürtrefflicher Männer, 1632 (VD17 23:250798L)

An excerpt from Johann Wolff's version of "Gamaleon" is then translated (likely back-translated) into German and included in Des Mitternächtiger Post-Reuters Passport, an extensive compilation that went through multiple editions in 1632:

Deß Mitternächtigen Post-Reutters Adeliches und untadeliches/ dreyfaches Paßport... (VD17 23:250899Y)

Des Mitternächtigen Post-Reuters Adeliches und Unadeliches dreyfaches Paßport... (VD17 23:657418F) 

Des Mitternächtigen Post-Reutters Adeliches unnd Untadeliches dreyfaches Paßport... (VD17 12:657636Q)

Des Mitternächtigen Post-Reuters Adeliches unnd Untadeliches dreyfaches Paßport... (VD17 14:005096H) 

Unterschiedliche Paßporten/ Deß auß Mitternacht Adelichen und untadelichen/ eylenden im Teutschland ankommenden Post-Reuters... (VD17 23:266493L)

In addition, an anonymous Latin Iudicium De Hodiernis Prognosticis Liberum published in 1623 (VD17 12:121696G) mentions "M. Johannes Vunschelburg, oppidi in Bavaria Ambergae praedicator: anno 1439" among its list of older prophecies. There is a German translation of the same work published in 1626 in: Germanus, Johannes. Der siebenden Apocalyptischen Posaunen/ von Offenbarung verborgener Geheimnussen Heroldt... (VD17 14:017658S).

In all, nine editions and two additional mentions: A respectable seventeenth-century showing for a late-fourteenth-century prophecy, with a chance of more to come.

Friday, June 6, 2025

Local vision language models on consumer hardware are useful for early modern printed books

The last time I looked at OCR for early printing, the state of the art was eScriptorium and the kraken ecosystem, which make use of relatively small models for recognizing text and page layout. Since then, AI has taken hold of public consciousness, and numerous companies and academic research projects have released open-weight models that can be run on suitable hardware, including some very large and capable models with tens or even hundreds of billions of parameters. Will any of this immense effort be useful for early printing? Almost certainly.

For transcribing early print, there are primarily two kinds of knowledge we’re interested in, visual information (what is a page? what is a word? what is an irrelevant paw print from a cat walking across the page?) and language information (what patterns are common in early modern German, and what sequences are impossible?). There are some recent AI models – vision language models (VLMs) or multi-modal models – that attempt precisely this combination of knowledge about language (and the rest of the world) and about how things look. These models, developed by some of the largest tech and AI companies, are often used to describe the content of an image. But OCR is merely one particular way to describe an image. Are any of these VLMs useful for OCR of early printed books?

Yes. You can freely download and use relatively large models and achieve fair to very good results, even on modest consumer hardware (in my case, an Nvidia RTX 3060 GPU), after zero to minimal image preparation, resulting in an electronic text suitable for further editing (which I’m defining as a character error rate [CER] of 5-10%). This would be helpful to reduce or eliminate the lengthy and tedious image setup and page layout recognition process required by eScriptorium and similar programs. Details and technical notes below.

I’m running Windows, so for practical purposes, the available inference engines are Ollama and llama.cpp (Ollama was originally based on llama.cpp, and many other projects use one or the other as their backend). Of the two, Ollama is simpler and easier to use, but offers fewer options for customization and can be somewhat slower (keeping in mind that speed is primarily determined by hardware limitations and model size). There are additional options for Mac and Linux users.

The models that proved useful were all on the heavier side (billions of parameters noted in parentheses): Mistral Small 3.1 (24B), Gemma 3 (27B), and Qwen 2.5-VL (32B). Most other VLMs and smaller versions of these three proved unsuitable, either because they have too little language knowledge or are focused on modern documents. The one exception was Pixtral (12B), whose results approached those of Gemma 3:27b (and was much faster due to its smaller size, allowing it to run entirely in VRAM on my hardware). There are of course much larger models, but they require much more computing power for inference that goes well beyond what most consumers have access to (but would be within the realm of a major digitalization project's budget).

For testing, I used 11 samples drawn from my typical research images, including books printed in the 15th, 16th and 17th centuries; texts in Latin, German, and mixed Latin/German; and pages with woodcut illustrations. I straightened and cropped most images, but included one pair of original/modified images to compare the results. I also prepared my own transcriptions (not normalized, but with expanded abbreviations) for computing character error rates. The usual prompt was a variation on: “This image is from a book printed in 1532. The text is in German. Transcribe the text. Expand any abbreviations. Output only the transcription.”

The results: Mistral-Small 3.1 was the best overall (average CER 9.3%), followed by Qwen 2.5-VL:32b (12.2%; inference only possible under Ollama) and Gemma 3:27b (13.7% under llama.cpp, but with degraded accuracy under Ollama).

All three models were very capable of finding the relevant text. There was no mishandling of illustrations or other distractions or skipping of text blocks. No definition of page layout or identification of text lines were necessary.

The models differed most on the Latin texts. Mistral appears to have had more Latin in its training data. The ability to expand abbreviations was universally poor, however, with no model doing well, especially with the numerous Latin abbreviations.

An open question is if there is some way to address ignorance of abbreviations through prompting or some other means. Providing extensive guidance in the prompt did not appear to consistently improve results, however. The best approach to normalizing the text (modern usage of u/v, i/j and umlaut vowels, for example) is yet to be determined, although both prompting and use of a grammar to constrain inference seem promising.

For dealing with poor image quality, size matters. The best results were obtained with Qwen 2.5-VL, the largest model, with 32 billion parameters. With a CER of nearly 20%, however, results from poor-quality images are not accurate enough to be highly useful.

All three models dealt with slightly skewed and uncropped images well (such as the images typically provided by major digitalization projects), with only small losses in accuracy. But larger images are slower to process, and the VLM's attention is not as tightly focused on the relevant areas of the image, so that some preparatory processing remains helpful for peak accuracy.

It’s necessary to become familiar with each model, including finding the best parameters for OCR. After extensive testing of parameters, an additional 1% improvement in accuracy (to 8.3%) was obtained from Mistral-Small 3.1. Sample command line:

llama-mtmd-cli.exe -m models\mistral-small3.1\Mistral-Small-3.1-24B-Instruct-2503-Q4_K_M.gguf --mmproj models\mistral-small3.1\mmproj-F32.gguf --image ..\Testing\image5.png -ngl 31 -lv 0 -p "This image is from a book printed in 1532. The text is in German. Transcribe the text. Output only the transcription." -fa --temp .61 --top-k 5 --min-p 0.2 --grammar-file grammars\16thc.gbnf

There can also be prompting pitfalls. Gemma 3, for example, often attempted to add additional analysis and had to be explicitly told not to. It's not clear that the effort to get to know a particular model is worth it when new models and versions are being released very frequently.

Compared to most files, these AI models are gigantic. In their native form, they range from 48 to 75 GB. My GPU only has 12 GB of VRAM, however. How is it possible to make use of models of this size?

The answer is quantization. Quantized models trade off some precision against size and inference speed. The typical quant (Q4_K_M, used in these tests) is a quarter of the size (14-19 GB) and runs acceptably when split between VRAM and system RAM, with minimal loss of accuracy. Quantization is very much an area of active research, with a recent explosion of quantization types and processes. Testing with larger quants (Q6_K) and more advanced techniques (Unsloth’s UD-Q5_K_XL) didn’t find any noticeable improvement in results, however. With Gemma 3, slightly better results were obtained with the “quantization aware” model Gemma 3:27b-it-qat. Whether any particular approach to quantization is more effective for OCR remains an open question.

In general, the field is changing extremely rapidly. Mistral-Small 3.1 was released only in March, and the initial quants for use in llama.cpp had poor OCR results until one provider fixed its quant in May. Inference with Mistral-Small 3.1 in Ollama (which uses its own quants) was accurate but very slow until the program was updated last week.

What this means is that it would be possible today to initially process images to generate OCR text for further editing or use in eScriptorium, with results that are more accurate than using kraken-based models. It’s possible to imagine a near- to medium-term future where an AI model could browse through directories of digital images, leaving behind a tidy text file with a transcription and translation. 

Much of the knowledge in these models is not useful for our purposes, so that a smaller model, with less knowledge of cats and atomic structure and more knowledge of Latin abbreviations, might be both faster and significantly more accurate. Such a model would not need to be created from scratch, but could be a fine tune of an existing VLM, and might come close to achieving highly accurate unsupervised OCR of early printed books at the first try. 

But training these larger and more complicated models is harder and more resource-intensive, so that the miracle of eScriptorium/kraken, with human corrections leading directly to retraining of a new model, is harder to replicate.

Finally, there is no economic case for this. Mistral.ai offers some of the most inexpensive API access to its models of any AI company. Despite over 20 years of collecting digital images, the cost of my used, last-last-generation GPU would more than cover the cost of API access to Mistral’s larger models or its specialized OCR model. Using a local model would have to be justified instead through network requirements, research focus, or privacy concerns.

Saturday, December 9, 2023

Honorable mention for Theuerdank

 My translation of Theuerdank was awarded one of two honorable mentions in the 19th Aldo and Jeanne Scaglione Prize for a Translation of a Literary Work from the Modern Language Association

My co-author Howard Louthan deserves a lot of the credit for this, as he first suggested the idea of translating Theuerdank for use in undergraduate teaching, and the prize citation specifically mentions the "supporting materials (maps, chronology, a key to the characters and narrative, discussion questions, and suggestions for further reading)" – which Howard provided. We were also fortunate to work with a great team of editors and production personnel at Routledge who worked with us to ensure the complex layout and ~ 120 illustrations were implemented correctly.

Looking back at my files, it looks like Howard and I first discussed the idea in March 2018. I started preparatory work in April and translation work in August 2018, with the initial translation finished by August 2019. Revising the translation and preparing the manuscript lasted into 2020, and the publication process was complete in 2022.

Monday, November 13, 2023

Some final thoughts on eScriptorium

 After three months, I've been able to get back to eScriptorium. At this point, I think it's a reliable solution for creating the kind of digital texts I need in a timely and effective way. Being able to take advantage of the feedback loop from recognition to editing to training to recognition is a huge benefit. Some additional notes:

  1. I upgraded my old machine with a refurbished Nvidia 3060-based GPU, and it makes quite a difference. For a separate project, recognition tasks were sped up 6-10 times. For OCR, it made training with Kraken significantly faster, although I didn't measure it. Page recognition is much quicker. For around $200, definitely worth it - it doesn't just speed up one step, it makes it possible to test and experiment in a reasonable amount of time. I also experienced fewer hanging processes in eScriptorium.
  2.  Docker crashed at one point and took everything with it. Not an eScriptorium problem, but making periodic backups or exporting XML is probably a good idea.
  3. But re-installation was easy. I did have to remember not to reinstall eScriptorium from git in a Windows command prompt, but from git in a WSL shell. I don't know why that makes a difference to Docker, but it does.
  4. eScriptorium does have a panning tool. You can right click and move an image around. However, there are limits in place so you can't move an image around when it fills the workspace. If you shrink the image, you can move it around the workspace at will. If you enlarge it, you can also move it around at will. But if the image is at 100% size, you can't move it at all. I still find this counterintuitive. Why can't I pan a 100%-sized image, but I can pan every other image size?
  5. I wish I could hold CTRL or SHIFT to toggle between scrolling up/down the screen, and resizing the image. Doing one when you mean to do the other is irritating. To scroll up/down the screen, you have to move your mouse pointer to a margin or gutter region.
  6. eScriptorium does let you select and delete lines and points in bulk, for example within a woodcut. Just hold down SHIFT, select, and hit DELETE. However, this only works if you don't have "Cut through lines" (scissors icon) selected. Why can't I select and delete lines in bulk when "Cut through lines" is selected? This is counterintuitive, especially since the first thing I would usually do after cutting through lines was deleting points and lines in bulk.
  7. To turn editing features on/off, you click on their icon. They change from blue to green. (Or is it from green to blue?) The mask button additionally cycles from blue to green to gray. Is blue on and green off, or the other way around? And the "Cut through lines" feature changes from yellow to green. Why yellow and not blue? And I still don't remember which one is on or off, even after many hours using the editing screen. This is, I think, not optimal UI design.
  8. I wish the editing icons stayed on screen instead of scrolling off. When I'm editing the lower section of an image, it's an annoyance to need to scroll up to click on something. The web interface makes it difficult to keep buttons in place, but it's annoying nevertheless. [Just hit the "C" key to switch between "Cut through lines" and usual operation. It's fast and easy and documented in the help screen and doesn't clutter up the screen with floating toolbars.]
  9. There's a question mark icon that you can click for a help screen. Maybe my work flow isn't what the designers envisioned, but almost nothing on the help screen was relevant to how I worked. I searched for and read help files as issues came up, but I didn't watch any of the videos.
  10. Line renumbering works! If a line gets skipped for some reason, it's not too hard to add it, enter the text manually, and have it renumber automatically. I'm not sure what would happen in a multi-column environment.
  11. The results of transcription after editing just 5 pages and retraining a model based on them are astounding. I can't emphasize enough how much easier this makes digitizing early modern printed texts and how radically this might change scholarship that draws on them. Things that once seemed impossible, or possible only for institutions with significant specialized personnel and IT resources, are now possible on my desktop in my spare time.

Anyway, thanks very much to all those who provided suggestions and corrections, and especially to the developers. eScriptorium is finally letting me do some things I've been hoping to do for almost 20 years.


Wednesday, August 16, 2023

eScriptorium: Let's try breaking some rules

I am not a scriptorium. I'm just one guy with a professional interest in late medieval and early modern prophetic texts who needs to turn digital facsimiles into electronic texts as quickly and painlessly as possible so I can read, skim, annotate, compare and search them.

eScriptorium uses kraken as its recognition engine, and in fact it's entirely possible to install kraken as a standalone program (using the Windows Subsystem for Linux) and run it from the command line. Kraken in turn makes it possible to train or refine a recognition model using the command-line program ketos.

According to the kraken documentation, "Transcription has to be diplomatic, i.e. contain the exact character sequence in the line image, including original orthography." What I need, though, is readable text. Especially if I'm searching a longer text, I need to be able to find all occurrences of a word without worrying about abbreviations or spelling conventions.

This sets up the following workflow:

  • Pre-edit images as necessary (much reduced with eScriptorium, which handled skewed images well)
  • Import images into the OCR environment
  • Automatically recognize baselines/regions
  • Manually correct baselines/regions
  • Automatically recognize a bunch of pages
  • Manually correct the text as diplomatic transcription (Larissa Will added some useful pointers in a comment on my last post)
  • Export XML files and JPG images
  • Train a work-specific model with ketos using these files
  • Recognize the rest of the text in eScriptorium using this model
  • Correct the diplomatic transcription by resolving abbreviations and lightly normalizing the text

It's a lot of work. OCR4all and its models are set up to handle just about any abbreviation you throw at them, but the rest of the world isn't. It requires the use of Unicode extensions that Notepad++ and Word don't handle well in every case (or even many cases). And it requires an enormous amount of time to resolve the abbreviations and normalize the text, even with careful use of search and replace. I did it with one longer work, and it's exhausting.

But what happens if we break the rules? I don't want to deal with diplomatic transcriptions. You're not the boss of me and you can't make me. What if we don't give kraken a diplomatic transcription? What if we feed it transcribed pages of resolved abbreviations or even normalized text? Will it harm accuracy, and will the results be usable? Can we get kraken to take over the work of normalizing the text for us?

Yes we can.

I started with UB Mannheim's recognition model based on 16th-century German Gothic prints (luther_best.mlmodel), which gave results very similar to but maybe a very slight amount better than its model based on German and Latin prints of various periods (german_print_best.mlmodel). The OCR target is again a 1498 edition of Wolfgang Aytinger's commentary on pseudo-Methodius. I experimented a bit along the way, but I had 24 corrected pages (exported in PAGE XML format) by the time I conducted the final comparison.

So in my eScriptorium directory, I currently have a subdirectory, "train," containing 24 .jpg files and .xml files named 0058.jpg/0058.xml - 0080.jpg/0080.xml. Between them, there are around 650 corrected lines of text. In my WSL-based Debian distribution, I navigate to the eScriptorium directory and issue the following command:

ketos -v train -i luther_best.mlmodel -f page train/*.xml

To explain each part:

-v    Verbose output, so I can see more of what's going on

train    The command telling ketos what to do

-i    Instead of trying to train a new model from scratch, I want ketos to retrain an existing model, luther_best.mlmodel, found in the directory where I issue the command

-f    The XML files are in PAGE format. 

train/*.xml    The path to the files to use for training 

Retraining a model with just 5 corrected pages yielded much improved recognition results. On my underpowered computer, each training iteration took around 5 minutes and the whole process took a few hours. With more data, training takes longer - with 24 pages, each iteration took 20+ minutes and I had to let the process run overnight.

Was it worth it?

Here's the first 10 lines of the page I used for testing from the HAB. 


 And here are the first 10 lines using base Luther model: 


I mean, kind of? I could use it, but it would take a lot of work to fix. The base German_Print model is about the same:

A little better, a little worse. Still a lot of work.

After training on work-specific pages, accuracy can be expected to be much better. But how will kraken do with abbreviations after training on an undiplomatic transcription? As it turns out, brilliantly.

In this image, correct resolutions of abbreviations are marked in green and incorrect ones or other mistakes in red. eScriptorium got it right 47/57 times (82%) after training on just the abbreviations that occur in 24 pages. And the best part is that I only have to deal with plain old ASCII-compliant characters that will copy and paste anywhere without complaint.

I can almost read this as is. I can work with this.

But what about normalizing i/j and u/v and similar? I re-corrected the 24 pages by normalizing the text, re-exported the XML, and re-trained. Here are the results:

In this image, green and red are used as above to mark correct/incorrect expansions, while blue/purple are added to mark correct and incorrect normalization.

And the results are fantastic. Training on normalized text with resolved abbreviations didn't cause any loss of recognition accuracy. Kraken normalized the text correctly 10/11 times, including getting the internal "v" correct in conversus and numeravit

Even some of the mistaken abbreviation resolutions are better than nothing. I just need to delete an "n" from "quenm," and the "m" is already there. The less I have to type, the faster the last step will go. This is going to save me a lot of work.

Finally, someone might ask if I couldn't just train a model from scratch using pages from Aytinger and have a completely tailor-made recognition model. Wouldn't that be even more accurate?

No. At this point, the results are laughable - quite literally. Trained on 650 lines of corrected text, the resulting recognition model has a 4% accuracy rate and yielded the following transcription:

tee-
teei
teet
teei
tee-
tee-
tee-
teei
ees
teet

I don't know how much text is required to train a model from scratch, but "around 650 lines" is not the answer.

Wednesday, August 2, 2023

eScriptorium is bad. And brilliant.

OCR4all isn't the only option for turning early printed books into electronic texts. According to Stefan Weil (via Klaus Graf), eScriptorium was able to produce usable text of pseudo-Vincent Ferrer's De fine mundi in German translation with moderate effort based on segmentation and text recognition models from the UB Mannheim. With 15 corrected pages, it was then possible to train a work-specific OCR model for the rest. (His results are here.)

First the good news.  The documentation states that eScriptorium runs under either Linux or MacOS, but it installs and runs without major incident as a Docker app under Windows. The recognition models from the UB Mannheim are very good for early German printed books. Using a best-case scan of Joseph Grünpeck's 1508 Speculum in German from the Österreichische Nationalbibliothek, it produced impressively accurate results. Results were still very good for a less-than-perfect scenario (Wolfgang Aytinger's Latin commentary on pseudo-Methodius from the HAB). The underlying Kraken OCR engine has finally made it possible for me to train and use my own OCR models. I can't imagine using anything but eScriptorium after this. It's that good.

But eScriptorium is also bad.

The installation documentation isn't great, and the instructions for use are confusing. A quickstart guide would be helpful. I've run other OCR programs before, but it still took a long time for eScriptorium to start making sense.

Importing images into a new project went smoothly, and eScriptorium seems to handle PDFs just fine. So there's less need to pre-process images, and conversion to grayscale is unnecessary.

Segmentation, using either the default or the UB Mannheim segmentation model, worked quite well. But one of eScriptorium's major flaws is that the segmentation editing tools are very limited compared to OCR4all, and they behave erratically. There's no easy way to select an area and delete all text lines at once, which is a real problem with woodcut illustration, which are often recognize as a dozen or more short text lines at odd angles. Instead of selecting all lines or the whole region, I have to select each line and delete it one by one. Attempting to edit region outlines or lines quickly leads to frustration. The order of text lines can be displayed, but there's no way to change it if it's incorrect (which I've seen more than once so far). There's no way to "grab" the page image and move it around, so it can be difficult to move it back to the center of the screen at reasonable size. The equivalent tools in OCR4all are much more comprehensive and easier to use.

When segmenting or recognizing multiple pages, processes would stop without warning or explanation. The only reason I knew they had stopped was because CPU usage in Docker dropped back into low single digits. The failed processes weren't sequential, but instead affected pages seemingly at random, which meant I had to go back through the images one by one to see where segmentation or recognition had failed.

Some tasks proved impossible to cancel at all, even after stopping Docker or restarting Windows. My first attempts at training a model in eScriptorium were unsuccessful, but even now one of them is still listed as ongoing, and clicking the "Cancel training" button generates the less-than-helpful error "SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data." (For the curious: the raw data is "status," and nothing else.).

The transcription window is nicely responsive and easy to use. I especially like how the text resizes so the line width matches the image above it, making it easy to edit or transcribe. I prefer it to the OCR4all transcription screen. The eScriptorium window only shows one line at a time, however, and often it's necessary to see the next or preceding lines to choose the best transcription. It also seems to lack OCR4all's ability to show low-probability characters.

With good recognition models, recognition results are fantastic. A pattern I've noticed with perhaps half the pages I've processed so far, however, is that the last line on the page will have abominable recognition quality, as if eScriptorium is somehow reverting to a rudimentary model for the final line of the page.

You can export recognized, transcribed and/or corrected pages in ALTO or PAGE XML formats or plain text, with or without the images - maybe. Once I had downloaded one XML format without images, eScriptorium kept generating the same ZIP file no matter what other options I chose until I restarted the whole stack in Docker. Plain text is exported only as a single block of text rather than as separate text files. If you need to generate ground truth text files, you'll have to copy and paste by hand, without even a page separator to guide you.

Effective OCR relies on high-quality models, but the central Zenodo repository is nearly empty and doesn't offer anything suitable for the early modern printed books I work with. I knew that better models existed somewhere and even some of the file names, but even with that information it took me two days to find them. (I eventually found them here.)

One of the nice features of eScriptorium is the underlying Kraken engine. You can install it under Window's Linux subsystem (I've got it running under Debian) and work with it directly from the command line, no web interface needed. The bad news, again, is the confusing and sometimes contradictory documentation, with the same command-line switches meaning different things depending on the particular command given to Kraken.

My overall impression is: nomen est omen. OCR4all really is trying to bring OCR for early print to a broad audience of individual users, while eScriptorium is targeted at the digital scriptorium, with specialized hardware and trained personnel working on major digitalization efforts.

Still, eScriptorium gives me the sense, in a way that OCR4all didn't, that the promised land is in sight: I'll be able to take a digital facsimile, get a good initial transcription, then train a work-specific model that will produce very good to excellent results for the complete work. A working digital text might mean the investment of a few hours and not dozens.

Friday, July 14, 2023

Modern editions of medieval and early modern prophecies v.01

In my research, I keep asking myself related questions: "Are there any better options than a digital facsimile?" "Is this text edited anywhere?" "Why does everyone cite a 1690 edition of this key work?"

Some prophetic works have been edited. I know because I keep stumbling over the editions. In some cases we have the best the nineteenth century could do, and in others we have exemplary modern editions. I listed several editions in my Oxford bibliography, but I couldn't list even all the editions I knew of then, and the focus wasn't on editions in any case. To make the process of discovery less haphazard, I'm creating this list and updating it as I come across new works.

To the extent possible, I am excluding astrology and focusing on works in the form that circulated widely rather than on "authentic" or original versions. I will include short prophecies, but generally exclude partial editions of longer works. Any comments will be brief.

Next time: Add the various short prophecies edited in the nineteenth century and later, and the Oracula cyrili.

Birgitta of Sweden

Montag, Ulrich. Das Werk der heiligen Birgitta von Schweden in oberdeutscher Überlieferung: Texte und Untersuchungen. Münchener Texte und Untersuchungen zur deutschen Literatur des Mittelalters 18. Munich: C. H. Beck, 1968.

  • Latin and German editions of the Onus mundi compiled by Johannes Tortsch.

Hildegard of Bingen

Gebeno, José Carlos Santos Paz, and Hildegard. La obra de Gebenón de Eberbach. La tradizione profetica 2. Tavarnuzze (Firenze): SISMEL : Edizioni del Galluzzo, 2004.

  • While excellent editions of Hildegard's work exist, this is the only complete edition of the widely copied Pentacron.

 Johannes de Rupescissa

Vademecum

Johannes de Rupescissa. Vade mecum in tribulatione. Edited by Elena Tealdi, Robert E Lerner, and Gian Luca Potestà. Milan: Vita e Pensiero, 2015.

Kaup, Matthias. John of Rupescissa’s Vade Mecum in Tribulacione (1356): A Late Medieval Apocalypse Manual for the Forthcoming Fifteen Years of Horror and Hardship. Farnham: Ashgate, 2013.

Other works

Rupescissa, Johannes de. Liber secretorum eventuum: Edition critique, traduction et introduction historique. Edited by Robert E. Lerner and Christine Morerod-Fattebert. Fribourg: Editions Universitaires Fribourg Suisse, 1994.

Paracelsus

Paracelsus. Theophrast von Hohenheim gen. Paracelsus: Sämtliche Werke. Edited by Karl Sudhoff. 14 vols. Munich and Berlin: R. Oldenbourg, 1929.

  • Where among these 14 volumes are the prophetic works located? I'll have to take another look at this later. Available by open access. Vol. 1 is here.
Pseudo-Methodius
  • The problem with pseudo-Methodius editions is that most are focused on the early stages of the text in Syriac, Greek and Latin from the seventh to ninth centuries A.D., while I'm interested in what the text was doing in Europe nearly a thousand years later.

Sackur, Ernst. Sibyllinische Texte und Forschungen: Pseudomethodius, Adso und die Tiburtinische Sibylle. Halle (Saale), 1898. 1-96.

Pseudo-Methodius. Apocalypse of Pseudo-Methodius: An Alexandrian World Chronicle. Translated by Benjamin Garstad. Dumbarton Oaks Medieval Library, DOML 14. Cambridge, Mass: Harvard University Press, 2012.

Grifoni, Cinzia, and Clemens Ganter. “The Third Latin Recension of the Revelationes of Pseudo-Methodius – Introduction and Edition.” In Cultures of Eschatology, edited by Veronika Wieser, Vincent Eltschinger, and Johann Heiss, 1:194–253. Cultural History of Apocalyptic Thought. Berlin ; Boston: De Gruyter Oldenbourg, 2020.

 Sibylline prophecies

  • This will probably get split into separate categories at some point.

Neske, Ingeborg. Die spätmittelalterliche deutsche Sibyllenweissagung: Untersuchung und Edition. Göppingen: Kümmerle, 1985.

  • Perhaps the first vernacular printed work.

Sackur, Ernst. Sibyllinische Texte und Forschungen: Pseudomethodius, Adso und die Tiburtinische Sibylle. Halle (Saale), 1898. 114-187.

  • Tiburtine sibyl

 Ve mundo

 Kaup, Matthias, and Robert E. Lerner. “Gentile of Foligno Interprets the Prophecy ‘Woe to the World,’ with an Edition and English Translation.” Traditio 56 (2001): 149–211.

Tuesday, May 30, 2023

OCR4all is better than Google

OCR4all is better than Google OCR for early modern printed books.

Klaus Graf pointed me to a suggestion from Lajos Adamik on using Google Docs for OCR. It's a great idea - Google is fast and fairly accurate. For some projects I'd definitely use it.

But not for most early printed books. I had earlier tried out different OCR4all models/model combinations on a page from Abbas Joachim magnus propheta (1516) so I had images (in various stages of preparation) and uncorrected output text to compare.

(NB: I got best results using the "fraktur-hist" models. Contrary to OCR4all's documentation, I got best results from using all five "fraktur-hist" models together compared to using any one of them alone.)


 Here is the uncorrected OCR4all text. This is a fairly difficult text for OCR: Latin, many abbreviations, some barely perceptible abbreviation markings (some symbols may not display correctly in your browser, but I can see all of them here).

¶Jncipit liber de magnis tribulationibus in proximo futuris. Compilatus a docto ⁊ deuoto preſſ ptero ⁊ heremita Theoloſphoro de Cuſentia ꝓuincie Calabrie. Collectus vero ex vaticinijs nouorum prophetarum. ſ. beati Curilli: abbatis Joachim: Danda i: ⁊ Mer lini: ac veterum ſibillarum. Deinde abbreuiatus pervenerabilem fratrem Nuſtitianuʒ: vna cũ tractatu magiſtri Joãnis pa: iſini ordmis pᷣdicatoꝝ: de antichriſto ⁊ ſine mũdi: t fr̃is Tbertini de ſeptẽ ſtatib?eccleſie.

Here is the manually corrected text. Clearly a lot of post-recognition cleanup work is necessary, but OCR4all does a decent job of picking up abbreviations. Here's the corrected version - to get a corrected text of the complete work, perhaps 100-200 hours of work or more would be required.

¶ Incipit liber de magnis tribulationibus in proximo futuris. Compilatus a docto et devoto presbytero et heremita Theolosphoro de Cusentia provincie Calabrie. Collectus vero ex vaticiniis novorum prophetarum. s. beati Cirilli: abbatis Joachim: Dandali: et Merlini: ac veterum sibillarum. Deinde abbreviatus per venerabilem fratrem Rustitianum: una cum tractatu magistri Joannis parisini ordinis predicatorum: de antichristo et fine mundi: et fratris Ubertini de septem statibus ecclesie.

Here are a few examples from Google. The first one uses a deskewed base image. The amount of work required to correct the text will clearly be higher.

CIncipit liber de magnis tribulationibus in proximo futuris. Lompi latus a docto z ceuoro prefbytero z heremita Theolofpbozo de Lufentia puincie Lalabzie. Lollectus vero ex vaticinijs nouozum pzo/ phetarum.f. beati Lirilli: abbatis Joachim: Danda i: Delini:ac veterum fibillarum. Deinde abbreuiatus pervenerabilem fratrem Ruftitianus:vna cu tractatu magiftri Joanis parifini ordinis pdicator de antichrifto z fine müdi:z fris Ubertini de fepté ftatib ecclefie.

Using one of OCR4all's preprocessed images shows what can go wrong with Google Docs:

Incipit liber de magnis omne malum fuper omnes habitatores terre. tribulationibus in proximo futuris. Lompt Itaq; fub tali impatore/tres falt pape creabus tur:vnus grecus:alius italus:z alius germa/ latus a docto z ceuoro presbytero z heremita Theololphoto de Lufentia puincie Lalabae.us/oium peffimus: erunt finguli adinuicez Lollectus vero ex varicinije nouocum pro phetarum,f. beati Lirilli: abbatis Joachim: Danda i: dei lini:ac veterum fibillarum. Deinde abbreuiatus pervenerabilem fratrem Ruffitianuz:vna cũ tractatu magistri Joānis parifini ozdinis pdicator:de antichrifto z fine mūdì:z frio Ubertini de fepté flatib ecclefie.

Pretty bad. While a cleaner image should produce better results, Google's OCR failed to recognize the page's two-column layout and instead smashed the two columns together randomly (underlined/grey text) - sometimes one line at a time, sometimes two lines, then not at all - producing unuseable results. How often would this happen when scanning a 100-page book? 


I realize this is all based on one page of one book, but I think this points to several ways that OCR4all is a better fit for all but the most straightforward projects.

  • More accurate recognition of abbreviations and other symbols typical found in early modern books
  • User control over page layout - you can exclude images, marginalia, etc., without editing the image
  • User control over models - you can check where lines/columns have been divided before recognition, and make changes if necessary
  • Better interface for correcting recognized text - Google doesn't reveal low-probability characters, and you're stuck with whatever it offers
  • Access to better recognition models/user control of models - although OCR4all will need to keep improving its models over time

Thursday, April 27, 2023

Digital text: Methodius, Revelationes [German], 1497

Who needs a digital text when digital facsimiles are available? I do. When I'm hunting citations or comparing versions, I need to be able to annotate, rearrange, and copy and paste. In addition, it's much faster to read an early modern text in a modern font, especially if I'm scanning a text I've read to find something I remember seeing previously. It's what makes the effort required to use OCR4all worth it.

Here's one result, for example: a complete digital text of Pseudo-Methodius' Revelationes in German, published in 1497 (ISTC im00526000, GW M23065; fascimile from the Bayerische Staatsbibliothek).

I've prepared the text for my own purposes, so:

  1. The numbers count images starting from the title page, not anything useful like leaves.
  2. I've made minimal effort to resolve abbreviations or normalize spelling.
  3. I'm using modern equivalents for s and z.
  4. I read through the text once to straighten out the formatting and catch errors, but there are undoubtedly still errors in the text.

The German text was more useful to me than the Latin text, and it uses fewer abbreviations. That does mean that this text doesn't include Wolfgang Aytinger's commentary on Methodius, so I might have to deal with it separately. I'm currently digitalizing a Latin work for the first time, and I don't know how well OCR4all will handle abbreviations yet.

I have several more texts like this that I'll post eventually, and I'm working on more as time permits. One goal is to end up with a workable electronic text of Lichtenberger's Prognosticatio.

Hopefully someone will find these working notes useful. If you need to cite something, cite to Albrecht Kunne's edition or a modern critical edition of Methodius.

Thursday, April 6, 2023

OCR4all is good

 For a current project, it would be useful to have an electronic text of pseudo-Vincent Ferrer's De fine mundi (or Anton Sorg's 1486 edition of a German translation, to be precise).

Let me back up a bit. For every project that I've worked on since the beginning of grad school, I've wished for an electronic text of every primary and secondary source. They've rarely been available. When they've been essential, it usually required a lot of manual typing.

For modern works, ABBYY FineReader works extremely well, but it didn't produce usable results for 15/16th-century books, even with considerable fine-tuning. I looked at other options a few years ago, but they looked more like solutions for specialized digitalization centers.

Until recently. After seeing a colleague's results, I gave OCR4all another try, and it's finally giving me the electronic texts I want for a reasonable amount of effort.

The installation instructions are mostly clear. There's a learning curve and I'm far from understanding all the options, but it largely produces good enough output as is. Hardware requirements are quite modest - I'm running it on my work computer, an Intel Core i5-4590 from 2016.

There are a few things I've done to speed up the process.

  1. Most of the texts I want to digitize are available as scanned images. Before I turn OCR4all loose, I do some minimal preparation work using IrfanView, a free, lightweight, all-purpose image viewer and editor: I rotate any pages that are noticeably off horizontal (OCR4all will do its own fine-tuning), and I crop out extraneous margins. I set up an AuoHotKey script so I can save the file with one key combination once I have the cropping rectangle selected.
  2. Once I start up OCR4all, I can mostly let it do its preprocessing, noise removal, page segmentation and line segmentation on its own. But it's a good idea to check a few pages to make sure noise removal hasn't gotten out of control, and then to check the line segmentation of each page to make sure OCR4all hasn't skipped over anything and has chosen a rational reading order.
  3. For text recognition, I select five historical Fraktur models. I wish it was clearer why I'm selecting five, and all Fraktur models rather than a mix or something else, but I'm getting good results.
  4. OCR4all has a good visual editor for comparing recognized text to the page image. To speed things up, I'll zoom in the text to around 160%, or whatever makes the lines about the same length as the page image. Then I check off "Show Prediction" and "Show Confidence" and raise the Word Confidence to .95. This highlights the words I need to double-check in orange. I'll make any edits to those words and assume the rest are good enough for now.
  5. After checking each page, I export a text file, then do some searching and replacing in Notepad++. Its pattern-matching abilities based on regular expressions are much better than what's available in Word. I replace tall ſ and ʒ with s and z, for example - the goal here isn't an edition, but an easily readable text. I also remove line breaks.

 And that is how I can go from a digital facsimile to a usable electronic text in less than an hour for a pamphlet, and a few hours for a longer work like De fine mundi.


How it started

How it's going

Jtem/ vil wilder thier/ id est (Fürsten) werden widerwertiglich mit einander reden. Jm. 1524. jar. Vnd ein grosser adler/ id est (Keiser) desselben haupt/ vnd werden gehen auff die weitte der er den / id est (Türcken vnd das heilig land) vnd welcher den namen des sterns / id est (Bapst)hat/ derselb wirt geladen/ aber er wirt nit kumen / doch so wirt er senden den/ der den namen des visch hat/ id est (delfin/ das ist der Künig von Franckreich) vnd wirt an sich nemen der adler ein grosse samlung/ vñ der Leopardus/ id est (der Römisch Künig) auß Campo albo / vnd durch die Ritterschafft eingehen vñ machen ein haupt in der Marchia/ id est (in der Mar chia vnd eins ist in Welschen landen) vnd wirt darnach gehen wider das erdtreich/ das da seyn grund hat von verreterey/ id est (wider Welsch land vnd der Römer) vnd welcher den namen des vischs hat / der wirt an sich nemen den weg Leopardus / vñ kumen wider jn vber die lender Campaniam zwischen der grund Parmam schlösser/ id est (stet in Welschen landen) vnd wirt sich halten widerwertig / vnd da wirt dann vil blüts vergiessung durch manschlacht bey dem fluß / welcher genennet ist der arbeyt / id est (wascher fiuß) darnach wirdt derselb fluß des blůts / der von der manschlacht einkumpt/ vnd der da den gantzẽ tag billt / id est (Künig von Vngern) der wirt sterben von eisen/ vnd wirt vber jn herschen der Leopardus / darnach wirt er sterben natürlichs tods/ vñ wirt darnach frid durch dz gantz erdtrich werdẽ/ Das werd war/ AMEN.

Friday, March 17, 2023

A Pseudo-Methodius sighting

The fifteenth-century manuscript Wissenschaftliche Stadtbibliothek Mainz, Hs I 109, from the Carthusians of Mainz, consists of four parts. A sixteenth-century addendum at the end of part 3 (fol. 109v) includes a list of around 20 books. The first two items from the list belong to the third part of the manuscript, but the rest do not.

The final line of the list begins: Item Reuelacioes methodij

The library's manuscript catalog doesn't mention Methodius, but does describe the rest of the works as "primarily theological, grammatical and medical writings, including Sebastian Brant's Narrenschiff, Jakob Wimpfeling's Elegantiarum medulla and Isidoneus Germanicus, Johannes Marius Philelphus' Novum epistolarium." (I also see Johannes de Sacrobosco's De sphaera mundi in the book list.)

It's always interesting to get another data point on who owned prophecies, and in what context.

Saturday, January 8, 2022

A Cedar of Lebanon sighting

 Wissenschaftliche Stadtbibliothek Mainz, Hs I 171 is a manuscript from the second half of the 15th century. The provenance is from the Carthusians of Mainz.

The text on ff. 21v-22r is identified as a "Vision de anno 1387." The title identifies it as a vision found in an old book: "Sequitur alia visio Reperta in uno antiquo libro."

The text is in fact the "Cedar of Lebanon" vision (see Robert Lerner's 1983 Powers of Prophecy for the definitive study).

The preceding text, the "Visio de anno 1454" on ff. 20r-21v, is the Revelatio I of Denis the Carthusian.

Thursday, April 19, 2018

The Extract of Various Prophecies

For the booklet of excerpts from Lichtenberger and Grünpeck and other sources known variously as the Auszug etlicher Prophezeiungen, Extract of Various Prophecies, and (inaccurately) as the "Anonymous Practica"/"Anonyme Praktik," whose most thorough previous description is pp. 145-53 in Heike Talkenberger's Sintflut (1990), I have a recently published article that clears up some of the mysteries:

Jonathan Green. “The Extract of Various Prophecies: Apocalypticism and Mass Media in the Early Reformation.” Renaissance and Reformation 40.4 (2017): 15–42.

  • The previously unknown source of the foreword is Simon Eyssenmann’s annual astrological prognostication for 1514 (VD16 E 4757).
  • The concluding 54 lines of verse are likewise not an original compilation, but appear to be taken from a 108-line poem printed together with an astrological prognostication or calendar for 1508; see Carl Gottfried Scharold, Dr. Martin Luthers Reformation in nächster Beziehung auf das damalige Bisthum Würzburg historisch dargestellt (Würzburg, 1824), 1:64n1, xx–xxiii (appendix item vi). Fragments of both previously unknown sources appear as pastedowns in the same volume (Augsburg, Staats- und Stadtbibliothek 4 Med 1284).
  • The extracts from Lichtenberger are most closely connected to an edition published in 1497 by Bartholomaeus Kistler in Augsburg (ISTC il00209000/GW M18245) and another set of extracts published in 1532 (VD16 ZV 11958).
  • The Dutch edition dated to 1509 (NB 26021) should be dated to around 1523.
  • The decisive actor behind publication of the Extract of Various Prophecies is Hans Stainberger, bookseller of Zwickau, although his personal involvement in composition is unlikely.
  • The 14 known editions of 1516-1525 make the Extract of Various Prophecies the most frequently printed prophetic work during that decade.
  • The circulation of the Extract of Various Prophecies is associated with several interesting Reformation-era controversies, and illustrates the spread of apocalyptic motifs and the formation of audiences for apocalypticism in Reformation-era Germany.
I sketch out the the relationship between texts and editions as follows (this image does not appear in the published article):

    Friday, June 23, 2017

    A very short review: Encyclopedia of Apocalypticism (1998)

    McGinn, Bernard, John Joseph Collins, and Stephen J. Stein, eds. The Encyclopedia of Apocalypticism. 3 vols. New York: Continuum, 1998. ISBN 978-0826412522.
    9780826412522
    9780826412522
    9780826412522
    9780826412522

    I usually save short reviews for academic work that is of the highest quality or makes a substantial impact on my own work. So this review is about 20 years late, but well deserved. I came across the three-volume Encyclopedia of Apocalypticism while browsing in the university library last fall and ended up reading it from cover to cover, from cover to cover, and from cover to cover - for all three volumes, from ancient Persia to the late twentieth century.

    The articles were on the whole well written, authoritative, and thoroughly documented. I thought there were only two real clunkers; the rest ranged from highly informative to truly excellent. Now matter how distant any article seemed at first, I found that almost every article was relevant to my research on early modern Germany and helped me see my work in a much broader context, while the best articles motivated me to rethink and redefine what I research and how I go about it. When I first started the research project that turned into Printing and Prophecy, I planned to look only at prophecy as a communicative act in late medieval and early modern Germany, but soon found I couldn't avoid dealing with astrology and the Reformation. Now I see that I can't avoid dealing with apocalypticism as well. The Encyclopedia of Apocalytpicism is going to be one of those reference works that stays near my desk for just about any research project.

    Friday, April 21, 2017

    Vanished booklets of the 1560s: a few core samples

    When talking about printing, literature, or anything having to do with medieval and early modern texts, it is easy to overlook something that must not be overlooked: how much of what was once written or printed has now vanished. For practicas, annual astrological prognostic booklets, which were by nature ephemeral, we can assume that many editions have left no surviving copies, but pinning down how many or characterizing the relationship of the known to the unknown is tricky.

    One source of evidence are book lists that can be compared to known editions. For practicas in the 1560s, we have two interesting sources in practica compilations, one printed in Frankfurt for the year 1565 (VD16 ZV 29072) and the other printed in Basel for 1569 (VD16 P 4544), both of which claim to reprint all the astrologers who have made prognostications for that year.

    The first collection, for 1565, includes sections from the practicas of ten astrologers: Johannes Huldrich Ragor, Nikolaus Neodomus, Johannes Hebenstreit, Andreas Rosa, Christoph Statmion, Sebastian Brelochs, Gregor Fabricius, Nicolaus Winckler, Simon Heuring, and Moritz Steinmetz. Of these, nine are known from printed editions of practicas for 1565; only Ragor's is otherwise unknown. (This is an interesting list of astrologers. Six are well known practica authors, while four are sparsely attested: Ragor [otherwise attested only for 1581], Neodomus [attested only for 1565], Sebastian Brelochs [only attested for 1565 and 1568-69, in contrast to his widely published predecessor Anton Brelochs], and Moritz Steinmetz [only attested for 1565]. But the editor also omits a few astrologers with practicas for 1565, including Valentin Engelhart, Georg Holsthen, and the well-known Joachim Heller.) In comparison, VD16 records 16 practica editions from 12 authors, but lacks Johannes Ragor's.

    The second collection, for 1569, includes chapters from eight astrologers: Nicolaus Winckler, Johannes Hebenstreit, Victorinus Schönfeld, Simon Heuring, Valentin Butzlin, Erasmus Reinhold, Sebastian Brelochs, and Hieronymus Wilhelm. Again, half of the authors are well known, while the other four are more obscure (Sebastian Brelochs again, Valentin Butzlin, Erasmus Rehinhold, and Hieronymus Wilhelm). The editor again omitted some well-known astrologers with known practicas for 1569, including Georg Caesius, Andreas Rosa, and Christoph Statmion. The included chapters are drawn from four practicas that are unattested in VD16.

    So to sum up: The collection for 1565 tells us that VD16 misses 1 out of 13 authors (7.7%). The collection for 1569 tells us that VD16 misses 4 out of 11 authors (36.4%). For both years, VD16 records 23 editions from 14 authors. The two collections suggest that VD16 misses at least 4 out of 18 authors (22.2%). This isn't an answer to the question of missing editions, but it does give us some interesting core samples to think about.

    Friday, April 7, 2017

    A prognostication for Valentine's Day 1469 from the desk of Hartmann Schedel

    Bettina Wagner's work on letters, notes, and other miscellanea from Hartmann Schedel has uncovered quite a few interesting things, including this cataclysmic prognostication for 1469 copied onto a loose leaf. It's an interesting text that I haven't seen before. An attempt at a transcription and translation follow. Punctuation has been added and capitalization has been altered for sense and abbreviations have been resolved silently.
    Anno Mo cccco lxviiiio quartadecima die mensis Januraii incipietur delusio mundi, evacuatio cleri, derisio christianitatis, deposit[i]o potentiarum scilicet Imperatoris et regum. Insuper quartadecima die mensis februarii circa[?] meridiem eclipsabitur sol et quasi omnino emittet formam sue dispositionis. Et significat iiiior mala. Primum quod deus movebit celum et terram in suo empisperio quasi mundum subverteret. Secundum quod virtutes superiorum movebuntur scilicet ordo contra[?] ordinem. Tercium de magna et in audita sangwinis effusione qualis numquam fuit a mundi origine timendum est. Quartum fames magna ita quod maritus non curabit uxorem nec uxor maritum nec pater et mater prolem curabit, quia quasi unanimiter desperabunt. Post hec sequitur pestis in audita de uno in alterum precedens et pauci effugient. Sed qui superstites manebunt bene habebunt et in cunctis prosperabuntur.

    Dicitur quod hanc prenostica Scola Parisiensium fecit que missa dicitur magistro Johanne Gerstman.

    On the fourteenth day of January 1469 will begin the deception of the world, the purging of the clergy, the mockery of Christendom, and the cessation of power, namely of the emperor and of kings. And then on the fourteenth day of February around noon, the sun will be eclipsed and almost entirely expel the form of its disposition. [NB. Is the thought that the sun will lose its light and weaken, or shine out its entire force at once?] And this signifies four evils. First, that God will move heaven and earth in their orbits ["hemispheres"] as if to overturn the world. Second, that the powers of the superior [planets] will be moved, namely one order against the other. Third, one must fear a great and unprecedented outpouring of blood the likes of which have never been from the beginning of the world. Fourth, so great a famine that a husband will not provide for his wife, nor a wife for her husband, neither father and mother for them children, because almost all will be united in despair. After these things, an unheard of plague will follow, advancing from one side to the other, and few will escape it. But what survivors will remain will be well and prosper in all things.

    It is said that the school of Paris made this prognostication, which is said to have been sent to Master Johannes Gerstman.

    The text, an amalgamation of astrology and catastrophic prophecies, bears some resemblance to the "Toledo Letter" and to the prognostication of "Meister Theobertus von England" printed around 1470 both in their construction and in their attributions to foreign astrologers. According to the NASA catalog of solar eclipses, there was a solar eclipse on 13 January 1469, which approximately matches one of the dates in the prognostication, but that eclipse was not visible in Europe. The eclipse of 9 July 1469 would have been much more dramatic. The closing note that anyone who survives will experience marvelous things is a motif that appears many times, particularly in the lead up to 1588.

    Saturday, September 19, 2015

    Simon Eyssenmann: bibliography v 0.13

    Simon Eyssenmann was a Leipzig professor and author of astrological prognostications following in the footsteps of Wenzel Faber and Conrad Tockler. He is all but forgotten today, but there may be some interesting things going on with his work. So here is the start of a bibliography for him, beginning with his practicas and the few relevant items of secondary literature.

    Update 0.13
    I've added the one non-practica found in VD16 and the two additional contributions to other works.

    Update 0.11: Klaus Graf has come up with many additional links for Eyssenmann over at Archivalia. Otherwise, for now I only have time to add one work to which Eyssenmann was a contributor.

    Practicas
    1. Practica for 1514. Latin. N.p., n.p. VD16 E 4756.
      Title page only preserved in Zwickau, Ratschulbibliothek.
    2. Practica for 1514. German. Augsburg: Johann Schönsperger. VD16 E 4757.
      Copy in Erlangen UB
    3. Practica for 1514. Low German. Lübeck: Georg Richolff the Elder. VD16 E 4758.
      Described only in BC 551 A.
    4. Practica for 1515. Latin. Leipzig: Wolfgang Stöckel. Not in VD16.
      Wroclaw UB (facsimile)
    5. Practica for 1517. Latin. N.p., n.p. VD16 E 4759.
      Title page only preserved in Zwickau, Ratschulbibliothek.
    6. Practica for 1516. German. Leipzig: Wolfgang Stöckel. Not in VD16.
      Wroclaw UB (facsimile)
    7. Practica for 1516. German. Landshut: Johann Weißenburger. VD16 E 4760.
      If the copy in the British Library is E 4760, then this edition is [8] rather than [4] leaves.
    8. Practica for 1516. German. Nuremberg: Jobst Gutknecht. VD16 E 4761.
    9. Practica for 1517. German. Leipzig: Wolfgang Stöckel. VD16 E 4762.
      Title page only preserved in Zwickau, Ratschulbibliothek.
    10. Practica for 1518. Latin. Leipzig: Jakob Thanner. VD16 ZV 5648.
      Halle ULB (facsimile)
    11. Practica for 1518. German. N.p., n.p. VD16 E 4763. 
    12. Practica for 1519. German. Leipzig: Wolfgang Stöckel. VD16 E 4764.
      Title page only preserved in Zwickau, Ratschulbibliothek.
    13. Practica for 1520. German. Nuremberg: Jobst Gutknecht. VD16 E 4766.
      Munich BSB (facsimile)
    14. Practica for 1520. German. Augsburg: Erhard Oeglin. VD16 E 4765.
      Munich BSB (facsimile)
    Others: A Latin practica for 1520 listed in WorldCat (link), with the title "Juditium Lipsense ad annum currentem vigesimum supra millesimum quingentesimum," but with no additional information about a printer or location.

    Other works
    1. Euchiridion Arithmetices. Leipzig: Jakob Thanner, 1511. VD16 E 4755.
      Munich BSB (facsimile) and Leipzig UB. This brief treatise on arithmetic begins with a dedication to Conrad Tockler, another Leipzig academic who published practicas for 1504-1514, whom Eyssenmann describes as his teacher. It closes with two additional texts, addressed to Wolfgang Christophorus Udalriuch, son of Udalrich LIndacher of Leipzig, and Conrad Funck of Leipzig, son of Andreas Funck.

    Contributions to additional works
    1. Dedication (to Conrad Funck of Leipzig, son of Andreas Funck) in a Latin edition of excerpts from Plutarch's De viris clarissimis liber. Leipzig: Jakob Thanner, 1509. VD16 ZV 12591.
    2. Dedication (to "Simperto Widenman de Schretzen") in an edition of Petrus Gaszowiec's Computus novus. Leipzig: Wolfgang Stöckel, 1514. VD16 P 1863.
    3. Six lines of Latin verse contributed (along with verses from eighteen other intellectuals) to Hieronymous Dungersheim's Confutatio apologetici cuiusdam sacre scripture falso inscripti ad illustrissimum principem Georgium Saxonie ducem. Leipzig: Wolfgang Stöckel, 1514. VD16 D 2947.
      The Munich BSB copy is from the library of Hartmann Schedel.

    Secondary literature
    • Eis, Gerhard. "Beiträge zur Spätmittelalterlichen deutschen Prosa aus Handschriften und Frühdrucken." Journal of English and Germanic Philology 52 (1953): 76–89.
    • Zoepfl, Friedrich. "Der Mathematiker und Astrologe Simon Eyssenmann aus Dillingen." Jahrbuch des Historischen Vereins Dillingen an der Donau 61/63 (1961 1959): 86–88.

    Friday, August 28, 2015

    Sanctus Columbanus fecit hos caracteres

    Well, that's weird.

    In another Vatican manuscript (Pal. lat. 482) available in digital facsimile from the Heidelberg UB, there is a series of alphabetic signs in an otherwise empty column on f. 15v (click to see the whole leaf on the Heidelberg UB site):

    http://digi.ub.uni-heidelberg.de/diglit/bav_pal_lat_482/0040 


    At first glance, this looks like a secret alphabet. In that case, the secondary literature probably starts with Bernhard Bischoff, "Übersicht über die nichtdiplomatischen Geheimschriften des Mittelalters," Mitteilungen des Instituts für österreichische Geschichtsforschung 62 (1954): 1-27. I don't find other examples associating Columbanus with secret writing, but Bishoff notes several attributions of secret writing to Irish clerics.

    But several of the letters look quite normal. Is the series rather an initialism, with each letter standing for a word in some devotional passage? If that is the case, the secondary literature one needs is entirely different.

    And one can't help but notice that there's a certain symmetry between the haloed "q" and the "p" signs at the beginning and end of the fourth line, or the "Christmas trees" on the left and right side, or the forwards uncial e in the third line and the backwards uncial e in the first line. Was there some kind of mirror-image game at the basis of these characters?

    Who knows? It's weird. When you browse through manuscripts, you find weird things.


    Saturday, August 22, 2015

    BAV Pal. lat. 461: "Prophetia Sibille conscripta per Ioachim prophetam" = Gallorum levitas

    For the last few months at least, volumes formerly held in Heidelberg and now in the Vatican library have been appearing in the digitalization project of the Heidelberg Universitätsbibliothek. I try to take at least a quick look at each miscellany as it appears, and one of them, Pal. lat. 461, included a "Prophetia Sibille conscripta per Ioachim prophetam," which sounded promising. The first few words quickly revealed this to be a garbled fifteenth-century copy of the "Gallorum levitas" prophecy:
    Gallorum levitas / germanis iustificabit /
    Ytalie gravitas / gallus confuse negabit /
    Annis millenis tricentis novagenis /
    Ter denis adiunctis / consurgit aquila grandis
    Constantina cadet et equi de marmore facti
    Et lapis erectus et erunt victricia signa
    Gallus succumbit / vix erit urbs presule digna
    Papa cito moritur / Cesar ubique regnabit
    Sub quo cuncta vana / cessabit gloria cleri

    This looked interesting, so I checked the secondary literature. Here's Robert Lerner (Powers of Prophecy 191 n. 11): "Unpublished MS copies of this text, which underwent numerous alterations, are so numerous as to be virtually beyond surveying."

    Oh, well. But here's another one!

    * * *

    I've moved again. The new semester has already started, so posting will resume, but may be sporadic for a while.