Hi Jonathan, BSWML is Binary SignWriting Markup Language. It is equivalent to BSW but 3 times larger. The DTD is available online. http://www.signpuddle.net/bswml.dtd You can take a look at the other data equivalent forms on the BSW HTML Reference. http://signbank.org/bsw/#m SPML will be a text file and it will include BSW as text using hex values "0-9" and "a-f" with spaces to separate signs and punctuations. > I was all happy to upgrade to ISWA 2010 until I remembered last time I > had to upgrade from IMWA to ISWA 2008. Yes, the transition does take a bit of work. After the ISWA 2008, I was hoping we wouldn't need to update the ISWA ever again. But a few things were bothering me, and Val had a couple of issues. After some discussion, we both agreed that now was the time for a focused refactor before wide spread adoption. http://www.signpuddle.net/mediawiki/index.php/ISWA_2010#Changes I already have the conversion wired into SignPuddle. SignPuddle can create BSW 2010 from the ISWA 2008 data. The conversion is 100% accurate, unlike the IMWA conversion which was only 99.9% accurate and much more complicated SignPuddle will change over to the ISWA 2010 with SignPuddle 2 sometime this summer before the next school year. The data for SignPuddle 2 will be available very soon. > I just understood why you used the tokens. I wish I had thought of > that!!! Good work! I created BSW before I had a way to parse it. I even considered using YEX and YACC. But after much thought and research, I decided on tokens with regular expressions. I can still remember the morning when I wrote out the first regular expression to validate an entire sign text. The heavens opened up, the angels were singing, and a beam of light flooded my white board. Regarding BSW, you can see the JavaScript library online. It has about 400 lines of code and it's relatively easy to understand. http://www.signbank.org/swis/bsw.js The tokensplit function is the real workhorse. If you can understand how it's used, you can understand the library. There are 2 terms I didn't define properly: segment and unit. A unit is either a sign or a punctuation. A segment is a list of signs ending in a punctuation. If you can reproduce the BSW library in your programming language, you're ready to use BSW. Thanks for being on the bleeding edge, -Steve