Unicode Diacritics for SignWriting

SignWriting is a bit more daunting to store on a computer than, say, English, because in English the script is linear, just one character after another, whereas SignWriting is two-dimensional, so that symbols might need to be placed anywhere in the sign character. You could even think of it as three-dimensional, since sometimes symbols overlap, and which is on top of which has to be shown in the script.

Unicode is stored in linear, one-dimensional form in the computer, but this doesn't mean that a two or three dimensional script can't be stored in unicode: Chinese script is two-dimensional, for example, and the problems to of reducing it to one-dimensional form for storing as unicode have been solved. The problems of storing SignWriting as unicode are different, but I suspect we could learn a lot from the Chinese methods.

Many "Latin" or "Western" scripts are also partly two-dimensional in the sense that they have diacritics and we can use these techniques to a great extent in storing SignWriting as unicode.

Here's a very quick introduction to how diacritics are used in unicode, which I hope will be a good starting point for thinking about how SignWriting can be stored in unicode.

Unicode has various categories of character, including "letters", "diacritics", "numbers", "punctuation" and "separators".

A letter might be something like E, s, Σ or ℵ, and can stand by itself. A diacritic, on the other hand, is a mark which decorates letters and can't stand by itself. So in unicode we simply put a diacritic after a letter and it gets composed into the letter for printing and display.

"n˜" stored in a file in unicode gets displayed as "ñ", because unicode applications know that a diacritic must be applied to the letter before it. More than one diacritic can be applied to a single letter, and moreover diacritics don't need to go above a letter: they might go below it, or attach to the top left or right, or even go inside it. There are many such options in unicode.

This immediately suggests some ideas for using diacritics to construct signwriting symmbols. Suppose we had head circles defined as letters and facial features defined as diacritics. So just as in unicode we can have:

which displays as:

then we could likewise store the string of characters:

and have it displayed as:

in unicode.

Certainly for facial features this would be a very good way to do things, although it's not so easy to see just how far we should take it. Suppose we treat fingers as diacritics, for example. And suppose we had a blank "spacer" control character to stand in place of fingers that are absent from the handshape we want to type. Then we could enter:

in unicode and get this displayed:

although since handshapes have many rotations and other types of variation, this would perhaps be a lot harder to implement than the relatively easy facial expression diacritics.