Sword Frontend Ideal Feature List
General UI features
- Bible reading
- Direct passage lookup
- Easy navigation from one book/chapter to the next/previous.
- Parallel view for Bibles, either side-by-side or above-and-below
- Parallel view for commentaries, either side-by-side or above-and-below
- Search (see below)
- Hyperlinked scripture references
- Dictionary lookup of words, Strong's numbers, morphology, ....
- Full unicode support/proper encoding support for all interface elements and all modules
- Provide customized Input Methods for non-Latin input (especially where Keyman-style input is not possible, as on mobile platforms)
- Font choice on a global level and on a per language and/or per module level
- Transcoding and transliteration support (probably implemented with ICU).
- Resolution independence, adaptable to both low and high resolution and small/large screens.
- Speech synthesis to read content.
For bibles, the following should be able to be turned on and off (if included in the underlying module and if the frontend does not implement that feature in some other way):
- Cross references (display & toggle)
- Footnotes (display & toggle)
- Strong's Numbers (display & toggle)
- Morphology (display & toggle)
- Toggling and/or simultaneous display of textual variants
- Red letters of Christ
- Toggling of Hebrew cantillation (important), vowels (less important), & morpheme segmentation (important?) and of Greek accents (fairly unimportant)
Genbooks, dictionaries and commentaries should all be supported.
The frontend should support user created material. Users should be able to put references in to any passage in the bible, or to any other module. Users should be able to create both commentaries and hierarchical books (and possibly dictionaries, i.e. topical notes).
Users should also be able to manage (create, edit, save) verse lists, possibly with comments on each verse.
Users should be able to manage bookmarks in a tree list.
Search should have the following features:
- Multiword search
- Phrase search
- Search Ranges (user definable)
- Implemented for all modules, both keys and content
- Search in multiple modules simultaneously
- Search history
- Prioritized search
- Search for similar verses
- Fuzzy search for approximate spellings
- Wildcard searches
- Full boolean searches (AND, OR, NOT, NEAR, ...)
- Narrowed searches (searching with in the current set of results)
- Proximity searches (searching across verse boundaries)
- Searching SWORD features (keys, content, notes, Strong's numbers, morphology, headings, ....)
- Related content searching (e.g. find verses having a Strong's number with a particular morphology code)
- Searching for words with or without accents
- Searching using transliterations
- Bookmark/Saved Verse List search (e.g. custom topic searching)
- Stemmed searches, language/content specific
- Stop words, language/content specific
- Compound word searches
- N-gram searching (needed for languages that don't space words, such as Vietnamese.)
The search should also be able to complete a search very quickly (<5 seconds). It should by default match on full words (that is, searching for eat doesn't match verses with meat). This will probably be done using (C)lucene.
Ideally the different Sword search engines would be supported.
The frontend should be easy for users to use. Most of its features (and all of its major features) should be able to be used without having to look at the manual. Also, it should not contain bugs or crash.
Module installer features
- The frontend should allow remote installation of modules from both the CrossWire website and other websites the user adds to their list.
- It should also allow the user to downloaded and install zips (via the remote installer).
- All frontends MUST be GPLv2 licensed. (This should be obvious. The SWORD Project is GPLv2-licensed. All derivative works, such as frontends and utilities, must be GPLv2 or they would be in violation of CrossWire's copyright and the copyrights of 3rd parties whose code has been incorporated into Sword, e.g. the FSF.)