[jsword-devel] JSword Help Wanted?

DM Smith dmsmith555 at yahoo.com
Sun Jul 20 14:54:12 MST 2008

On Jul 20, 2008, at 3:29 PM, Adam Thomas wrote:

> Hello, I have been considering contributing  to the JSword project  
> for some time, but based on looking at the development mailing list  
> archives it appears that very few bugs and enhancements are flowing  
> in.

I'm working on getting 1.0.8 out the door. After that the major  
enhancement will be what I have referred to the Elephant release. It  
will add all kinds of persistence to the application. Search for  
Elephant in jsword-devel to get a description. I won't repeat it here.

After the Elephant release we'll move on to 2.0.

> Most of the messages are other projects which use JSword, announcing  
> their new releases. What bugs do come in appear to be immediately  
> resolved by DM Smith.

I hope that is a compliment. I really don't want to stifle  
contributions. There's a lot that can be done.

You are welcomed to figure out what would make the program more useful  
to you, discuss it here and after getting consensus, make the change.

Where I started was to find bugs, report them and fix them. That  
helped me understand how the code is laid out.

> I also am unable to view feature requests on the bug tracking  
> system, as it appears to be down now.

It is down indefinitely. I am trying to bring it back up.

> The bottom line is there appears to be very little development work  
> to be done from my perspective as an outsider. My question is, could  
> this project use my Java skills, or is JSword pretty much in  
> maintenance mode or doing fine with the current developer staff? If  
> my skills can be utilized, where are the feature requests and bugs  
> located so that I can get working?

Just to name a few needs/wants:

The various "Backends" that understand how the books (module) are laid  
out need to have the ability to write a book. The first one that needs  
to be done is the raw driver for Bibles. Once this one is done, BD can  
be changed to allow editing of the Personal Commentary. (The personal  
commentary is nothing than verse by verse notes.)

In Parallel view, we need to be able to have a font per column.  
(Currently parallel view is driven by the first book's settings. ) We  
already have the ability to define fonts per language and per book, as  
well as globally. We just need to pass those into the xslt and use them.

In Parallel view, we need search to search all the books being viewed  
that are indexed. We also need a way to allow for a user to index the  
books that are being viewed in parallel. I think for the time being,  
the result should be unified.

We need a way to highlight the hits of a resulting search request.  
(Lucene has some highlighter code in contrib that might be useful.)

XSLT handling that's in BibleDestop needs to be refactored into Common  
or JSword, (probably common).

In Ant, we need a way to conditionally run NSIS based upon whether it  
is present.

The search engine needs a significant improvement in the handling of  
non-ascii text. Currently we index the text exactly as we get it. We  
need to also strip the accents/diacritics off and store that as well.  
In BibleDesktop, we need an "Advanced Feature" to expose that. It  
might be good to search both, meaning that the search request is  
normalized to not have accents. It may also be good to store  
transliterations. (E.g. romanizations of Chinese, Greek in English  
characters, ...)

JSword should have the ability to remove cantillation from Hebrew  
text. BD should make it available.

JSword should have the ability to remove accents from Hebrew and Greek  
text. BD should make it available.

JSword should have the ability to transliterate in the same way that  
Win Sword does. BD should make it available.

In BD, dictionaries are pretty useless (except for Strong's and  
Robinson's). We need a way to have a user right click on a word and  
get a popup of things about that word and things that they can do. One  
would be to grab the word's definition from their preferred  
dictionary. It would also be good to put Strong's Numbers and  
Morphology in to the popup, whether they are showing.

For search, there are some things that can be done:
* Add an advanced feature to expose searching Notes.

* Add an advanced feature to expose searching Cross References. (I.e.  
what are all the verses that refer to a particular verse)

* Add an advanced feature to expose searching of Strong's Numbers.

* Add find similar. Ideally, the user would either highlight text and  
right click on it. Or right click in a verse and the popup would  
search for similar verses.

* Add synonym/thesarus searching (contrib work is being done on this  
in Lucene)

* Add the ability to search Strong's and Morphology at the same time  
on a word/phrase basis. (This one is hard.)

For the book installer:
Re-write as a standalone program, preferably using RCP/SWT/JFace  
rather than Swing.

Add a unified view of the books from a download site, showing what is  
installed, available to install and available as an update. The  
installer should also note when a module is more recent than what is  
available from a download site. This happens when the module is in beta.

Add an option to check for updated modules automatically, providing a  
simple popup with the option to download them by checking them off  
from the list.

Allow the user to show/hide languages that they are not interested in.  
There should be some kind of feedback that not all are showing (E.g.  
"Showing 27 of 350 available modules")

The installer should be able to download a zip file directly by URL.

The installer should be able to list installed books that are not  
available at any download site. On occasion there are modules that are  
removed from CrossWire. Some users make available other books that one  
might install as a zip file.

The installer needs to have the ability to download via FTP (the code  
is in limbo right now. It should work). If downloading via zip does  
not work, it should fall back to FTP.

Add a way that the user can filter by book feature. (e.g. show the  
books that have strong's numbers, show ThML encoded books,  ...).

Hopefully something here will be of interest or be a springboard for  
an idea of your own.

Working together for Christ's Kingdom,
	DM Smith

More information about the jsword-devel mailing list