
|
SignWriting Image Server
Open Font and Rendering Software
|
Beta 4b

Copyright 2007,2008 Stephen E Slevinski Jr. Some Rights Reserved.
Except where otherwise noted, this work is licensed under
Creative Commons Attribution ShareAlike 3.0

Dedicated to my wife Sonia, to Valerie Sutton and to the entire
SignWriting List:
their support and encouragement has always been there.
Dedicated to all lovers of the written word,
especially Mortimer J. Adler who taught me how to read a book.
There have been too many other teachers and friends to name them all.
Contents
Preface
Acknowledgments
1. SignWriting
- History
- SignWriter DOS
- SignPuddle
- Open Standards
2. Binary SignWriting
- ISWA 2008
- Character Encoding Model
- Code Pages
3. Glyph
- Character Codes
- Attributes
4. Glyphogram
5. Image
- Build String
- Attributes
- Images
6. SymbolPalette
7. SignMaker
- SignBox
- Special Commands
- SignSpelling Sequence
8. Project Files
- Data Files
- Font Files
- License Files
Release Candidate 1
Preface
The primary purpose of the SignWriting Image Server is to display SignWriting images
fast with a simple installation. SWIS requires a web server with PHP and the GD
graphics library.
The secondary purpose of the SignWriting Image Server is to provide tools
to create SignWriting images. The SymbolPalette
and SignMaker are currently available as part of SWIS.
SignText is in development and will be available in Release Candidate 1.
This project is about open standards. We are using the GPL v3, the Open Font License,
and Creative Commons (by-sa).
Acknowledgments
I undertook this project due to interest around the world, so that others can
using the open SignWriting standards.
These standards have evolved from the inspiration,
dedication and hard work of Valerie Sutton, the Deaf Action Committee, and
all of the various generations of sign writers, from 1974 till today.
1. SignWriting
SignWriting is a writing system for the world's sign languages. Learning the
Art of SignWriting is beyond the scope of this guide. Please try
SignWriting Home,
SignWriting List, and
SignPuddle Online
History
SignWriting was created by Valerie Sutton in 1974.
Initially SignWriting was used to transcribe sign language.
SignWriting evolved when the signers themselves started to write. Many changes
were made to the script: the most notable are the switch from receptive to
expressive, from horizontal to vertical, and the inclusion of lanes to account
for body weight shift.
SignWriter DOS
From 1986 thru 1996, Richard Gleaves worked on SignWriter 1.0 thru 4.3. In 2000,
Richard returned to complete SignWriter 4.4.
SignWriter was a breakthrough application for SignWriting because it not only
made it possible to use SignWriting on computers, but it created a method for
touch typing with sign language.
SignPuddle
Starting in 2004, I developed SignPuddle to bring SignWriting to the web.
SignPuddle offered a new drag & drop method for SignWriting that quickly became
popular. SignPuddle built on many of the ideas of SignWriter, utilizing the
special commands for variations, fills, and rotations.
The International MovementWriting Alphabet (IMWA) was originally
designed as a huge repository for the symbols of SignWriting and DanceWriting.
SignPuddle offered unrestricted access to the entire IMWA.
This made it possible to use a larger symbol set than was previously available.
Open Standards
SignWriting has been used in more than 40 countries around the world.
When the standards were still evolving, tighter control was needed to guide
the development. Now that the standards are stabilizing and can address most
any issue for any sign language, we realize that we need to adopt open standards
so that SignWriting can spread even farther.
In 2007, Valerie undertook a huge effort to revamp and restructure the IMWA
so that it focused exclusively on SignWriting.
The resulting International SignWriting Alphabet (ISWA) is the most
extensive and well organized symbol set in the history of SignWriting.
The ISWA 2008 is available under the Open Font License. This SignWriting
Image Server project is available under the GPL v3.
2. Binary SignWriting
Binary SignWriting is a character encoding model that uses a simple relationship
between symbol id and character code to produce a double octet coded character set.
ISWA 2008
The ISWA 2008 is the abstract character set for Binary SignWriting.
Each symbol of the ISWA 2008 has a unique symbol id, used as the character name.
The symbol id is a 6 part number system.
Example symbol id "01-01-001-01-01-01".
This is a combination of
"category" - "group" - "base" - "variation" - "fill" - "rotation".
The meaning behind the symbol id is used to create the SymbolGroup data and the
BaseSymbol data. This data enables 2 way encoding between
symbol id and character code, validity checking of character code, and usability
data for SignMaker and SignText.
The ISWA 2008 defines 30 SymbolGroups,
639 BaseSymbols, and 35023 symbols.
Character Encoding Model
The principles behind Binary SignWriting are simple. The coded character set
is 7-bit ASCII compatible. The next 128
codes are reserved for special control codes which are not yet defined.
Therefore, the first BaseSymbol is assigned a character code of 256. Since each
BaseSymbol can have a maximum of 96 symbols (6 fills and 16 rotations), the next
BaseSymbol is assigned a character code of 256 + 96.
This encoding results in a starting code of 256 and a maximum code of 61599.
A range of 61343 values for 35023 valid codes.
Code Pages
The coded character set is x-iswa-2008.
You can view the code pages.
I plan on writing an Internet Draft for this set so that it becomes an official
character set of the Internet.
3. Glyphs
The basic element of SignWriting is the symbol.
Each symbol has a defined image called a glyph.
The glyphs are accessed by character code.
The glyphs default to a black line and a white fill.
Character Codes
The glyphs can be accessed using the glyph.php script.
Attributes
Glyphs always have a transparent background. It is possible to change the size of the glyph along with the
color of the line or the fill.
| Basic Example | <img src="glyph.php?code=256"> |  |
| Colorize | <img src="glyph.php?code=256&colorize=1"> |  |
| Line Color | <img src="glyph.php?code=256&line=00ff00"> |  |
| Fill Color | <img src="glyph.php?code=256&fill=ff0000"> |  |
| Size | <img src="glyph.php?code=256&size=0.7"> |  |
| Multiple | <img src="glyph.php?code=256&size=0.7&line=00ff00&fill=ff0000"> |  |
4. Glyphogram
The SignWriting glyphs are used spatially, not sequentially. A simple X,Y coordinate system is used to
arrange the glyphs in space. This results in a single image of spatially arranged glyphs called a glyphogram.
Build String
The build string is a series of repeating character codes and X,Y coordinates.
Consider the following build string 13034,112,118,13025,105,96,24256,129,99,46720,121,76
| Character Code | Glyph | X,Y |
| 13034 |  | 112,118 |
| 13025 |  | 105,96 |
| 24256 |  | 129,99 |
| 46720 |  | 121,76 |
Attributes
| Basic Example | <img src="glyphogram.php?build=13034,112,118,..."> |  |
| Colorize | <img src="glyphogram.php?build=13034,112,118,...&colorize=1"> |  |
| Size | <img src="glyphogram.php?build=13034,112,118,...&size=0.7"> |  |
| Line Color | <img src="glyphogram.php?build=13034,112,118,...&line=ff0000"> |  |
| Fill Color | <img src="glyphogram.php?build=13034,112,118,...&fill=ff0000"> |  |
| Multiple | <img src="glyphogram.php?build=13034,112,118,...&size=0.7&colorize=1"> |  |
5. Image
The image.php script is used for more advanced positioning and sizing.
Unlike the glyph and glyphogram, an image has a defined width and height.
It can be used for entire columns of sign text or for combining SignWriting with
other images.
Build String
The build string for an image is a series of augemted glyphogram build string seperated by semi colons ";".
The augmented glyphogram build string has the format
"size,line color,x offset,y offset,glyphogram build string".
Consider the following build string
.7,ff0000,10,10,256,25,25,256,33,33;1.3,00ff00,27,27,364,25,25,364,33,33
| Size | Line Color | X,Y Offset |
Glyphogram Build String | Glyphogram |
| .7 | ff0000 | 10,10 | 256,25,25,256,33,33 |  |
| 1.3 | 00ff00 | 27,27 | 364,25,25,364,33,33 |  |
Attributes
| Basic Example | <img src="image.php?w=90&h=80&build=.7,ff0000,10,10,256,25,25..."> |  |
| Fill | <img src="image.php?w=90&h=80&build=.7,ff0000,10,10,256,25,25...&fill=0000ff"> |  |
| Back | <img src="image.php?w=90&h=80&build=.7,ff0000,10,10,256,25,25...&back=0000ff"> |  |
Images
| Single Sign |  |
| Multiple Signs |  |
6. SymbolPalette
Organization
The SymbolPalette is organized using a 6 by 16 grid.
The top layer of the SymbolPalette displays the SymbolGroups.
The middle layer displays the BaseSymbols of the selected SymbolGroup.
The bottom layer displays the valid symbols of the selected BaseSymbol.
Function
The SymbolPalette has 2 functions: clicking and dragging.
Clicking on a SymbolGroup will refresh the SymbolPalette
to display the BaseSymbols for that SymbolGroup.
Likewise, clicking on a BaseSymbol will display the symbols for the BaseSymbol.
Any symbol can be dragged from the SymbolPalette.
The symbols can be dropped in a SignBox or a SymbolList, described below
in the SignMaker section.
7. SignMaker
SignMaker contains 4 main parts: the SymbolPalette, the SignBox,
the special commands, and the SignSpelling Sequence. The SymbolPalette is described above.
SignBox
The SignBox is the large empty square.
Symbols from the SymbolPalette can be dropped in the SignBox.
Selected symbols appear in blue.
It is possible to select multiple symbols by clicking and dragging accross
the SignBox, which will select all symbols between the start and end of the drag.
Holding the shift key while clicking will also allow multiple selection of symbols.
Special Commands
The special commands are below the SignBox.
- SymbolGroup List - Returns the SymbolPalette to the top layer of SymbolGroups.
- Previous - Returns the SymbolPalette to the previous layer of BaseSymbols or SymbolGroups.
- Save - Forwards the build and sequence strings to save page. This is controlled by a
javascript variable "accept" defined in "signmaker.php" on line 60.
- Copy Symbol - Copies the selected symbols
- Delete Symbol - Deletes the selected symbols
- Clear All - Deleted all symbols in the SignBox
- Variation - Switches symbols between the defined variations. Now all symbols have variations.
See variation column in the code pages.
- Mirror - Flips most symbols on the vertical axis.
See function "fnSBMirror" in "signmaker.js" defined on line 508.
- Fill Symbol - Cycles through the valid fills for the symbols.
See the valid fills column in the code pages.
- Place Over - The selected symbols will be placed on top of the other symbols.
This is useful for symbols that have fills, such as hand shapes and arrows.
- Select Previous & Next - Cycles the selected symbol from the first symbol added to the last, or visa versa.
- Rotate 1 & 2 - Rotates the symbols clockwise or counter clockwise according to the valid
rotations. See valid rotations column in the code pages.
- Arrows and grid - The arrows will move the selected symbols 1 pixel at a time.
The grid button in the middle will display the SignBox grid to help with symbol placement.
SignSpelling Sequence
The SignSpelling Sequence, hereafter called the sequence, is the top right square.
The sequence is a sequential list of symbols used for sorting.
Symbols can be dropped from the SymbolPalette or the SignBox.
The symbols in the sequence can be rearranged by dragging them around.
The symbols can be removed from the sequence by clicking.
Blank symbol boxes in the sequence are ignored.
8. Project Files
Data Files
There are 2 data files: iswa/iswa.sgd for SymbolGroups and iswa/iswa.bsd for BaseSymbols.
The basic use of these files can be found in spclasses.php.
SymbolGroup Data
- code - character code
- view - character code to use when viewing the SymbolGroup
- sid_c - symbol id category number
- sid_g - symbol id group number
- num - SymbolGroup number
- bases - number of BaseSymbols in the SymbolGroup
- color - standard color
- flags - purpose of SymbolGroup (writing, centering, punctuation, or sorting), any of [wcps]
- name - SymbolGroup name
BaseSymbol Data
- code - character code
- view - character code to use when viewing the BaseSymbol
- sid_b - symbol id base number
- sid_v - symbol id variation number
- num - BaseSymbol number
- vars - binary value for variations
- fills - binary value for valid fills (see ISWA.php validcode function)
- rots - binary value for valid rotations (see ISWA.php validcode function)
- name - BaseSymbol name
Font Files
Valerie Sutton has created over 35k individual PNG images for the ISWA. Each symbol
had a png file named after the symbol id. These images have been sorted by BaseSymbol character code,
reformatted for standard color & reduced file size,
and renamed to the character code. The files are in the iswa subdirectory.
License Files
In the root directory, the file COPYING.txt is the GPL v3 file.
In the iswa subdirectory, there are 2 files regarding the Open Font License: OFL.txt and
OFL-FAQ.txt.
Release Candidate 1
Release Candidate 1 is expected in October 2008.
END