home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-2.iso / Text / services / Ortho.README < prev    next >
Encoding:
Text File  |  1996-08-07  |  14.1 KB  |  301 lines

  1. 'Ortho' is my private collection of NEXTSTEP spelling checkers.
  2. ===============================================================
  3.  
  4. This is the August 1996 version. For a summary of versions, refer to
  5. the section at the end of this text.
  6.  
  7. The 'Ortho' distribution consists of six archives:
  8. --------------------------------------------------
  9.  
  10. *   Ortho.Dutch.4.NI.b.tar.gz
  11. *   Ortho.French.3.NI.b.tar.gz
  12. *   Ortho.German.3.NI.b.tar.gz
  13.     Tar archives of NEXTSTEP installer packages. To install:
  14.     Unpack the compressed tar archive in /tmp through
  15.     'gunzip < Ortho.French.3.NI.b.tar.gz | tar xvf -'
  16.     Then double click on the .pkg file to install
  17. *   Ortho.Dutch.4.s.tar.gz
  18. *   Ortho.French.3.s.tar.gz
  19. *   Ortho.German.3.s.tar.gz
  20.     Source packages: A more detailed description can be found below.
  21.  
  22. A more detailed description of the archives.
  23. --------------------------------------------
  24.  
  25. Ortho.Dutch.4.NI.b.tar.gz
  26.     A tar archive of 'Ortho.Dutch.pkg', an installer package for the Dutch
  27.     version of 'Ortho'. Just use
  28.     'gunzip < Ortho.Dutch.4.NI.b.tar.gz | tar xvf -' in /tmp and
  29.     double click on the package. It is the only archive that contains an
  30.     installation manual. It is stored with the .pkg bundle, in
  31.     the same tar file. (handleiding.rtfd: In Dutch)
  32.  
  33. Ortho.Dutch.4.s.tar.gz
  34.     A 'gzipped' tar archive of both the source that is shared among
  35.     the different languages and the source that is specific to the
  36.     Dutch part of the spelling checker.
  37.     -   The source consists of:
  38.         =   The file 'groen': A list of dutch words that can be
  39.         found on various Dutch ftp archives such as 'ftp.nl.net'.
  40.         I corrected a number of typos and tried to capitalize all
  41.         names. Besides I made some minor changes.
  42.         For more detail, refer to the Leesmij en LeesmijOok files
  43.         in the Dutch source directory. To make foreign readers happy,
  44.         the files are in Dutch.
  45.         The original material is signed with three names:
  46.         Jan van Bakel, Dick Grune and Patrick Groeneveld.
  47.         The material here is based on the old orthography rules.
  48.         The current version has been adapted to the new Dutch
  49.         orthography rules.
  50.         =   The file 'groen.meer': A word list that supplements 'groen'.
  51.         Although it has the same format as 'groen', the fields
  52.         that I do not need are absolutely unreliable. Their content
  53.         is more or less random.
  54.         =   The source of a C program that reads the word lists and
  55.         stores the different forms of the words on a finite
  56.         automaton. On my 33Mhz Next station turbo with 32M memory,
  57.         it takes 15 hours. Probably it is better to use the Dutch.ind
  58.         file from the installer package. [ Or to use a more powerful
  59.         machine: On a Pentiun 150 with 64M memory it only takes
  60.         11 minutes. ]
  61.         =   The Dutch part of the spelling checker including a makefile
  62.         and some configuration files to produce an installer package
  63.         and two floppy disks for a floppy distribution.
  64.         =   Some directories that constitute the general part of the
  65.         spelling package:
  66.         *   include:    Include files
  67.         *   lib:    Empty, will receive libraries.
  68.         *   ind:    The finite automata library.
  69.         *   nextspel:    The nextstep specific part of the checkers.
  70.         *   morpho:    An attempt to give names to the kinds of
  71.                 forms produced by the conjugation/derivation
  72.                 program. This attempt was a failure. As I
  73.                 never replaced it with something sensible
  74.                 it is still there.
  75.         *   mspel:    A command line spelling checker. Mainly
  76.                 for testing purposes and dictionary
  77.                 management.
  78.  
  79. Ortho.German.3.NI.b.tar.gz
  80.     A tar archive of 'Ortho.German.pkg', an installer package for the
  81.     German version of 'Ortho'. Just use
  82.     'gunzip < Ortho.German.3.NI.b.tar.gz | tar xvf -' in /tmp and double
  83.     click on the package. The original copyright notice by Geoff
  84.     Kuenning that accompanies the material from Martin Schulz, is
  85.     reproduced at the bottom of this file.
  86.  
  87. Ortho.German.3.s.tar.gz
  88.     A 'gzipped' tar archive of both the source that is shared among
  89.     the different languages and the source that is specific to the
  90.     German part of the spelling checker.
  91.     -   The source consists of:
  92.         =   The Directory HeinzKnutzen. It is source material that can
  93.         be used with the international version od 'ispell'.
  94.         According to rumours it is better than the original
  95.         material by Martin Schulz. I cannot judge. More recent
  96.         versions should be preferable to this material. It was
  97.         downloaded from ftp://ftp.informatik.uni-kiel.de as
  98.         /pub/kiel/dicts/hk-deutsch.tar.gz. The author is Heinz Knutzen
  99.         (hk@informatik.uni-kiel.d400.de). I corrected one or two
  100.         typos in the original material. Most of the international
  101.         part of ispell is the work of Geoff Kuenning
  102.         (geoff@ITcorp.com). His material is available from
  103.         ftp.cs.ucla.edu (131.179.128.34).
  104.         =   A directory MartinSchulz with an alternative dictionary.
  105.         It was part of the original international version of
  106.         ispell. It is unused, but the makefile can be edited to
  107.         use this material. I downloaded this from
  108.         'ftp.vlsivie.tuwien.ac.at'. An alternative source is:
  109.         /ftp.th-darmstadt.de:
  110.                 /pub/dicts/ispell/dictionaries/deutsch.tar.gz
  111.         Most of the international part of ispell is the
  112.         work of Geoff Kuenning (geoff@ITcorp.com). His material is
  113.         available from ftp.cs.ucla.edu (131.179.128.34).
  114.         =   A program that uses the ispell dictionaries and an affix
  115.         file to make a finite automaton.
  116.  
  117. Ortho.French.3.NI.b.tar.gz
  118.     A tar archive of 'Ortho.French.pkg', an installer package for the French
  119.     version of 'Ortho'. Just use
  120.     'gunzip < Ortho.French.3.NI.b.tar.gz | tar xvf -' in /tmp
  121.     and double click on the package.
  122.  
  123. Ortho.French.3.s.tar.gz
  124.     A 'gzipped' tar archive of both the source that is shared among
  125.     the different languages and the source that is specific to the
  126.     French part of the spelling checker.
  127.     -   The source consists of:
  128.         =   The file 'mots': A list of French words. It is part
  129.         of the 'epelle' software. Epelle can be downloaded from
  130.         'ftp.inria.fr' as 'algo/epelle' or something similar.
  131.         I corrected one or two typos. More recent versions should be
  132.         preferable to my file.
  133.         Epelle was made by Paul Zimmermann, Inria Lorraine,
  134.         <Paul.Zimmermann@inria.fr>.
  135.         =   A program that uses the word list to make a finite automaton.
  136.  
  137. Compiling the source.
  138. ---------------------
  139. The makefile in the root of the source tree should be sufficient to
  140. compile the whole package. It is so simple that it can be its own
  141. documentation.
  142. NOTE: Do not forget to change the -arch flags in */makefile. 
  143.  
  144. The changes file.
  145. -----------------
  146. The spelling checkers in the Ortho package use and update the
  147. standard NEXT dictionaries with the name of the language in
  148. ~/.NeXT/dictionaries. Besides this file, they keep a human readable
  149. file <Language>.changes in the same directory. If the contents of
  150. your file reveal not too much about your private life, I would be
  151. grateful to receive a copy by mail occasionally for the maintenance
  152. of the dictionaries.
  153.  
  154. Users that correct dictionaries would be nice if they sent their
  155. corrections to the original authors of the dictionaries, and also to
  156. me.
  157.  
  158. Other languages
  159. ---------------
  160. I would be delighted to improve my dictionaries and to extend my
  161. effort to other languages, if possible in collaboration with others.
  162. If you have any material, or if you want to collaborate, you are
  163. welcome.
  164.  
  165. Other platforms.
  166. ----------------
  167. Does anyone know about protocols for spelling checking on other
  168. platforms? CDE/ToolTalk or OpenDoc for example. If you do,
  169. please mail me a reference to the documentation.
  170.  
  171. I originally started the project for several reasons:
  172. -----------------------------------------------------
  173. 1)  I am a clumsy typist and need a spelling checker to supplement my
  174.     physical (dis)abilities.
  175. 2)  Typing accents is a curse. I prefer a spelling checker that suggests
  176.     them.
  177. 3)  I wondered whether finite automata could be used as database indexes
  178.     for approximate search. To get some feeling I started a project with
  179.     finite automata. The issue is still open. The project resulted in
  180.     three spelling checkers. [ About automata as indexes: performance on
  181.     static databases is excellent. Updates are far too slow. The indexes
  182.     are BIG. ]
  183.  
  184. The approach was the following:
  185. -------------------------------
  186. 1)  Make a finite automaton for ALL forms you can derive from a lexicon.
  187.     This automaton can be huge: More than 40 megabytes for the Dutch
  188.     lexicon.
  189. 2)  Minimize the automaton and use it as a search index. The cost
  190.     of the minimization was far more than I expected: 15 hours on
  191.     my computer for the Dutch lexicon. Most of the time is wasted in
  192.     paging. For reasonably sized lexica such as the French and German ones
  193.     the time that minimilalisation will take is short enough to
  194.     make a new index occasionally.
  195. 3)  The memory image of the resulting minimal automaton is dumped to a file.
  196.     The spelling checker memory maps this file in its address space,
  197.     and uses the automaton to see whether forms exist in the dictionary.
  198.     It also the automaton to find forms that are sufficiently similar to
  199.     be proposed as a guess for a word that is not recognized by the automaton.
  200.     My definition of similarity is based on insertions, deletions,
  201.     permutations. Depending on the length of the word, it gets a score.
  202.     Every operation has a price. [Hard coded in indguess.c] All words
  203.     recognised by the automaton, that can be derived from the misspelling
  204.     through operations with a total cost less than the score of the
  205.     misspelling are potential guesses.
  206. 4)  CONCLUSION: Although the amount of memory used is a little too high,
  207.     (2Mb for Dutch and German, 1Mb for French) and the production of
  208.     guesses for long words is a little too slow, my general impression
  209.     of the usability of finite automata for spelling checking is good.
  210. 5)  About the same applies for the use as indices for text retrieval.
  211.     Performance is good but the files are too big. Besides the limit of
  212.     255 tags associated to a word is too restrictive. But that can be
  213.     solved by changing the file structure.
  214.  
  215. Versions:
  216. ---------
  217.     Mid 1995:
  218.         First version. Sent to the Dutch NEXTSTEP community.
  219.     January 1996:
  220.         Dutch version 3, French/German version 2. The first
  221.         public versions.
  222.     August 1996:
  223.         Dutch version 4,
  224.         -   The Dutch dictionary is adapted to the new Dutch orthography.
  225.         -   Memory leaks in the generation of guesses have been closed.
  226.         This and some other changes improve performance.
  227.         -   Provisions for phrases like 'ad hoc', without accepting 'ad'
  228.         or 'hoc'.
  229.         -   Provisions for language specific misspellings.
  230.         -   Guesses are faster but still too slow.
  231.         -   The new version is file compatible with the previous one.
  232.         German version 3,
  233.         -   I Use the dictionaries from Heinz Knutzen. The original
  234.         Martin Schulz material is still included.
  235.         -   The affix file reader has been improved.
  236.         German, French version 3,
  237.         -   Memory leaks in the generation of guesses have been closed.
  238.         This and some other changes improve performance.
  239.         -   Provisions for phrases like 'ad hoc', without accepting 'ad'
  240.         or 'hoc'.
  241.         -   Provisions for language specific misspellings.
  242.         -   Guesses are faster but still too slow.
  243.         -   The new version is file compatible with the previous one.
  244.  
  245. Mostly for our American fellow humans:
  246. --------------------------------------
  247.     -   The 'Ortho' source and spelling checkers are herewith made public.
  248.     Whoever wants to use them for whatever he wants to is free to
  249.     do so. I would appreciate an acknowledgment. I do not claim
  250.     anything.
  251.     -   I do not accept any responsibility for the functionality of what
  252.     I publish. It is up to you to judge the usefulness of my work.
  253.     -   I would like to hear about applications, corrections or extensions.
  254.     It would be nice to get news from you. Again: I do not claim
  255.     anything.
  256.  
  257. Mark de Does
  258.  
  259. =======================================================
  260. Mark de Does, Donkerstraat 24, 3511 KA Utrecht, Holland
  261. Tel: ++ 31 30 2314150, Email: M.de.Does@inter.nl.net
  262. =======================================================
  263.  
  264. The copyright notice from the german ispell material reads:
  265. -----------------------------------------------------------
  266.     # Copyright 1988, 1989, 1992, 1993, Geoff Kuenning, Granada Hills, CA
  267.     # All rights reserved.
  268.     #
  269.     # Redistribution and use in source and binary forms, with or without
  270.     # modification, are permitted provided that the following conditions
  271.     # are met:
  272.     #
  273.     # 1. Redistributions of source code must retain the above copyright
  274.     #    notice, this list of conditions and the following disclaimer.
  275.     # 2. Redistributions in binary form must reproduce the above copyright
  276.     #    notice, this list of conditions and the following disclaimer in the
  277.     #    documentation and/or other materials provided with the distribution.
  278.     # 3. All modifications to the source code must be clearly marked as
  279.     #    such.  Binary redistributions based on modified source code
  280.     #    must be clearly marked as modified versions in the documentation
  281.     #    and/or other materials provided with the distribution.
  282.     # 4. All advertising materials mentioning features or use of this software
  283.     #    must display the following acknowledgment:
  284.     #      This product includes software developed by Geoff Kuenning and
  285.     #      other unpaid contributors.
  286.     # 5. The name of Geoff Kuenning may not be used to endorse or promote
  287.     #    products derived from this software without specific prior
  288.     #    written permission.
  289.     #
  290.     # THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING AND CONTRIBUTORS ``AS IS'' AND
  291.     # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  292.     # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  293.     # ARE DISCLAIMED.  IN NO EVENT SHALL GEOFF KUENNING OR CONTRIBUTORS BE
  294.     # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  295.     # CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
  296.     # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  297.     # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  298.     # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  299.     # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  300.     # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  301.