user interface

The user interface is documented in frame, poem and dialogue.


The database is documented in general, context, poem, dictionary and form.



  • Combination of using existing packages and writing some new code.
  • Target server OS: Open BSD.
  • Must support remote admin.
  • If server sold as a product, package includes Open BSD CD.


Users + rights—rights are based on OS user id or login

  • Rights: blocked, read, administer.
  • App: blocked, use, advanced use, administer (e.g. local admin).
  • Forum: blocked, use, moderate, administer.
  • Blog: blocked, use, administer.
  • Wiki: blocked, read, modify, administer.

Rights cross linked by machine id, so

  • Machine: blocked, use, administer AND
  • blocked, specific machine, list of machines, all machines.

Software licence management.

Component Updates

  • Note availability of central updates.
  • Categories of updates: software, data. Manage update dependencies on each other.
  • Policies: ignore, update, optional, required (push).
  • Target: specific machine, all machines.
  • Every so often, maybe once a week, client asks server for list of current versions. Client then initiates download of required updates. Client permits user to select optional versions. In default installation, user initiates update checks.
  • Server supports: list of current, historic lists, location of files, signatures. Requires signature of clients.
  • Install alternatives: just drop files; just run (for uninstall of component, for example); drop file & restart app; run and restart app; run app and exit (for full replace).


  • To register shareware version. Payment? Delivery?
  • Support links from shareware marketing sites?
  • Additional benefits?
  • Explain the benefit of registration…
  • Poetry bookshop link?


  • Standard stuff, plus
  • Topics each have a number of definable categories, such as poetry style, period, form. Users can choose structure to display.
  • Upload, download poems.


  • Standard stuff, plus upload/download poems.
  • Ensure uplink connectivity (e.g. to wikipedia, etc.).


Standard stuff, plus upload/download poems.


  • Presentation manager: displays poem and supports editing of poem.
  • Layer manager: manages, integrates and displays results of analyses.
  • Window manager: manages menus, toolbars and all the usual gubbins.
  • Poem manager: connects user I/O with place in poem;
  • Word manager analyses words to identify dictionary entries;
  • Dictionary manager manages dictionary entries to yield phonetics, rhythm, syllable count, & thesaurus context.
  • Stanza manager analyses words & white space to identify stanzas and line breaks.
  • Phonetic manager analyses phonetics for rhyme, pararhyme, & alliteration.
  • Liaison manager analyses phonetics and words for liaison.
  • Syllable manager analyses syllables and white space for syllabics.
  • Metre manager analyses rhythm for metre.
  • Stress manager analyses words, punctuation, rhythm and phonetics for emphasis.
  • Form manager analyses metre, line breaks and stanzas to identify form.
  • Phrase manager analyses sequences of phonemes for repetition & cliché.
  • Semantic manager analyses words themselves, plus sequences of phonemes, for synonyms, antonyms, hyponyms, hypernyms, meronymies, & holonymies, for semantic relationships. It warns about euphemisms.
  • Audio manager: recording / replay of recital, maybe auto-generation of reading using Microsoft voice stuff (yuk but useful)
  • Locale manager: not just standard locales, but regional accents too. Must support Scots, for example.
  • Update manager: looking for updates to software and central data;
  • Distribution manager: distribution of user work
  • Version manager: for version orientated import/export/load/save of files.
  • Help manager: for dealing with user help.

Managers have sequences of stages. These stages are executed by threads in a threadpool.