[sword-devel] Linking to General Books
chrislit at crosswire.org
Mon Oct 19 15:42:03 MST 2009
Brian J. Dumont wrote:
> Thanks very much for the response. So if I understand you correctly, a
> proper reference to the module Concord at key:
> /The Smalcald Articles/Preface of Dr. Martin Luther
> would be written as:
> ... even though the filters might need to catch up with me.
> Is that correct? I've already checked and it does indeed validate, but
> of course it doesn't work. Is this reliable enough to add to the wiki?
This osisRef adds an additional escaping protocol (%xx) on top of what
is already permitted by OSIS. It's legal to do that, but it means that
we're defining non-standard protocols, which we shouldn't expect to see
work outside of our implementation of the standard. We also shouldn't
expect to see anyone else encoding in this manner (unless they're
copying us or our documentation). I don't see that there is anything to
be gained from extending the standard in this way, though.
The simplest way to encode the Sword TreeKey:
/The Smalcald Articles/Preface of Dr. Martin Luther
<reference osisRef="Concord:The\ Smalcald\ Articles.Preface\ of\ Dr\.\
Filters should translate this to:
The differences between my osisRef and yours are:
1) Spaces are encoded as "\ " (that's a 0xA0, not 0x20) instead of "%A0".
2) The parts of the ref are divided by "." instead of "\\".
3) The "." in "Dr." is escaped as "\." since it's not intended to divide
parts of the ref.
Ideally, osisRefs should point at references using a standard reference
scheme. Obviously that won't exist for every work, but I suspect there
is a standard reference scheme for the Book of Concord. I find a
description of a simple & compact reference scheme at
http://bookofconcord.org/abbreviations.php, though I don't know if it is
necessarily standard. So the best solution is probably to recode the
keys of Concord to employ IDs like "Concord:SA.Preface", but you may not
want to go to the trouble of doing that.
More information about the sword-devel