


ISPELL(4)         DOMAIN/IX Reference Manual ()         ISPELL(4)



NAME
     ispell - format of ispell dictionaries

DESCRIPTION
     Dictionaries for i_s_p_e_l_l_(1) come in two formats: raw, and
     unhashed.  The hashed dictionary is generated by b_u_i_l_d_h_a_s_h_
     (see i_s_p_e_l_l_(1)) from the raw dictionary, and is not
     described here.

     A raw i_s_p_e_l_l_ dictionary (either the main dictionary or your
     own personal dictionary) contains a list of words, one per
     line.  Each word may optionally be followed by a slash ("/")
     and one or more flags, which modify the root word as
     explained below.  Case is significant in the root word, but
     ignored in the flags.  The dictionary does not need to be
     sorted.

     The case of the root word controls the case of words
     accepted by i_s_p_e_l_l_, as follows:

     (1)  If the root word appears only in lower case (e.g.,
          "bob"), it will be accepted in lower case, capitalized,
          or all capitals.

     (2)  If the root word appears capitalized (e.g., "Robert"),
          it will be not be accepted in all-lower case, but will
          be accepted capitalized or all in capitals.

     (3)  If the root word appears all in capitals (e.g.,
          "UNIX"), it will only be accepted all in capitals.

     (4)  If the root word appears with a "funny" capitalization
          (e.g., "ITCorp"), a word will be accepted only if it
          follows that capitalization, or if it appears all in
          capitals.

     (5)  More than one capitalization of a root word may appear
          in the dictionary.  Flags from different capitaliza-
          tions are combined by OR-ing them together.

     Redundant capitalizations (e.g., "bob" and "Bob") will be
     combined by b_u_i_l_d_h_a_s_h_ and by i_s_p_e_l_l_ (for personal dic-
     tionaries), and can be removed from a raw dictionary by m_u_n_-_
     c_h_l_i_s_t_.

     For example, the dictionary:

          bob
          Robert
          UNIX
          ITcorp
          ITCorp



Printed 7/7/87                                           ISPELL-1






ISPELL(4)         DOMAIN/IX Reference Manual ()         ISPELL(4)



     will accept "bob," "Bob," "BOB," "Robert," "ROBERT," "UNIX,"
     "ITcorp," "ITCorp," and "ITCORP," and will reject all oth-
     ers.  Some of the unacceptable forms are "bOb," "robert,"
     "Unix," and "ItCorp."

     As mentioned above, root words in any dictionary may be
     extended by flags.  Each flag is a single alphabetic charac-
     ter, which represents a suffix that may be added to the root
     to form a new word.  For example, the "D" flag can be added
     to "bathe" to make "bathed".  Since flags are represented as
     a single bit in the hashed dictionary, this results in sig-
     nificant space savings.  The m_u_n_c_h_l_i_s_t_ script will reduce an
     existing raw dictionary by adding flags when possible.

     When a word is extended with a suffix, the suffix will be
     accepted only if it appears in the same case as the final
     letter of the word.  Thus, for example, the entry "UNIX/M"
     in the main dictionary ("M" means add an apostrophe and an
     "s" to make a possessive) would accept "UNIX'S" but would
     reject "UNIX's".  If "UNIX's" is legal, it must appear as a
     separate dictionary entry, and it will not be combined by
     m_u_n_c_h_l_i_s_t_.

     In the following discussion of the flags, let # and @ be
     "variables" that can stand for any letter.  Upper case
     letters are constants.  "..." stands for any string of zero
     or more letters, but note that no word may exist in the dic-
     tionary which is not at least 2 letters long, so, for exam-
     ple, "fly" may not be produced by placing the "Y" flag on
     "f".  Also, no flag is effective unless the word that it
     creates is at least 4 letters long, so, for example, "wed"
     may not be produced by placing the "D" flag on "we".

     The meaning of the flags is as follows:

     V
          ...e --> ...ive  as in create --> creative
          if # .ne. e, ...# --> ...#ive  as in prevent -->
               preventive

     N
          ...e --> ...ion  as in create --> creation
          ...y --> ...ication  as in multiply --> multiplication
          if # .ne. e or y, ...# --> ...#en  as in fall --> fal-
               len

     X
          ...e --> ...ions  as in create --> creations
          ...y --> ...ications  as in multiply --> multiplica-
               tions
          if # .ne. e or y, ...# --> ...#ens  as in weak -->
               weakens



ISPELL-2                                           Printed 7/7/87






ISPELL(4)         DOMAIN/IX Reference Manual ()         ISPELL(4)



     H
          ...y --> ...ieth  as in twenty --> twentieth
          if # .ne. y, ...# --> ...#th  as in hundred --> hun-
               dredth

     Y
          ... --> ...ly  as in quick --> quickly

     G
          ...e --> ...ing  as in file --> filing
          if # .ne. e, ...# --> ...#ing  as in cross --> crossing

     J
          ...e --> ...ings  as in file --> filings
          if # .ne. e, ...# --> ...#ings  as in cross --> cross-
               ings

     D
          ...e --> ...ed  as in create --> created
          if @ .ne. a, e, i, o, or u, ...@y --> ...@ied  as in
               imply --> implied
          if # .ne. e or y, or (# = y and @ = a, e, i, o, or u)
               ...@# --> ...@#ed  as in cross --> crossed or con-
               vey --> conveyed

     T
          ...e --> ...est  as in late --> latest
          if @ .ne. a, e, i, o, or u, ...@y --> ...@iest  as in
               dirty --> dirtiest
          if # .ne. e or y, or (# = y and @ = a, e, i, o, or u)
               ...@# --> ...@#est  as in small --> smallest or
               gray --> grayest

     R
          ...e --> ...er  as in skate --> skater
          if @ .ne. a, e, i, o, or u, ...@y --> ...@ier  as in
               multiply --> multiplier
          if # .ne. e or y, or (# = y and @ = a, e, i, o, or u)
               ...@# --> ...@#er  as in build --> builder or con-
               vey --> conveyer

     Z
          ...e --> ...ers  as in skate --> skaters
          if @ .ne. a, e, i, o, or u, ...@y --> ...@iers  as in
               multiply --> multipliers
          if # .ne. e or y, or (# = y and @ = a, e, i, o, or u)
               ...@# --> ...@#ers  as in build --> builders or
               slay --> slayers

     S
          if @ .ne. a, e, i, o, or u, ...@y --> ...@ies  as in
               imply --> implies



Printed 7/7/87                                           ISPELL-3






ISPELL(4)         DOMAIN/IX Reference Manual ()         ISPELL(4)



          if # .eq. s, x, z, or h, ...# --> ...#es  as in fix -->
               fixes
          if # .ne. s, x, z, h, or y, or (# = y and @ = a, e, i,
               o, or u) ...@# --> ...@#s  as in bat --> bats or
               convey --> conveys

     P
          if @ .ne. a, e, i, o, or u, ...@y --> ...@iness  as in
               cloudy --> cloudiness
          if # .ne. y, or @ = a, e, i, o, or u, ...@# -->
               ...@#ness  as in late --> lateness or gray -->
               grayness

     M
          ... --> ...'s  as in dog --> dog's

     To summarize more briefly:

          V - ive
          N - ion, tion, en
          X - ions, ications, ens
          H - th, ieth
          Y - ly
          G - ing
          J - ings
          D - ed
          T - est
          R - er
          Z - ers
          S - s, es, ies
          P - ness, iness
          M - 's

SEE ALSO
     ispell(1)




















ISPELL-4                                           Printed 7/7/87



