Difference between revisions of "Whiteboard/PersistentKeyList"

From CrossWire Bible Society
Jump to: navigation, search
(Search Restrictions: PersistentKeyList)
m (changed section levels)
Line 1: Line 1:
=  '''Goal:'''  =
+
==  '''Goal:'''  ==
 
Robust definition of a persistent key list that could be used for:
 
Robust definition of a persistent key list that could be used for:
 
* Bookmarks
 
* Bookmarks
Line 11: Line 11:
 
(The name "Persistent Key List" might not be a good choice.)
 
(The name "Persistent Key List" might not be a good choice.)
  
= '''Definitions:''' =
+
== '''Definitions:''' ==
  
 
(Please correct if you have a better definition)
 
(Please correct if you have a better definition)
Line 33: Line 33:
 
'''VerseList:''' A list of References with a Topic as the Key
 
'''VerseList:''' A list of References with a Topic as the Key
  
= '''Use Cases:''' =
+
== '''Use Cases:''' ==
==Bookmarks==
+
===Bookmarks===
 
The purpose of a bookmark is for a user to get back to a particular place in a book, or module in our case.
 
The purpose of a bookmark is for a user to get back to a particular place in a book, or module in our case.
 
The user can save and recall a particular view, potentially a parallel view, of modules.
 
The user can save and recall a particular view, potentially a parallel view, of modules.
Line 43: Line 43:
 
Different applications may have different options.
 
Different applications may have different options.
  
==Search Results==
+
===Search Results===
 
A search request is applied to a module, resulting in some number of hits. Some SWORD applications allow for parallel searching of multiple modules.
 
A search request is applied to a module, resulting in some number of hits. Some SWORD applications allow for parallel searching of multiple modules.
  
 
Saving a search result stores the module(s) being searched, the options in effect when performing the search, the version of the index, and the actual results. It might not be necessary to actually store the results as they can be re-computed, if the modules have not been deleted.
 
Saving a search result stores the module(s) being searched, the options in effect when performing the search, the version of the index, and the actual results. It might not be necessary to actually store the results as they can be re-computed, if the modules have not been deleted.
  
==Topic Tagging==
+
===Topic Tagging===
 
A topic consists of entries identified by key which pertain to the topic. A topic might be broken down into sub-topics. It is reasonable for a topic to contain references from multiple modules, such as Bibles and commentaries.
 
A topic consists of entries identified by key which pertain to the topic. A topic might be broken down into sub-topics. It is reasonable for a topic to contain references from multiple modules, such as Bibles and commentaries.
  
Line 55: Line 55:
 
* The definition of a key list is recursive: It can contained named key lists.
 
* The definition of a key list is recursive: It can contained named key lists.
  
==Study Notes, Comments and Other Annotations==
+
===Study Notes, Comments and Other Annotations===
 
An entry, portion of an entry, a search request or a collection of entries can be provided a note/comment/annotation (different words for the same idea). There can be any number of these for an entry. They can also overlap.
 
An entry, portion of an entry, a search request or a collection of entries can be provided a note/comment/annotation (different words for the same idea). There can be any number of these for an entry. They can also overlap.
  
Line 64: Line 64:
 
* Location within a key can be provided.
 
* Location within a key can be provided.
  
==History Navigation==
+
===History Navigation===
 
Essentially history navigation is a matter of going forward or back in a list of bookmarks. It might also allow the selection of a particular bookmark.
 
Essentially history navigation is a matter of going forward or back in a list of bookmarks. It might also allow the selection of a particular bookmark.
  
==Application State==
+
===Application State===
 
Application state is much more complex than just bookmarking all the module views of the application. But bookmarking each view goes a long way toward that.
 
Application state is much more complex than just bookmarking all the module views of the application. But bookmarking each view goes a long way toward that.
  
==Search Restrictions==
+
===Search Restrictions===
 
Most (all?) SWORD applications allow search to be restricted to a particular set of keys. A key list should be able to be used for that.
 
Most (all?) SWORD applications allow search to be restricted to a particular set of keys. A key list should be able to be used for that.
  
 
[[Category:Development tools|PersistentKeyList]]
 
[[Category:Development tools|PersistentKeyList]]

Revision as of 10:31, 4 December 2009

Goal:

Robust definition of a persistent key list that could be used for:

  • Bookmarks
  • Saving search results
  • Topic Tagging
  • Study notes, comments and other annotations
  • History navigation
  • Application state restoration
  • Search Restrictions

(The name "Persistent Key List" might not be a good choice.)

Definitions:

(Please correct if you have a better definition)

Key: Unique string used to locate content in a file or data structure e.g. Topic, Reference, Date, Word or Strong's number

Reference: Key used to access verse content in a Bible module, usually in format: <book>\s<chapter>:<verse> e.g. "Gen 1:2"

Range (Ref.): Key used to access a contiguous set of verses usually of the format: <book>\s<chapter>:<verse>[\-[<book>\s]<chapter>:]<verse> e.g. "Gen 1:1-3" or "Gen 1:1-3:1"

Verse: Content retrieved from a Bible using a single Reference. e.g. "In the beginning..."

Passage: Content of a contiguous set of Bible verses using a Range as the Key. e.g. "In the beginning... ...God said it was good".

Bookmark: An N-tree hierarchical structure where nodes can be either a Topic or a Reference

VerseList: A list of References with a Topic as the Key

Use Cases:

Bookmarks

The purpose of a bookmark is for a user to get back to a particular place in a book, or module in our case. The user can save and recall a particular view, potentially a parallel view, of modules. The recollection of a bookmark would produce exactly the same view.

Saving a bookmark involves remembering the module(s) being viewed, the options that are in effect and the keys that are being shown. It might also involve remembering a particular location in the key list so that proper scrolling can be restored.

Different applications may have different options.

Search Results

A search request is applied to a module, resulting in some number of hits. Some SWORD applications allow for parallel searching of multiple modules.

Saving a search result stores the module(s) being searched, the options in effect when performing the search, the version of the index, and the actual results. It might not be necessary to actually store the results as they can be re-computed, if the modules have not been deleted.

Topic Tagging

A topic consists of entries identified by key which pertain to the topic. A topic might be broken down into sub-topics. It is reasonable for a topic to contain references from multiple modules, such as Bibles and commentaries.

The main features needed here are:

  • Each key list can be named and the name is used as the topic.
  • The definition of a key list is recursive: It can contained named key lists.

Study Notes, Comments and Other Annotations

An entry, portion of an entry, a search request or a collection of entries can be provided a note/comment/annotation (different words for the same idea). There can be any number of these for an entry. They can also overlap.

The main features needed here are:

  • A key list allows duplicates.
  • Entries in a key list can be simple (e.g. a single key) or complex (e.g. a range of keys).
  • Each entry can be annotated.
  • Location within a key can be provided.

History Navigation

Essentially history navigation is a matter of going forward or back in a list of bookmarks. It might also allow the selection of a particular bookmark.

Application State

Application state is much more complex than just bookmarking all the module views of the application. But bookmarking each view goes a long way toward that.

Search Restrictions

Most (all?) SWORD applications allow search to be restricted to a particular set of keys. A key list should be able to be used for that.