Monday, March 23, 2015

A Weak Argument for the Rohonc Codex as a Bogomil Text

I often privately come back to the question of whether the Rohonc Codex could be a Bogomil text. I think that could only really be proven by decipherment, but here let me lay out a weak argument in favor of that idea.

We don't know much about Bogomil theology, but of the small amount that we do know, I think there are three things that may be reflected in the imagery of the RC.

1. Adoptionism: This is a theological teaching that Jesus was born a man, but was adopted by God as His son. The circumstantial evidence for this in the RC is the fact that Jesus is normally portrayed in a way similar to other saintly people (with a simple turban-halo), but at some point (after the crucifixion?) appears to be transformed into a giant luminous being. Does this represent the adoption of Jesus by God?

Jesus riding into Jerusalem

Luminous Jesus

2. Absence of Mary: One of the implications of adoptionism is that Mary would have become pregnant in the normal earthly manner, rather than through divine intervention. As a result, adoptionists like the Bogomils and Paulicans did not revere Mary in the same way that Catholics and Eastern Orthodox churches did. The circumstantial evidence for this in the RC is the fact that Mary is rarely depicted, and never given a special status.

The family of Jesus receiving the Magi


3. Dualism: In addition to being adoptionist, the Bogomils were apparently dualist, believing in the existence of an evil demiurge as a counterpart to God. Some dualists, like the Marcionists, held that the demiurge was none other than the God of the Old Testament. The main circumstantial evidence for this in the RC is the absence of clear Old Testament imagery.

Make of that what you will.

A functional database

I mentioned in an earlier post that I was again working on a functional programming language. Probably the reason it is going so well is that the language itself is not my main goal. What I really want to do is build a functional database.

On the face of it, this seems like a ridiculous idea, because in order to be purely functional you would need to pass the whole database in as a parameter to any query, and return the updated database whenever you make a change to it.

But put aside the ridiculousness of it for a moment and imagine the following:

1. Your database is represented as a linked list of data changing transactions, so changing the database is just a matter of consing the new transaction onto the transaction chain.

2. Every transaction in the database carries a timestamp and a checksum, where the checksum is built from the data in the transaction and the checksum of the last transaction.

3. The data storage is trusted and the checksum has a vanishingly low rate of collision, so the checksum at time T can act as a reliable proxy for the whole database at time T.

What good would this thing be? I think it could be very powerful for certain applications. Consider the following:

  • All changes to the database would be audited. In an important sense, the database itself is the audit trail.
  • It would be trivial to add a date/time parameter to any query and get back the result of the query as it would have been at any time in the past.
  • The checksum could be used to verify whether the results of a query did indeed come from a given database at a given time.
  • Brute-force backdoor changes to the transaction chain would show up in the checksums.
  • You could allow "alternate universes" to be forked off of the main database at any time, to experiment with different scenarios. These would exist in parallel time with the main database, but would be distinguished by their own checksums.
This database would be useful in environments where data needs to be reliable and auditable.

Saturday, March 21, 2015

Whose Universe is This?


I've been thinking about the diagram of the universe that appears on page 83 of the Rohonc Codex:


At the center, we see the earth, with some cities and maybe a ship on the sea. Underneath the world is apparently Hell, which we also see on page 79:


The circle immediately surrounding the earth appears to hold the sun and moon, and beyond that are other complex shapes whose meaning is not clear to me.

I am wondering if this represents a description of the universe from a particular source. Perhaps from one of the three books of Enoch, or maybe another source that I am not familiar with.

The two figures in the highest heaven are reminiscent of something from the Talmud related to the apostate rabbi Elisha ben Abuyah, who is said to have gone to heaven and seen two figures seated there (understood to be God and Metatron). Since no one was allowed to sit in the presence of God, he exclaimed "Perhaps there are -- God forbid! -- two powers in heaven!"

Wednesday, March 18, 2015

Nearly full circle: A functional programming language

My mind is like an attic, stuffed with everything I can't bear to get rid of, and occasionally I bring something out and work on it (only to put it back later).

The earliest posts that I wrote on this blog related to my plan to create a functional programming language. Over the last few weeks, I have actually done that. It's nothing pretty, but it really does work, with lambda expressions and everything.

I worked backwards, starting with how the language would work on the inside, without worrying about what it would look like on the outside. The final language isn't finished yet, but I created a kind of intermediate testing language to use for checking the architecture.

The testing language is not supposed to be pretty. My main consideration here was to create a language that could be parsed by a very simple parser (with no lookahead), so that meant leaving out a lot of syntactic sugar and salt.

Here is my first program in the testing language.

using System
using FBaseUnitTests
let plus
    method Program _test006plus [ Int32 , Int32 ]
let ifzero
    lazyMethod Program _test006ifzero [ Int32 , Int32 , Int32 ]
let func
    lambda [ Int32 ] [ x ]
        apply variable ifzero [
            variable x ,
            value Int32 1 ,
            apply variable plus [
                variable x ,
                apply variable func [
                    apply variable plus [
                        variable x ,
                        value Int32 -1
                        ]
                ]
            ]
        ]
let r
    apply variable func [ value Int32 16 ]

The most important thing here is that functions are first-class citizens. The variables plus and ifzero hold native methods (one of which has some lazy parameters), while the variable func holds a lambda expression.

Wednesday, March 4, 2015

The Meroitic Romance

I have recently been reading Aethiopica, a novel written in Greek by a Phoenician named Heliodorus, from the city of Emesa. (I am reading Wright's 19th century revision of Thomas Underdowne's 1587 translation.)

The novel was probably written around 200 - 300 AD, but it is set in Achaemenid Egypt, when Egypt was a satrapy of the Persian empire (between 525 - 332 BC).

One of the things I love about this text is that the realities of language and ethnicity are everywhere. Greeks in Egypt must find another Greek (often a captured Greek slave) to act as translator. The wife of the Persian governor of Memphis, though she understands Greek, cannot speak it, so she too needs a translator to communicate with the Greeks. Phoenicians on trading expeditions are found in Delphi, and recognized at other islands in the Mediterranean by their huge and well-built ships.

One thread of the complex plot involves a mysterious letter written in an unknown language. This is in the possession of the main female character of the story, Chariclea, the adopted daughter of a Greek priest of Apollo. Among the belongings he received when he adopted her is a letter written on cloth that is neither in Greek nor Egyptian. This mysterious letter is finally read by a visiting Egyptian priest, who says:
"It was in Ethiopian letters, not the common sort, but such as their princes use, like to those that the Egyptians call hieratic."
When Heliodorus tells us that they are "Ethiopian letters", however, he is not referring to the old Ge'ez abjad. Indeed, the Ge'ez letters do not look much like hieratic:

Ge'ez abjad, from Wikipedia


A piece of one of the Chester-Beatty papyri in hieratic

In fact, when Heliodorus says Ethiopia, he means the kingdom of Kush, and the writing system he is referring to must be the cursive form of Meroitic:

A Meroitic ostracon, from the Unesco website.

Meroitic is not yet fully deciphered, but the script is known, and it was in use for about 800 years from 300 BC - 600 AD. Its inclusion in the Aethiopica is probably a little anachronistic, but it is a sin that can easily be forgiven in such a well-written story from so long ago.