Selection from the Conference on AUTOMATIC DATA PROCESSING AND THE VARIOUS BRAILLE CODES

This conference was held at the Massachusetts Institute of Technology on March 17 - 18, 1961

This selection has Dr. Nemeth describe his computer program to translate braille:

Mr. Nemeth:

The program which I have for the 650 also starts out with a keypunch card input on the same keypunch machine and with essentially the same kind of instructions to the keypunch operator, who needs to know no braille. The keypunch operator however needs to know certain special signs for punctuation for which there is no provision on the keypunch machine, and certain combinations of strokes will accomplish this. Also I have format symbols- end of paragraph, skip a line, proceed to next page, center the following, center the proceeding, switch from Roman to Arabic numerals, and turn print page.

In cases where print pages are being shown, all numbering is automatic in the program, and if the opperator will just put this number at that point, the next time a print page is indicated, it will be the next one. You can follow the symbol "turn print page" by a digit. For example, after finishing a chapter, if you turn the page and on the left side of the next page there is a picture, and the new chapter begins on the right" side of the page, you don"t want the next page to be where the picture is, you want it to punch the symbol for 'turn print page" but also the print page number. Without any number it will automatically be the next consecutive one; with the number it will be whatever number the keypunch operator indicates.

I also have encountered the problem of whether or not a center title can be accommodated and the text continue on the same page. My code keeps track of lines, and if the center title has a number in it (either Roman or Arabic) which means it's a chapter heading, and if the line count is .less than 17, then it will be embossed. If the line count is more than 17 it will just automatically put an end-of-page symbol and go to the next page.

In the punched cards 80 columns are punched. The first ten columns are used for identification purposes. They contain the card number that you are currently embossing and the number of the next card coming, so that if the cards are out of order the embossing system will stop.

Next I'll describe a little more about what goes on internally in the program. Instead of embossing a whole word at a time, my program stores a small dictionary of about six or seven hundred words. When I say words I don't mean whole words, I mean letter combinations most of them are prefixes and stems. The program scans to find out whether there's a possible prefix. Let me give an example. Suppose I have the word 'proficient'. It will upon scanning find out that the combination 'pro' begins a word, and then the question is whether you should use the 'of sign or not. It finds out later on that 'fie* is a stem and consequently It will emboss 'pro' by itself and continue on avoiding the 'of sign. However, if the word happens to be something like •profligate' it will find 'pro', it will then look and find that 'fligate' or any portion thereof is not a stem. Consequently the 'of contraction will be included. Now for example with a few prefixes like 'e' and 're' and 'de' and a few stems like 'num 8 and 'noun', you can avoid contractions of 'en' in words like enounce and denounce and renounce and renumerate and denumerate and enumerate and things of that kind. It will also pick endings off words — 'a' and 'ing', and will emboss what's left after the endings are taken off and then add the endings back on.

It is essentially a prefix-stem analysis, and also there are certain whole words which are stored. For example, among the words which are stored are the word 'house' and the word 'store' and the word 'room' and if it finds that a word can be divided into two consecutive words, such as 'houseroom' and 'storeroom', it will not incorporate the 'er' contraction. And I've found that I have enough storage on the 650 to do this. The letter sign is implemented automatically by programming rules. The unit of scansion I use is the same as Mrs. Schack's -- a word.

But I also stop at a hyphen under certain circumstances. The advent of a hyphen stops the scansion and the hyphen may be enough information for me to make a decision as to whether I can now encipher. However, if I find the hyphen, a letter and another hyphen, then I know that the first hyphen is not the end of a word and so continue to scan. For example, if you want to spell out a word like cheese, then you have c-h-e- etc. and you don't want any one of the hyphens to be regarded as the end of a unit of context and so you vjust let it keep scanning until it encounters the last letter followed by a space and the last space will end the unit of context. This will cause the whole word to be enciphered on one line instead of being divided between lines. By the way on my program when I can divide a word between prefix and stem, if I have a genuine prefix and a genuine stem and no room for both on the same line, the prefix will be enciphered, put on the line with a hyphen following it, and the stem on the next line. So hyphenization is taken care of when a real honest-togoodness prefix followed by a stem is encountered and the hyphenization is correct in this case.

I also have these control codes -- a cell margin, a line margin, a page margin and a volume margin. The cell margin just specifies how many cells, regardless of format. If you want a running head, when the 25th line has been embossed, the running head will automatically be put on the top of the next page with its proper page number and the embossing will continue on line two of the next page. However, if you want to do magazine work and you don't have a running head, you indicate this in a single format card and when the last line is arrived at, which is probably line 32 for magazines, it will automatically subtract the number of digits required for the page number and will allow for that many cells to be embossed, will put the page number on the bottom right-hand corner of the page and then will put the end-of-page symbol and go on to the next page.