Hi Alan,

I updated the ISWA 2010 conversion for the BSW 3 strings you are using.
Use Online:

The conversion package requires a PHP configured web server.

I was able to convert and verify the test string you sent.

On 5/3/11 3:57 PM, Alan Post wrote:
> 0fb15a38d39a47a4c71c538c3934854b920638c3924884d30fd1c538c39315a38d39a20638c392

To convert the BSW 3 string to the ASCII Markup of Formal SignWriting, 
use the following page:

The conversion page will output the ASCII markup.  You can verify the 
markup with the import page of SignPuddle 1.6 beta.

If the import process was successful, press the Data Format button for 
the preliminary Unicode and visualization.

The rest of this email steps through the conversion.

Here's the technical details of how the conversion works for your 
string, using groups of 3 digits.

Your string contains 2 parts.  A spatial arrangement:
0fb 15a38d39a 47a4c7 1c538c393 4854b9 20638c392 4884d3

Second part is a temporal order.
0fd 1c538c393 15a38d39a 20638c392

In Formal SignWriting, the temporal order comes first.  Instead of using 
a character code, the temporal prefix uses the ASCII letter "A".  A 
temporal order is just a list of ordered symbols.

In Formal SignWriting, symbols are refered to with symbol keys in the 
form of "S" followed by 3 digits for the base character and 2 digits for 
the position.  The first digit of the position represents the fill and 
the second digit of the position represents the rotation.

Your string identifies 3 symbols.  Each symbol is identified with 9 digits.

The string 1c538c393 becomes key S1c501.
The string 15a38d39a becomes key S15a18.
The string 20638c392 becomes key 20600.

Considering the symbol key "S15a18", the base in hexadecimal is "15a".

The position is "18" in hex.  The position, fill, and rotation all start 
from 1, so remember to add 1 to the hexadecimal to decimal conversion.

The position is 25, the fill is 2 and the rotation is 9.

If we look again at the temporal order in the new ASCII markup, we have:
A S1c501 S15a18 S20600

Preliminary Unicode uses 3 characters to identify a symbol.
A 𝣅𝪚𝪡 𝡚𝪛𝪨 𝤆𝪚𝪠

If a font was working, these character sequences would be replaced with 
the appropriate symbol image.

This is the visualization for the temporal order to your sign.  We call 
it the SignSpelling Sequence.  It is used for sorting.

Just as we replace the sequence character with "A", we also replace the 
sign box lane markers with ASCII characters "L, M, R" for left lane, 
middle lane, and right lane.

If we return to the spatial arrangement of your string with updated lane 
marker and symbol keys:
M S15a18 47a4c7 S1c501 4854b9 S20600 4884d3

One of the last parts to convert are the coordinates.  Your string has 
the following coordinates:

These coordinates use 3 hexadecimal digits per number.  In your string, 
each number starts with a 4.  The first coordinate in your string is ( 
"47a","4c7") which is the top-left of the symbol.  When recentered for 
zero, the coordinate resolves to (-18,-5).

Formal SignWriting does not use coordinate characters, but a string 
representation.  Negative numbers use the letter "n" as a prefix.  
Numbers are combined with the letter "x". The coordinates (-18,-5) would 
use the string "n18xn5".

If we put it all together, the Formal SignWriting string for your sign is:

With Preliminary Unicode, the string becomes:

Once a font is installed, the data can be seen as:
A M18x18 n18xn5 n7xn19 n4x7

It's still complicated, but much easier to explain.  The temporal 
sequence starts the string.  This optional prefix sorts the signs.

The sign is in the middle lane.  The first coordinate of "18x18" is the 
new maximum coordinate for the sign - a preprocessed value based on 
(0,0) as the center of the sign.  This new coordinate makes layout easy 
and fast.  Using the "padding-left" attribute of CSS, sign layout is as 
simple as addition and subtraction.