home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / ptx-0.4-src.tgz / ptx-0.4-src.tar / fsf / ptx / TODO < prev    next >
Text File  |  1996-09-28  |  4KB  |  92 lines

  1. TODO file for GNU ptx
  2.  
  3. Tell <pinard@iro.umontreal.ca> if you feel like volunteering for any
  4. of these ideas, listed more or less in decreasing order of priority.
  5.  
  6. * Use mmap for swallowing files (maybe wrong when memory edited).
  7.  
  8. * Sort keywords intelligently for Latin-1 code.  See how to interface
  9. this character set with various output formats.  Also, introduce
  10. options to inverse-sort and possibly to reverse-sort.
  11.  
  12. * Use rx instead of regex.
  13.  
  14. * Correct the infinite loop using -S '$' or -S '^'.
  15.  
  16. * Improve speed for Ignore and Only tables.  Consider hashing instead
  17. of sorting.  Consider playing with obstacks to digest them.
  18.  
  19. * Provide better handling of format effectors obtained from input, and
  20. also attempt white space compression on output which would still
  21. maximize full output width usage.
  22.  
  23. * See how TeX mode could be made more useful, and if a texinfo mode
  24. would mean something to someone.
  25.  
  26. * Understand and mimic `-t' option, if I can.
  27.  
  28. * Provide multiple language support
  29.  
  30. Most of the boosting work should go along the line of fast recognition
  31. of multiple and complex boundaries, which define various `languages'.
  32. Each such language has its own rules for words, sentences, paragraphs,
  33. and reporting requests.  This is less difficult than I first thought:
  34.  
  35.  . Recognize language modifiers with each option.  At least -b, -i, -o,
  36. -W, -S, and also new language switcher options, will have such
  37. modifiers. Modifiers on language switchers will allow or disallow
  38. language transitions.
  39.  
  40.  . Complete the transformation of underlying variables into arrays in
  41. the code.
  42.  
  43.  . Implement a heap of positions in the input file.  There is one entry
  44. in the heap for each compiled regexp; it is initialized by a re_search
  45. after each regexp compile.  Regexps reschedule themselves in the heap
  46. when their position passes while scanning input.  In this way, looking
  47. simultaneously for a lot of regexps should not be too inefficient,
  48. once the scanning starts.  If this works ok, maybe consider accepting
  49. regexps in Only and Ignore tables.
  50.  
  51.  . Merge with language processing boundary processing options, really
  52. integrating -S processing as a special case.  Maybe, implement several
  53. level of boundaries.  See how to implement a stack of languages, for
  54. handling quotations.  See if more sophisticated references could be
  55. handled as another special case of a language.
  56.  
  57. * Tackle other aspects, in a more long term view
  58.  
  59.  . Add options for statistics, frequency lists, referencing, and all
  60. other prescreening tools and subsidiary tasks of concordance
  61. production.
  62.  
  63.  . Develop an interactive mode.  Even better, construct a GNU emacs
  64. interface.  I'm looking at Gene Myers <gene@cs.arizona.edu> suffix
  65. arrays as a possible implementation along those ideas.
  66.  
  67.  . Implement hooks so word classification and tagging should be merged
  68. in.  See how to effectively hook in lemmatisation or other
  69. morphological features.  It is far from being clear by now how to
  70. interface this correctly, so some experimentation is mandatory.
  71.  
  72.  . Profile and speed up the whole thing.
  73.  
  74.  . Make it work on small address space machines.  Consider three levels
  75. of hugeness for files, and three corresponding algorithms to make
  76. optimal use of memory.  The first case is when all the input files and
  77. all the word references fit in memory: this is the case currently
  78. implemented. The second case is when the files cannot fit all together
  79. in memory, but the word references do.  The third case is when even
  80. the word references cannot fit in memory.
  81.  
  82.  . There also are subsidiary developments for in-core incremental sort
  83. routines as well as for external sort packages.  The need for more
  84. flexible sort packages comes partly from the fact that linguists use
  85. kinds of keys which compare in unusual and more sophisticated ways.
  86. GNU `sort' and `ptx' could evolve together.
  87.  
  88. Local Variables:
  89. mode: outline
  90. outline-regexp: " *[-+*.] \\| "
  91. End:
  92.