[sword-devel] The relative order of osisID and sID in chapter/verse milestones

David Haslam dfhmch at googlemail.com
Fri Jan 8 12:11:28 MST 2016


The order of attributes within any XML element is immaterial as far as how
XML is used by computers.

Even so, it makes a significant difference to the readability of OSIS XML to
human beings.
Improving readability can bring further practical benefits.

Our SFM to OSIS converters (usfm2osis.py & .pl) have always generated the
chapter and verse start milestone with osisID before sID.

To my way of thinking this is less than ideal.

Call it a personal preference if you like, but I think it's more "logical"
for sID to come before osisID.

The main advantage is that when the XML is suitably "prettified", most of
the sID milestones align much better with the eID milstones.  e.g.

					<verse sID="Gen.9.8" osisID="Gen.9.8" n="8"/>A dyma Duw yn dweud wrth
Noa a'i feibion,
					<verse eID="Gen.9.8"/>
					<verse sID="Gen.9.9" osisID="Gen.9.9" n="9"/>“Dw i am wneud ymrwymiad i
chi a'ch disgynyddion,
					<verse eID="Gen.9.9"/>

When this kind of symmetry is preserved it also makes things easier for
debugging conversion and postprocessing scripts.

The symmetry is even more clearly desirable when faced with a verse range.
e.g.

					<verse sID="Num.13.4-15" osisID="Num.13.4 Num.13.5 Num.13.6 Num.13.7
Num.13.8 Num.13.9 Num.13.10 Num.13.11 Num.13.12 Num.13.13 Num.13.14
Num.13.15" n="4-15"/>Dyma'u henwau nhw:
......
					<verse eID="Num.13.4-15"/>

If you know that sID is the first attribute in the verse element, it should
make it easier to design postprocessing scripts, such as those needed to fix
references.

It's also more sensible to keep sID and eID to this shorter form, rather
than the verbose form that is currently generated by usfm2osis.py for such
verse ranges, in which the sID is a copy of the osisID.

That's one of the aspects in which u2o.py is an improvement over
usfm2osis.py

That's the rationale - I hope everyone approves.
I've not thought of any strong argument against it.

I have already made this change in my working copy of u2o.py (provisionally
called u2o2.py).
[As yet, I'm not working on a github fork.]

And yes, I have adjusted ALL the other parts of the script that used
expressions like 
					lines[i].startswith('<verse osisID')
as part of the subsequent decision making.

Finally (btw) having sID before osisID also matches what we documented in
our wiki page for OSIS Bibles.

http://www.crosswire.org/wiki/OSIS_Bibles#Body

Best regards,

David 




--
View this message in context: http://sword-dev.350566.n4.nabble.com/The-relative-order-of-osisID-and-sID-in-chapter-verse-milestones-tp4655662.html
Sent from the SWORD Dev mailing list archive at Nabble.com.



More information about the sword-devel mailing list