[sword-devel] GenBook osisID and URIs

Chris Little chrislit at crosswire.org
Tue May 13 17:40:58 MST 2008



Manfred Bergmann wrote:
> MacSword uses the following schema for URLs:
> 
> sword://[<FilterOption[&<FilterOption]@]<ModuleShortName>/<Key|KeyRange>
> 
> This is how I found it.
> I'm open to implement a standard if this has been besided.

What would you think of putting filter options in the query segment of 
the URI?

An URI is broken up roughly like this:

<protocol>://<authority>/<path>?<query>#<fragment>

Presumably Sword can throw away everything up to the first ':' and then 
cut extract:

1) Everything between the first '//' and the first subsequent '/', '?', 
or '#' represents the module short name(s).

2) Everything between the first '/' following this and the first 
subsequent '?' or '#' represents the key(s).

3) Everything between the first '?' following this and the first 
subsequent '#' represents commands to the application, like filter options.

4) Everything after the first '#' following this can represent subparts 
within the entry retrieved. We could use this to scroll within a long 
entry to anchor points, just like in HTML usage. Or we could just ignore 
this part of the URI and no implement it.


If a part of the URI is missing, we should try to interpret what IS 
present. I.e. if there is no module spcified (sword:/Gen%201.1/) try to 
parse it as a key. (Presumably this would just apply for Bible 
references. I don't think we can guess which lexicon or GenBook a random 
key belongs to, but we can always interpret Bible references an apply to 
the default or current Bible.) If the key is missing, you can use the 
URI to switch module and/or set filter options.

--Chris



More information about the sword-devel mailing list