[sword-devel] GenBook osisID and URIs

DM Smith dmsmith555 at yahoo.com
Tue May 13 08:46:42 MST 2008


We've got a discussion going on jsword-devel regarding how to represent 
custom URLs for sword that will work in a browser. I know GnomeSword and 
MacSword have such a facility.

I'd like to get some input here that I can reply with to jsword-devel.

I seemed to recall that the general consensus is that we should use 
sword:// as the protocol, but I am seeking advice on what should follow, 
especially for GenBooks.

IIRC, what we were thinking was that it should be 
protocol://osisRef(,osisRef)*

But that poses problems when one wants to specify the work because the 
definition of a URI doesn't allow : for this use.
e.g. sword://KJV:Gen.1.1-Gen.1.3,KJV:Gen.2.9

OSIS allows the workID to contain letters, digits and the _ and osisIDs 
have parts separated by '.', where the parts can contain anything except 
spaces.

So the question is what to substitute for the ':' ?
I'm thinking of (workID) as in sword://(KJV)Gen.1.1-Gen.1.3,(KJV):Gen.2.2

And how would one specify, a parallel request?

I'm thinking of the following:
protocol://(workID(,workID)*)?osisRef(,(workID(,workID)*)?osisRef)*
e.g. sword://(KJV,ESV)Gen.1.1-Gen.1.3,(KJV,ESV):Gen.2.2

The next part of the question relates to the proper representation of a 
GenBook key as an osisID.

If we understand '.' as OSIS's hierarchical separator, e.g. Gen.1.1 is 
Book -> Chapter -> Verse, then a GenBook with a hierarchy to a node of A 
-> B -> C would be "A.B.C"
The problem is that in a GenBook, the key is generally a title, with 
spaces and possibly periods. I was thinking a simple substitution of _ 
for spaces and something else, perhaps '/' for periods.
But _ and / are valid in a osisID.

Here is an example from Josephus (with '.' added for purposes of this 
discussion)
workID = Josephus

The War of The Jews. -> Book 1. -> Chapter 2. -> Section 3.

Possible osisID:
Josephus:The_War_of_the_Jews/.Book_1/.Chapter_2/.Section_3/

While osisIDs use '.' as a path separator, URIs use '/'. So would one 
change do the swap of '.' and '/' when representing the osisID as a URI?
e.g.
(Josephus)The_War_of_the_Jews./Book_1./Chapter_2./Section_3.

And if we do that what about Bible references, would they become 
sword://(KJV)Gen/1/1 ? (I don't think that makes sense)

Thanks in advance!

In Him,
    DM






More information about the sword-devel mailing list