Douglas Crockford




2019 Appearances





How JavaScript Works



Blissym Code for Information Interchange

Blissymbolics began as a Chinese-like graphical language that could be written with specialized typewriters. Communicating computers were still far in the future. But today, they are common, so I reformulated Charles Bliss's line letters for computerization. Most of the line letters are non-spacing, and are combined with spacing characters that can display the blissgrid.


Blissymbols are composed on a blissgrid.

sky line                 ultra
middle sky line bliss
middle line     middle
middle earth line         earth
earth line             infra

The five lines were inspired by the lines of the musical staff. The sky line and earth line bound the space in which blissymbols are formed. The earth line is the text base line. The sky line is placed around the same height as upper case letters. The vertical distance between the earth line and sky line is one bliss unit. The space is divided in half by the middle line, and into quarters by the middle sky line and the middle earth line.

The lines form the vertical boundaries of three half unit high zones, the sky zone, middle zone, and earth zone. There is also an ultra zone which is used to hold the grammatical indicators. The ultra zone and infra zone also are the homes of two SEMI elements.

The elements (or line letters) are positioned with a line or a zone. Blissymbols are created by combining elements on the grid as described below.

The space is further divided horizontally at quarter unit intervals.


The Characters

There are three classes of characters:

A blissymbol is made up of many elements and base characters, much as words are made up of letters. Unlike conventional characters, the elements are non-spacing. This is to allow the combining of elements to form complex blissymbols. Spacing is provided by the base characters. This scheme allows for huge flexibility in permitting the design and use of new blissymbols with a very small character set.

All of the other characters provided by ASCII, Unicode, or any other character set may also be used.

Non-breaking spacing characters

The base characters provide horizontal increments of one quarter unit to five quarter unit.

The Non-spacing elements

There are 11 types of elements.

Type Quantity Position Description
WATER 3 line one unit wide wavy line
ARC 8 zone quarter arcs of a one unit circle
SEMI 14 zone semicircles of a half unit circle
DIAG 6 zone diagonal line connecting two corners of a half unit square
STEEP 6 zone diagonal line connecting two corners of a rectangle that is a half unit tall and a quarter unit wide
VERT 3 zone vertical lines, half unit tall
LINE 5 line horizontal lines, half unit wide
POINTER 20 line pointer or arrow head
CORNER 4   corner pointers
DOT 5 line dots

Grammatical indicators

The six characters in this class are spacing like conventional characters. They are used as prefixes to identify the parts-of-speech of symbols. Bliss originally called for these indications to be centered above symbols, like accent marks. This is difficult to do with naïve software, so the prefix form is now used for greater utility.


These examples show the construction of blissymbols. First a space (base) character is placed. Then one or more elements are placed. These can then be followed by additional base characters and elements. The final base element must include an addition quarter unit of space which is used for an eighth unit bumper on both sides of the symbol.


There are many alternate constructions possible of most blissymbols. All are equally readable by humans, but may present problems to computer systems that may want to do some processing on or with the blissymbols. There is a simple algorithm for normalizing blissymbols. The preferred construction is always normalized.

Character codes

Currently, the BLISSCII characters are assigned the codes U+EBA1 thru U+EBFD in Unicode's Private Use Area. If use of BLISSCII becomes widespread enough, a new set of codes will be assigned, possibly U+2BA1 thru U+2BFD.

There is also an 8-bit form of BLISSCII which uses the codes 0xA1 thru 0xFD. This allows it to coexist with the ASCII code. The 8-bit form of BLISSCII is intended to accommodate older byte-oriented systems.