PCjs Machines

Home of the original IBM PC emulator for browsers.


PC-SIG Diskette Library (Disk #477)

[PCjs Machine "ibm5170"]

Waiting for machine "ibm5170" to load....

Information about “NAMEGRAM”

What do Lewis Carroll, Vladimir Nabokov, Jim Morrison, and Roman
Polanski have in common?  They all played with anagrams.  Lewis Carroll
rearranged politician William Ewart Gladstone's name to spell "wild
agitator! means well".  Nabokov named a character in Lolita "Vivian
Drakbloom", an anagram of his own name.  Jim Morrison of "The Doors" was
"Mr. Mojo Risen'".  And in the movie Rosemary's Baby, an anagram is an
important clue.  Picture these creative artists hunched over a desk
with a big dictionary arranging Scrabble titles to form words.  If only
they had NAMEGRAM!  With NAMEGRAM, creating anagrams is a breeze.

NAMEGRAM takes a name or phrase, of up to 40 characters, and, using each
letter only once, creates anagrams.  The output, 1 to 16 letters each,
are real English words.  A curious, but fascinating exercise.


 ╔══════════════════════════════╡  BREAK DOWN  ╞══════════════════════════════╗
 ║                  ┌───────────┴──────────────┴───────────┐                  ║
 ║                  │  copyright 1985 by Neil J. Rubenking │                  ║
 ║                  └──────────────────────────────────────┘                  ║
 ║                                                                            ║
 ║   BreakDown -- a text analysis program by Neil J. Rubenking, inspired by   ║
 ║   the article on the "TRAVESTY" program in the November 1984 BYTE, by      ║
 ║   Kenner and O'Rourke, which was itself inspired by Brian Hayes' article   ║
 ║   in the November 1983 Scientific American.                                ║
 ║        This program, written in TURBO Pascal, uses BORLAND's  TURBO        ║
 ║   TOOLBOX to manage its data.  Note that the DATA files it produces will   ║
 ║   be B I G.  In the unlikely case of NO repetition of text patterns, the   ║
 ║   .DAT file will be S*C bytes, where S is the # of bytes in the source,    ║
 ║   and C is the number of characters being tracked (currently 34).  You     ║
 ║   will have the chance to distribute the files to various disks.           ║
 ║        You can read several texts into the same BreakDown, or Merge two    ║
 ║   BreakDowns.  In this way, you can build up a "style table" for one       ║
 ║   author, or create bizarre hybrids.                                       ║
 ║                         ┌────────────────────────┐                         ║
 ╚═════════════════════════╡  PRESS A KEY TO BEGIN  ╞═════════════════════════╝


                                     BREAK DOWN
                       A text analysis and generation program
                               written in TURBO Pascal
                        copyright 1985 by Neil J.  Rubenking

                                requires DOS 2.0, 96K

          I.AN ANALOGY
               There  is  a  fairly  commonly  believed  "fact" that if you
          set  millions  of  monkeys  typing  at  random  on   millions  of
          typewriters for  millions of  years, they  would eventually crank
          out all the world's  great literature.   Deep  down inside, BREAK
          DOWN is  just one  of those monkeys, but this monkey is educated.
          BREAK DOWN "reads" a text  and  creates  a  frequency  table that
          gives it  some method  in its madness.  The output can be surpri-
          singly similar to the input.  

          II.  WHAT DOES IT DO?
               To analyze a text, BREAK  DOWN  looks  at  it  in  chunks of
          a particular  size (one less than the "order") and keeps a record
          of what characters occur  immediately  after  that  pattern.   If
          the  chunk  is  new  to  the  frequency table, it is added to the
          table.  Its frequency  array is  initially all  zeros, except for
          the  current  next  character.    If  the chunk already exists in
          the table, its frequency array  is  incremented  by  one  for the
          current next  character.  Then the "chunk" is shifted one charac-
          ter to the right and the process goes on -- that is,  the chunk's
          first  character  is  dropped  and  the  current  next  character
          is tacked onto the end.

               Checking to see if  the chunk  is present  would be  quite a
          task if  the frequency  table were stored sequentially.  Fortuna-
          tely, BORLAND International sells a product  called TURBO TOOLBOX
          that implements  fast indexed  storage, using  the B-Tree system.
          (For a discussion of B-Tress and TURBO TOOLBOX,  see the February
          1985 PC  Tech Journal).   The  chunks of  text are  stored in the
          B-Tree index file -- they are the KEYS.   The  data file contains
          only the  frequency arrays.   Ordinarily,  the KEYS would also be
          stored in the data file,  but  this  redundancy  is  not strictly
          necessary.    Since  the  data  file  can conceivably contain one
          record for every BYTE in the source, we  want to  keep the record
          size to  a minimum.  (This "worst case" would occur if NO pattern
          in the text occurred more than once.)


               At present, BREAK DOWN  tracks  34  characters.    These are
          the  26  lower-case  alphabetic  characters,  the  space, period,
          comma, dash, question mark, number symbol  and single  quote, and
          ASCII character  20, the  paragraph symbol.  If a line is shorter
          than the  constant  "LineWidth"  (currently  set  to  55),  it is
          considered to have ended "early" with a hard Carriage Return, and
          is marked  with the  paragraph symbol  at the  end.   In the pre-
          processing phase (procedure "CleanUp"), all letters are converted
          to lower-case, all numbers are  reduced  to  a  single  # symbol,
          double quotes become single quotes, and all unused punctuation is
          removed.  It would, of course, be possible to track  more charac-
          ters, but each character adds a byte to every record.

          V.   HOW DOES IT WORK?
               To  generate  a  new  text,  BREAK  DOWN selects at random a
          KEY that begins with  a space  (i.e., one  that doesn't  start in
          the middle  of a word.)  It then looks up the frequency array for
          that KEY and  selects  the  next  character  at  random  from the
          characters with  non-zero frequency, weighted by the frequencies.
          This character is added to the  current output  line, and  to the
          current KEY  chunk.   If the paragraph symbol is encountered, the
          line is automatically ended.  Also, the current line ends  at the
          first space  encountered after its length surpasses the LineWidth
          constant.  The first alphabetic character after a period,question
          mark, or line end is capitalized.

          VI.  HOW SHOULD I SET IT UP?
               BREAK DOWN  is a prime candidate for RAMDisk operation.  The
          B-Tree file access  limits  the  number  of  disk  accesses quite
          a  bit,  but  there  are  still several accesses for each BYTE in
          the source file.  The data  file of  a text  under 10K  in length
          will  definitely  fit  on  one  floppy,  but  an  11K  file could
          conceivably run over that length.   You are  expected to  be sure
          you have  enough space.  You may distribute your files to various
          disk drives -- a likely  arrangement  is  .DAT  file  on  drive B
          and source, .INX file, and BREAK DOWN program on drive A.

          VII. TIPS FOR USE
               The  higher  the  order,  the  more  intelligible the output
          will be.   However,  a high  order and  a short  text will mostly
          just  regenerate  the  original.    Experiment with various texts
          and various orders.  You can  use the  [L]ist option  to see just
          what sort  of records  are being  generated.  BREAK DOWN has been
          tried on a 100K text file, with the Order set  to the  maximum of
          8.   It took over 6 hours and generated a 1.8 megabyte data file,
          but it worked.  


               BREAK DOWN will prompt you for the Order each time  you make
          a selection  from the menu.  After you have entered an Order, you
          can just hit <return> for the previous value.  The MAIN file name
          works the  same way -- after the first time you enter it, hitting
          <return> will  recall the  same name.   The default  for the .DAT
          and .INX  drives, and the output file, if any, is the same as the
          source file.  Thus, if you have  [A]nalyzed a  text with  all its
          files on one drive, you can fill in the blanks for [G]enerating a
          travesty by repeatedly hitting <return>.

          IX.  ADVANCED (?) USE
               The [M]erge option lets you combine two data files, possibly
          from  wildly  different  sources.    The  data and index files of
          the"source" will be permanently changed, so you may  want to keep
          a copy.   You  can also  "read in"  another text into an existing
          data file.   Use  this  option  to  build  up  a  frequency table
          "model" of a particular author, or to make bizarre hybrids.

          X.   WHAT'S IT GOOD FOR?
               BREAK  DOWN  is  a moderately sophisticated database program
          with almost no "serious" uses.  However, there  are all  kinds of
          non-serious uses  for it.   Read  in three  or four "letters from
          camp" and then let the PC generate more.   Generate  new speeches
          based  on  Our  President's  proclamations.   Find out what Lewis
          Carroll would have written had he been a Zen Master.   Or examine
          the program  itself to  see how  the TURBO TOOLBOX can be used to
          manage other sorts of data.  

          XI.  CREDITS
               This  program  was  inspired  by  the  TRAVESTY  program  in
          the November  1984 BYTE  magazine, by  Kenner and O'Rourke.  They
          in turn were inspired by an article in the Scientific American of
          November  1983  by  Brian  Hayes.   Both these articles make good
          reading.  TURBO  TOOLBOX  and  TURBO  Pascal  are  available from
          BORLAND International, 4113 Scotts Valley Road, Scotts Valley, CA
          95066.  BREAK DOWN itself was  written  by  Neil  J.   Rubenking.
          This program may be freely used and copied, but I retain the sole
          right to SELL it.  Users Groups and  Software Clubs  may charge a
          reasonable price for the disk and copying/handling charges.   


Disk No 477  Name Gram / Break Down / Fone Word                    v2.2 DS2
Namegram is a program that takes an input word, usually a name, and compares
it to a set of compressed word files.  In doing this, it can generate a set of
anagrams of the word or name.  Break Down is a strange, but interesting
program.  It has almost no practical uses, except perhaps for entertainment,
but this does not limit its value.  This algorithym takes an input text file
(I tried about two paragraphs of an old English paper) and transforms the
source text into a bunch of sentences that make little to no sense, but
somehow they do!?
------------  Name Gram
NAMESMAL COM  Main program
MASHED   02   Compressed word files used by Namegram
MASHED   03   Compressed word files used by Namegram
MASHED   04   Compressed word files used by Namegram
MASHED   05   Compressed word files used by Namegram
MASHED   06   Compressed word files used by Namegram
READNAME COM  Screen driven DOCumentation program for Namegram (33k)
------------  Break Down
BREKDOWN COM  Main Program
BREKDOWN PAS  Pascal source code for Brekdown program
BREKDOWN DOC  Short documentation for Brekdown (3 pages)
BREKDOWN XMP  Some examples of text generated by Brekdown (3 pages)
BREK2    TXT  Associated text file used by Brekdown
ROMEO    O5T  Order-5 Breakdown of the "window scene" from Romeo & Juliet
ROMEO    O8T  Order-8 Breakdown of same, cleaned up and puntuated.
REAGAN   OUT  Order-8 Breakdown of the '85 State Of The Union address
------------  Phone Word
FONEWORD COM  Main Program
FONEWORD DOC  Documentation of Foneword program
WORDFONE COM  Reverses Foneword program
------------  BONUS files:  Created using my PIANOMAN program
WILDWEST COM  "The Wild West Is Where I Wanna Be" by Tom Lehrer
WILLTELL COM  "The William Tell Overture" by G.A. Rossini
INVENTN4 COM  Two-part Invention #4 in D-Minor, by J.S. Bach
CIRCUS   COM  Theme from Monty Python's Flying Circus, by J.P. Sousa
PC-SIG (Software Interest Group)
1030 East Duane Avenue, Suite D
Sunnyvale, CA  94086
(408) 730-9291


 |      FONEWORD and WORDFONE        | Written by Neil J. Rubenking        |
 |                                   |            300 Page St.             |
 | inspired by Patrick Cox of PC-SIG |            San Francisco, CA  94102 |
  Would people remember your phone number better if they heard it in the
  form of a word?  Can you remember that IBM's PC User Group support line
  has the phone number IBM-PCUG?  Pretty easy, isn't it.  FONEWORD will
  take your phone number and return all 2,187 possible equivalent words.
  The "0" and "1" buttons don't have any letters on them, so they pass
  without change.  You can view the result as 11 screenfuls on your
  monitor, or have it printed out as 4 pages.

  If, like me, you have trouble DIALING word-type phone numbers, WORDFONE
  is the program for you.  Enter "WORDFONE" and the word, and it quickly
  returns the number to dial.  E.g., "WORDFONE ENGLAND" returns 364-5263.

  Patrick felt that a program like this would be useful in business.  If it
  is indeed of use to you, a contribution of $5 or $10 will encourage me to
  continue writing software on this basis.

  I could write a version of FONEWORD that would actually check for REAL
  words, or combinations of words.  However, I probably won't unless a
  lot of interest is shown.

  NEW:  If you have trouble reading the FONEWORD screens on a B&W composite
  monitor, just add the parameter /BW -- e.g., "FONEWORD /BW".

Directory of PC-SIG Library Disk #0477

 Volume in drive A has no label
 Directory of A:\

BREK2    TXT      1724   8-02-85   3:30p
BREKDOWN COM     34066   5-19-86   9:01a
BREKDOWN DOC      8525   2-06-85   5:24p
BREKDOWN PAS     31991  12-18-85   6:27p
BREKDOWN XMP      5859   2-06-85   5:29p
CIRCUS   COM     45056   7-21-86   6:13p
FILES477 TXT      2257   9-29-86   1:23p
FONEWORD COM     19442   5-28-86   3:30p
FONEWORD DOC      1541   5-28-86   3:31p
GO       BAT      1565   9-29-86  10:42a
INVENTN4 COM      3955  11-29-84   6:35p
MASHED   02        128  12-22-85   6:14p
MASHED   03       1152  11-23-85   7:42a
MASHED   04       5248   4-23-85   6:24a
MASHED   05      13952   4-24-85   7:45p
MASHED   06      27008   4-28-85   8:18a
NAMESMAL COM     28290   5-28-86   2:28p
READNAME COM     45199   5-28-86   3:13p
READTHIS 1ST      1200   7-23-86  10:58a
REAGAN   OUT     17920   8-03-85   8:21a
ROMEO    O5T      4031   5-14-86   1:24p
ROMEO    O8T      3584   5-14-86  12:28p
WILDWEST COM     24320   5-06-86   9:13p
WORDFONE COM     12408   5-25-86  11:39a
       24 file(s)     340421 bytes
                        9216 bytes free