[sword-devel] What is a Sword module?

Brian J. Dumont bdumont at ameritech.net
Sun Nov 7 17:15:56 MST 2010

Hi Robert,

I hope I can shed a little bit of light here.  First of all, I'm not a
programmer, so I'm simply commenting as someone who makes modules and
has been listening for 6 or so years.  I think part of the reason the
answers are confusing is that the question is not precise.

There are "normal ways" of using SWORD project tools.  These things
ought be documented.  We've been working on creating more wiki pages and
expanding those that exist.  We truly want it to be fairly convenient to
learn to add content.  So the use of tools to do these things are
intended to be documented.  This includes tools like osis2mod, xml2gbs,
imp2vs, etc.  This also includes the documentation of the files that
these programs like to read, such as OSIS, ThML, TEI, imp, etc.

The internals, including the file formats (as they sit on the installed
computer's hard disk) are not something that most people need to get
into.  To combat the actual or perceived ability to extract copyrighted
material out of these files, there is an intention to keep some things
vague.  Unless you're contributing to the guts of the code, you probably
don't need documentation of that sort.

It seems to me that you're approaching the understanding in a very
difficult manner.  I'd suggest starting simply.  Take a very well
documented thing, and try to reproduce it.  For instance, you could take
the KJV, rename it, and make a module from it.  You can get the OSIS
source here:


Once you get that down, you can start your own project.  If you want
sample public domain commentaries or general books, I could supply
them.  (I don't have any dictionary input files, but I'm sure someone
would donate them).

FYI, USFM is only supported in a round about way.  The preferred format
for Bibles and Commentaries is OSIS.  Genbooks have the best support via
ThML, although OSIS is also a reasonable choice there, too.  You can
find much documentation on the wiki:

If you want to get into the programming end of things, I'd suggest you
pick something that interests you (whether it be library or frontend),
find a bug, and go ahead working to fix it.

Hope this helps,

On 11/07/2010 06:02 PM, Robert Hunt wrote:
> Hi Brian,
>     Actually, I've been trying to play with Sword software and modules
> in order to gain understanding of how the whole system works, but I've
> found it very hard to break into.
>     Concerning module formats, I found DM's reply very confusing! "The
> only documentation that will be provided is the code itself. It is not
> commented very well. This is deliberate. It is not commented very
> well. That is not deliberate;) All the code is readily available."
>     As a way of learning, I have tried to make a module from a USFM
> source but haven't got it working yet.
>     I guess I haven't really grasped the "Crosswire/Sword" culture at
> all yet. :(
> Robert.
> On 05/11/10 23:29, Brian J. Dumont wrote:
>> On 11/04/2010 08:47 PM, Robert Hunt wrote:
>>> Looking at http://crosswire.org/wiki/Main_Page (and elsewhere), I
>>> don't see any documentation for the Sword module format. Is it
>>> documented anywhere other than in the code or by dissecting a module?
>> I've read your post differently than others.  Are you looking for how to
>> make a new module?  If so, the answers are quite different from those
>> that you've gotten so far.
>> The basic story is that it depends to some degree on what type of module
>> you want to make (Bible, Commentary, GenBook, Dictionary).  This will
>> decide the possible file formats that you could use.
>> If this is actually what you're trying to ask, please let us know what
>> type of module you'd like to make and what type of source you're
>> starting with.

More information about the sword-devel mailing list