architecture
user interface
The user interface is documented in frame, poem and dialogue.
database
The database is documented in general, context, poem, dictionary and form.
server
General
- 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.
Rights
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).
Sales
- To register shareware version. Payment? Delivery?
- Support links from shareware marketing sites?
- Additional benefits?
- Explain the benefit of registration…
- Poetry bookshop link?
Forum
- 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.
Wiki
- Standard stuff, plus upload/download poems.
- Ensure uplink connectivity (e.g. to wikipedia, etc.).
Blog
Standard stuff, plus upload/download poems.
managers
- 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.