[jsword-devel] blurring (was: Updates)

Joe Walker joe at eireneh.com
Fri Jul 9 01:17:48 MST 2004


DM Smith wrote:
> I have applied your changes w/o a problem. And I like what I see. I have 
> been giving some thought about passage and I was thinking that it was 
> redundant with KeyList. And I noticed that there were places in the code 
> that knew or assumed a book was a Bible and would have been more useful 
> if it did not. I see that you are working on these changes. Kudos.

Question on blurring:
There are some things that a Passage can do that don't have the same 
meaning.

For example a passage can be 'blurred' to turn Gen 4:3 into Gen 4:2-4
You can choose the number of verses to blur by and that boundaries to 
respect. So
[Gen 4:3].blur(5, RESTRICT_CHAPTER) = Gen 4:1-8
[Gen 4:3].blur(5, RESTRICT_NONE) = Gen 3:22-Gen 4:8

And both forms are useful. The former is good in getting the whole 
chapter that a verse is in, the latter is useful in doing fuzzy match 
searching.

But a dictionary doesn't necessarily have the same concepts, so the API 
for Key is just blur(n) rather than blur(n, type).

So the current way of doing things separates Passages (in the Bible) 
from generic Keys into Books.

My preferred way of merging at the moment is to make the API on Key the 
same as on Passage and then have the type being a number 1-10 and 
defining several types:

RESTRICT_NONE = 10
RESTRICT_SECTION = 6 (a.k.a. RESTRICT_BOOK)
RESTRICT_SUBSECTION = 3 (a.k.a RESTRICT_CHAPTER)
RESTRICT_DETAIL = 1

And allow other Key providers to define the different levels as they see 
fit.
Is 1-10 enough? Maybe we ought to use a byte and use 0-127 which might 
be cleaner. Or a float and have 0.0 - 1.0?

Joe.




More information about the jsword-devel mailing list