blazon2jpeg
Some months ago, I spent a bit of my spare time reading up a bit on the language of blazonry and the fundamental rules of heraldry. I find it linguistically fascinating how English blazonry is still in a language closer to Norman French than modern English.
For instance, the central part of the arms of the Clan Buchanan is described as “or, a lion rampant sable, armed and langued gules” rather than “on a yellow background, a black lion with red tongue and claws standing on its hind legs”:
or, | a lion | rampant | sable, | armed | and | langued | gules |
yellow, | a lion | standing on its hind legs | black, | with claws | and | with tongue | red |
Another example is the coat of arms of Denmark: “Or, three lions passant in pale azure crowned and armed or langued gules, nine hearts gules”:
or, | three | lions | passant | in pale | azure | crowned | and | armed | or | langued | gules, | nine | hearts | gules |
yellow, | three | lions | walking | arranged vertically | blue | with crown | and | with claws | yellow | with tongue | red, | nine | hearts | red |
That is, “on a yellow background, three blue walking lions with yellow crowns and claws and red tongues, arranged vertically, and nine red hearts”.
The really interesting thing is that it is the blazon, not the drawing of it, that defines the coat of arms. This means that it should theoretically be possible to write a program that reads a blazon and generates the coat of arms. The results wouldn’t always be like the usual representation, or indeed beautiful, but they should always be heraldically valid. The main problem would be how to place elements in suitable locations. For instance, it’s rather easy to position the Danish blue lions, but finding the space for the hearts is much harder.