Difference between revisions of "Frontends:FeatureList"
David Haslam (talk | contribs) m (→Workflow: hyphens) |
(→User resources) |
||
(69 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
− | ===Cross- | + | ===Cross-platform=== |
* Runs on multiple platforms, e.g. Windows, Linux, Mac, PDA, Java ME. | * Runs on multiple platforms, e.g. Windows, Linux, Mac, PDA, Java ME. | ||
* Has native installers for each platform. | * Has native installers for each platform. | ||
Line 17: | Line 15: | ||
* Able to be installed/copied from the USB drive to the host computer or otherwise copied to another USB drive. | * Able to be installed/copied from the USB drive to the host computer or otherwise copied to another USB drive. | ||
− | ====CD==== | + | ====CD or read-only SD cards==== |
* Able to be run from a CD. | * Able to be run from a CD. | ||
* Able to use modules on the CD. | * Able to use modules on the CD. | ||
Line 36: | Line 34: | ||
* Direct passage lookup | * Direct passage lookup | ||
* Easy navigation from one book/chapter to the next/previous. | * 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 Bibles and Commentaries, either side-by-side or above-and-below |
− | * | + | * Optional synchronized scrolling for side-by-side parallel views/windows |
* Search (see below) | * Search (see below) | ||
* Hyperlinked scripture references | * Hyperlinked scripture references | ||
Line 44: | Line 42: | ||
* Provide customized Input Methods for non-Latin input (especially where Keyman-style input is not possible, as on mobile platforms) | * 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 | * Font choice on a global level and on a per language and/or per module level | ||
− | * Transcoding and transliteration support (probably implemented with ICU). | + | * Transcoding and [[transliteration]] support (probably implemented with ICU). |
* Resolution independence, adaptable to both low and high resolution and small/large screens. | * Resolution independence, adaptable to both low and high resolution and small/large screens. | ||
− | * Speech synthesis to read content. | + | * Speech synthesis to read text content of selection or whole chapter. |
+ | * Per module assignment of speech synthesis voices, or none. | ||
+ | * Optional continuous scrolling text with synchronized audio. | ||
* [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&cat_id=RenderingGraphite Graphite] rendering (either by direct employment of the API or via a toolkit, such as Pango, that employs it) | * [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&cat_id=RenderingGraphite Graphite] rendering (either by direct employment of the API or via a toolkit, such as Pango, that employs it) | ||
− | * Correct handling of [http://en.wikipedia.org/wiki/Hyphen#Hyphens_in_computing soft hyphens] (codepoint U+00AD) when used in | + | * Correct handling of [http://en.wikipedia.org/wiki/Hyphen#Hyphens_in_computing soft hyphens] (codepoint U+00AD) when used in long words, and and no-break spaces (U+00A0) where these are linguistically significant. |
===Module support=== | ===Module support=== | ||
− | For bibles, the following should be able to be turned on and off (if included in the underlying module and if the | + | For bibles, the following should be able to be turned on and off (if included in the underlying module and if the front-end does not implement that feature in some other way): |
* Headings (display & toggle noncanonical?) | * Headings (display & toggle noncanonical?) | ||
* Cross references (display & toggle) | * Cross references (display & toggle) | ||
Line 57: | Line 57: | ||
* Strong's Numbers (display & toggle) | * Strong's Numbers (display & toggle) | ||
* Morphology (display & toggle) | * Morphology (display & toggle) | ||
+ | * Glossary links (display & toggle)<ref>Currently in SWORD, there is no separate Global OSIS filter for OSISDictionary.</ref> | ||
+ | * Testament and Book introductions (display & toggle, or mouseover/popup)<ref>e.g. By making use of the title attribute <tt>type="x-intro"</tt>.</ref> | ||
* Toggling and/or simultaneous display of textual variants | * Toggling and/or simultaneous display of textual variants | ||
− | * | + | * Toggling the display of red letters for Words of Christ |
* Toggling of Hebrew cantillation (important), vowels (less important), & morpheme segmentation (important?) and of Greek accents (fairly unimportant) | * Toggling of Hebrew cantillation (important), vowels (less important), & morpheme segmentation (important?) and of Greek accents (fairly unimportant) | ||
* Toggling of diacritics in Arabic and related scripts (Farsi, Urdu, etc) | * Toggling of diacritics in Arabic and related scripts (Farsi, Urdu, etc) | ||
* Toggling of [http://en.wikipedia.org/wiki/Pilcrow pilcrow] signs (as in the KJV text) | * Toggling of [http://en.wikipedia.org/wiki/Pilcrow pilcrow] signs (as in the KJV text) | ||
* [http://en.wikipedia.org/wiki/Parashah Parashah] support for the Masoretic text | * [http://en.wikipedia.org/wiki/Parashah Parashah] support for the Masoretic text | ||
+ | * Ruby markup for (e.g.) Japanese modules | ||
+ | * Alternative readings (display primary, secondary or both) | ||
+ | * [http://en.wikipedia.org/wiki/Qere_and_Ketiv Ketiv & Qere] support for the Masoretic text<ref>Not yet supported by the SWORD API.</ref> | ||
− | Genbooks, dictionaries and commentaries should all be supported. | + | Other general support requirements: |
+ | # Genbooks, dictionaries and commentaries should all be supported. | ||
+ | # Must be able to unlock locked modules. | ||
+ | # Modules using poetry with supported markup should display it as in a print Bible (i.e. with indenting) | ||
+ | # Modules with OSIS tables should display them properly. | ||
+ | # Support for modules with [[Alternate Versification]] | ||
− | + | '''Notes:''' | |
− | + | <references /> | |
− | |||
− | |||
− | |||
===User resources=== | ===User resources=== | ||
Line 78: | Line 85: | ||
Users should also be able to manage (create, edit, save) verse lists, possibly with comments on each verse. | 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. | + | Users should be able to manage bookmarks in a tree list. These bookmarks should be so that they could be shared between different frontends. A [[Frontends:Bookmarks Standard|Standard for bookmarks]] is under discussion. |
User generated material should be for that user alone (on a multi-user OS), unless specified by the author for viewing by all users. | User generated material should be for that user alone (on a multi-user OS), unless specified by the author for viewing by all users. | ||
− | ===Search | + | ===Search features=== |
Search should have the following features: | Search should have the following features: | ||
− | * Multiword search | + | * Option to toggle whole words for search<ref>The default should be match for whole words (i.e., a search for 'eat' doesn't match verses with 'meat')</ref> |
+ | * Option to toggle case-sensitivity for search | ||
+ | * Option to include/exclude punctuation characters | ||
+ | * Multiword search with a user-defined maximum number of intervening words | ||
* Phrase search | * Phrase search | ||
− | * Search | + | * Support for editing the search term for languages that use a non-Latin writing system |
+ | * Search ranges (user definable to restrict search scope to certain books, etc.) | ||
* Implemented for all modules, both keys and content | * Implemented for all modules, both keys and content | ||
* Search in multiple modules simultaneously | * Search in multiple modules simultaneously | ||
* Search history | * Search history | ||
* Prioritized search | * Prioritized search | ||
− | * Search for similar verses | + | * Search for similar verses based on wording and on Strongs numbers |
− | * Fuzzy search for approximate spellings | + | * Fuzzy search for approximate spellings<ref>e.g. Search KJV for Tarshish should also find Tharshish in 1 Kings 10:22, 22:48, 1 Chronicles 7:10</ref> |
* Searching for synonyms of particular words | * Searching for synonyms of particular words | ||
− | * Wildcard searches | + | * Wildcard and [http://en.wikipedia.org/wiki/Regular_expression regex] searches<ref>e.g. To find all phrases that begin or end with a certain word.</ref> |
− | * Full | + | * Full [http://en.wikipedia.org/wiki/Introduction_to_Boolean_algebra#Boolean_searches Boolean searches] (AND, OR, NOT, ...) |
* Narrowed searches (searching with in the current set of results) | * Narrowed searches (searching with in the current set of results) | ||
* Proximity searches (searching across verse boundaries) | * Proximity searches (searching across verse boundaries) | ||
Line 110: | Line 121: | ||
* N-gram searching (needed for languages that don't space words, such as Vietnamese.) | * N-gram searching (needed for languages that don't space words, such as Vietnamese.) | ||
* Searches by collections of not just Bibles but also Commentaries, Genbooks, Dictionaries | * Searches by collections of not just Bibles but also Commentaries, Genbooks, Dictionaries | ||
− | * Search results output to the main window, not just in the search dialog | + | * Search results output to the main window, not just in the search dialog<ref>To allow for saving search results as a "verse list" and utilizing all the features available (such as cross-references and dictionary lookup)</ref> |
+ | * Option to include/exclude alternative readings (textual variants) during search of Biblical text | ||
+ | * Option to search footnotes separately from the Biblical text, especially for modules with extensive footnotes, such as the NET Bible. | ||
+ | * Search for empty verses<ref>Similar to using the separate Sword utility emptyvss.exe, but restricting the search scope to within available books. e.g. For modules that are NT only</ref> | ||
− | The search should also be able to complete a search very quickly (<5 seconds). | + | The search should also be able to complete a search very quickly (<5 seconds). Typically this is done using (C)lucene indexing. |
− | |||
− | |||
Ideally the different SWORD search engines would be supported. | Ideally the different SWORD search engines would be supported. | ||
+ | |||
+ | <references /> | ||
===Usability=== | ===Usability=== | ||
− | The | + | The front-end 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. |
===Media=== | ===Media=== | ||
Line 128: | Line 142: | ||
===Module installer features=== | ===Module installer features=== | ||
− | + | ====Managing modules==== | |
* Before connecting to the Internet, warn users that their network activity might be externally monitored in countries or work locations where Christians are persecuted. | * Before connecting to the Internet, warn users that their network activity might be externally monitored in countries or work locations where Christians are persecuted. | ||
* Allow remote installation of modules from both the CrossWire website and other websites the user adds to their list. | * Allow remote installation of modules from both the CrossWire website and other websites the user adds to their list. | ||
* Predefine the CrossWire download site. | * Predefine the CrossWire download site. | ||
* Allow the user to downloaded and install zips (via the remote installer). | * Allow the user to downloaded and install zips (via the remote installer). | ||
− | * Allow local installation of modules (e.g. from a CD). | + | * Allow local installation of modules (e.g. from a CD or phone SD card). |
+ | * Install modules by drag'n'drop to the front-end application (e.g. local zip file). | ||
* Work over a proxy. | * Work over a proxy. | ||
* Automatically detect network settings. | * Automatically detect network settings. | ||
− | * Before downloading, provide the user with the size of the download so that they can decide whether to download or not. | + | * Before downloading, provide the user with the size of the download, so that they can decide whether to download or not. |
* Allow the user to cancel a download. | * Allow the user to cancel a download. | ||
* Allow the user to queue download requests. (The application may download serially or in parallel. If in parallel, should not overtax the download site or the user's machine) | * Allow the user to queue download requests. (The application may download serially or in parallel. If in parallel, should not overtax the download site or the user's machine) | ||
Line 144: | Line 159: | ||
* Downloading should be fault tolerant, not leaving an unusable module in the download location. | * Downloading should be fault tolerant, not leaving an unusable module in the download location. | ||
* Allow auto-notification of new modules. | * Allow auto-notification of new modules. | ||
− | * Allow auto-notification of | + | * Allow auto-notification of updated modules. |
* Summarize available new modules upon demand. | * Summarize available new modules upon demand. | ||
− | * Summarize available module | + | * Summarize available module updates upon demand. |
* Allow the deleting of shared and private modules. | * Allow the deleting of shared and private modules. | ||
* Hide modules that require a later release (e.g. don't show modules that require 1.5.20 when you only have 1.5.10 installed), but permit the user to unhide them. | * Hide modules that require a later release (e.g. don't show modules that require 1.5.20 when you only have 1.5.10 installed), but permit the user to unhide them. | ||
* Offer to delete obsolete modules (i.e. read every .conf, make a list of the contents of all Obsoletes entries, offer to delete any matching installed modules) | * Offer to delete obsolete modules (i.e. read every .conf, make a list of the contents of all Obsoletes entries, offer to delete any matching installed modules) | ||
− | Running | + | ====Running==== |
* Be able to be run from within a front-end and standalone. | * Be able to be run from within a front-end and standalone. | ||
− | * Make newly installed modules immediately seen by front-ends without restarting. | + | * Make newly installed modules immediately seen by front-ends without restarting [low priority]. |
− | Presentation | + | ====Presentation==== |
* Show a listing of installed modules. | * Show a listing of installed modules. | ||
* Show a listing of modules by site. (These listings of installed and available modules can be unified.) | * Show a listing of modules by site. (These listings of installed and available modules can be unified.) | ||
Line 165: | Line 180: | ||
===Other=== | ===Other=== | ||
− | * All front-ends MUST be GPLv2 licensed. | + | * All front-ends MUST be GPLv2 licensed. This should be obvious. The SWORD Project is GPLv2-licensed. All derivative works, such as front-ends 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. |
− | == Existing | + | == Existing front-ends compared == |
− | * See [[Choosing a SWORD program]] for feature by feature comparisons of existing | + | * See [[Choosing a SWORD program]] for feature by feature comparisons of existing front-end applications. |
− | == Other | + | == Other front-ends based on SWORD technology == |
:''Please report in this section details and links to third-party applications based (wholly or partially) on SWORD technology.'' | :''Please report in this section details and links to third-party applications based (wholly or partially) on SWORD technology.'' | ||
− | :''These should be | + | :''These should be front-ends that aren't otherwise featured or promoted on CrossWire pages (web or wiki).'' |
− | * [http:// | + | * [http://zogam.com/documents/cat_view/954-bible-for-computer/915-paite-e-holy-bible Paite E-Holy Bible] – Paite is spoken in parts of North East India, Burma & Bangladesh. |
[[Category:SWORD Frontends|FeatureList]] | [[Category:SWORD Frontends|FeatureList]] | ||
+ | [[Category:Bookmarks|FeatureList]] |
Latest revision as of 15:17, 10 January 2018
Contents
Cross-platform
- Runs on multiple platforms, e.g. Windows, Linux, Mac, PDA, Java ME.
- Has native installers for each platform.
- Has the appearance and behavior of a native application for each platform, current with each revision of the platform. E.g. Win98 and Vista applications have a different appearance.
Portable
USB
- Provides an installer for the portable version (or clear instructions on how to install it manually).
- Able to be run from a USB flash drive.
- Installs modules to the USB drive.
- Able to use modules installed to the USB drive.
- Able to use modules already installed to the host computer.
- Leaves no trace on the host computer. For example, no registry changes, preferences, host font installs....
- Able to be installed/copied from the USB drive to the host computer or otherwise copied to another USB drive.
CD or read-only SD cards
- Able to be run from a CD.
- Able to use modules on the CD.
- Able to be installed from CD to host computer.
- Able to install modules to host computer.
- Warns user when data is being left on the host machine.
Workflow
Today each SWORD front-end provides a different work-flow. This is good for users as it gives them the ability to choose one that works best for them.
Ideally, a SWORD front-end would allow:
- Re-arrangement of the layout of the application's areas. Including of undocking and docking of subwindows
- Removal of unwanted features.
- Plug in of new or alternate features. E.g. whiteboard collaboration, Facebook integration.
General UI features
- Bible reading
- Direct passage lookup
- Easy navigation from one book/chapter to the next/previous.
- Parallel view for Bibles and Commentaries, either side-by-side or above-and-below
- Optional synchronized scrolling for side-by-side parallel views/windows
- 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 text content of selection or whole chapter.
- Per module assignment of speech synthesis voices, or none.
- Optional continuous scrolling text with synchronized audio.
- Graphite rendering (either by direct employment of the API or via a toolkit, such as Pango, that employs it)
- Correct handling of soft hyphens (codepoint U+00AD) when used in long words, and and no-break spaces (U+00A0) where these are linguistically significant.
Module support
For bibles, the following should be able to be turned on and off (if included in the underlying module and if the front-end does not implement that feature in some other way):
- Headings (display & toggle noncanonical?)
- Cross references (display & toggle)
- Footnotes (display & toggle)
- Strong's Numbers (display & toggle)
- Morphology (display & toggle)
- Glossary links (display & toggle)[1]
- Testament and Book introductions (display & toggle, or mouseover/popup)[2]
- Toggling and/or simultaneous display of textual variants
- Toggling the display of red letters for Words of Christ
- Toggling of Hebrew cantillation (important), vowels (less important), & morpheme segmentation (important?) and of Greek accents (fairly unimportant)
- Toggling of diacritics in Arabic and related scripts (Farsi, Urdu, etc)
- Toggling of pilcrow signs (as in the KJV text)
- Parashah support for the Masoretic text
- Ruby markup for (e.g.) Japanese modules
- Alternative readings (display primary, secondary or both)
- Ketiv & Qere support for the Masoretic text[3]
Other general support requirements:
- Genbooks, dictionaries and commentaries should all be supported.
- Must be able to unlock locked modules.
- Modules using poetry with supported markup should display it as in a print Bible (i.e. with indenting)
- Modules with OSIS tables should display them properly.
- Support for modules with Alternate Versification
Notes:
- ↑ Currently in SWORD, there is no separate Global OSIS filter for OSISDictionary.
- ↑ e.g. By making use of the title attribute type="x-intro".
- ↑ Not yet supported by the SWORD API.
User resources
The front-end 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. These bookmarks should be so that they could be shared between different frontends. A Standard for bookmarks is under discussion.
User generated material should be for that user alone (on a multi-user OS), unless specified by the author for viewing by all users.
Search features
Search should have the following features:
- Option to toggle whole words for search[1]
- Option to toggle case-sensitivity for search
- Option to include/exclude punctuation characters
- Multiword search with a user-defined maximum number of intervening words
- Phrase search
- Support for editing the search term for languages that use a non-Latin writing system
- Search ranges (user definable to restrict search scope to certain books, etc.)
- Implemented for all modules, both keys and content
- Search in multiple modules simultaneously
- Search history
- Prioritized search
- Search for similar verses based on wording and on Strongs numbers
- Fuzzy search for approximate spellings[2]
- Searching for synonyms of particular words
- Wildcard and regex searches[3]
- Full Boolean searches (AND, OR, NOT, ...)
- 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)
- ICU-normalization of search strings
- Searching for words with or without accents
- Searching for words with or without ligatures
- 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.)
- Searches by collections of not just Bibles but also Commentaries, Genbooks, Dictionaries
- Search results output to the main window, not just in the search dialog[4]
- Option to include/exclude alternative readings (textual variants) during search of Biblical text
- Option to search footnotes separately from the Biblical text, especially for modules with extensive footnotes, such as the NET Bible.
- Search for empty verses[5]
The search should also be able to complete a search very quickly (<5 seconds). Typically this is done using (C)lucene indexing.
Ideally the different SWORD search engines would be supported.
- ↑ The default should be match for whole words (i.e., a search for 'eat' doesn't match verses with 'meat')
- ↑ e.g. Search KJV for Tarshish should also find Tharshish in 1 Kings 10:22, 22:48, 1 Chronicles 7:10
- ↑ e.g. To find all phrases that begin or end with a certain word.
- ↑ To allow for saving search results as a "verse list" and utilizing all the features available (such as cross-references and dictionary lookup)
- ↑ Similar to using the separate Sword utility emptyvss.exe, but restricting the search scope to within available books. e.g. For modules that are NT only
Usability
The front-end 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.
Media
Front-end capability to provide multimedia additions to modules.
- Pictures (image modules or even integrated illustrations)
- Audio recordings (important for many cultures)
- Video clips (we live in the YouTube generation)
Module installer features
Managing modules
- Before connecting to the Internet, warn users that their network activity might be externally monitored in countries or work locations where Christians are persecuted.
- Allow remote installation of modules from both the CrossWire website and other websites the user adds to their list.
- Predefine the CrossWire download site.
- Allow the user to downloaded and install zips (via the remote installer).
- Allow local installation of modules (e.g. from a CD or phone SD card).
- Install modules by drag'n'drop to the front-end application (e.g. local zip file).
- Work over a proxy.
- Automatically detect network settings.
- Before downloading, provide the user with the size of the download, so that they can decide whether to download or not.
- Allow the user to cancel a download.
- Allow the user to queue download requests. (The application may download serially or in parallel. If in parallel, should not overtax the download site or the user's machine)
- Show the progress of the download.
- Allow downloading to a shared location.
- Allow downloading to a private location.
- Downloading should be fault tolerant, not leaving an unusable module in the download location.
- Allow auto-notification of new modules.
- Allow auto-notification of updated modules.
- Summarize available new modules upon demand.
- Summarize available module updates upon demand.
- Allow the deleting of shared and private modules.
- Hide modules that require a later release (e.g. don't show modules that require 1.5.20 when you only have 1.5.10 installed), but permit the user to unhide them.
- Offer to delete obsolete modules (i.e. read every .conf, make a list of the contents of all Obsoletes entries, offer to delete any matching installed modules)
Running
- Be able to be run from within a front-end and standalone.
- Make newly installed modules immediately seen by front-ends without restarting [low priority].
Presentation
- Show a listing of installed modules.
- Show a listing of modules by site. (These listings of installed and available modules can be unified.)
- Classify modules by content type (Bibles, Commentaries, Daily Devotionals, ...)
- Classify modules by language, using full, localized language names, not codes.
- Allow the user to filter modules so that they see only the one's they want. (E.g. Only English, Greek and Hebrew and no Glossaries)
- Have a search facility to find modules of interest.
- Show the parts of the conf meant for users.
Other
- All front-ends MUST be GPLv2 licensed. This should be obvious. The SWORD Project is GPLv2-licensed. All derivative works, such as front-ends 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.
Existing front-ends compared
- See Choosing a SWORD program for feature by feature comparisons of existing front-end applications.
Other front-ends based on SWORD technology
- Please report in this section details and links to third-party applications based (wholly or partially) on SWORD technology.
- These should be front-ends that aren't otherwise featured or promoted on CrossWire pages (web or wiki).
- Paite E-Holy Bible – Paite is spoken in parts of North East India, Burma & Bangladesh.