Each days thousands of web pages are posted that include references to Bible verses. A simple query against Technorati for blogs that include the tag "bible" turns up thousands of result. So clearly there are lots of Bible references out there.
Wouldn't it be great if you could:
- search for web pages that reference particular passages you're interested in
- find how often specific chapters or verses are mentioned across the web
- avoiding finding pages whose contents mistakenly resemble a Bible reference
There are lots of possibilities, but unfortunately it's not easy to identify what is (and isn't) a Bible reference. The various ways of representing Bible references in text, while sensible in their context when read by humans, often either don't look like references, or overlap with other things that do look like references (but aren't). Some of the problems:
- People use a wide variety of different abbreviations for book names: 2 Timothy, 2Tim (with or without a period), 2nd Timothy, IITim, etc.
- Things that aren't Bible references can look like one to a search engine. For example, "Mark 1" (the first chapter of the Gospel According to Mark) is also a World War I tank, a type of British railway carriage, and one of the first large-scale computers (the Harvard Mark I).
- Languages other than English use their own names for Biblical books: in French, Jean 3:16, in Spanish, Juan 3:16; etc. This makes it hard to find references from outside one's own linguistic community.
Once a span of text is identified as a Bible verse, it can usually be automatically parsed to identify the book, chapter, and verse. So the most important change, which addresses most of the problem, is simply to label Bible references. Existing web standards allow it, and existing editing and blogging tools generally make it easy. The missing pieces are willingness to do it and agreement on an approach.
Bibleref requires nothing beyond standard HTML markup (or "plain old semantic HTML") to accomplish the goal of unambiguously identifying Bible references. The heart of the approach is simply to include the identifier 'bibleref' in a class attribute.
In certain cases, the intended reference may not be clear, either because it is expressed in prose that would be hard to parse, or because it relies on context. In these cases, the additional requirements is to specify the reference in the title attribute. This is not required if the reference is clear (though it is allowed).
The reference should be as specific as necessary to capture the author's intent, but chapter and verse references are not required. For example, given the text "... Mark 4 contains the parable of the sower, as well as it's interpretation...", the intended reference does not include any verse numbers, and they are not required.
This overview provides an informal description of the most common cases: see the specification for details.
Citing a Verse (Without Hyperlink)
Add a cite tag with class attribute bibleref.
Citing a Verse (With Hyperlink)
Add a class attribute bibleref to the a element that indicates the hyperlink.
Citing a Verse, Using the title Attribute to Specify the Reference
If the enclosed text does not clearly identify the intended reference, a full reference should be given in the title attribute. The format is flexible, and most common formats should work: see the bibleref specification for details. As many information elements should be included as necessary to capture the author's intent (optional translation identifier, book, chapter, and verse).
In <cite class="bibleref" title="2Tim 2:15">Paul's second epistle to Timothy, the second chapter and the fifteenth verse</cite>, we see ...
Chapter 2 of 2Timothy contains Paul's encouragement to his young assistant ... the "word of truth" in <cite class="bibleref" title="2Tim 2:15">verse 15</cite> refers to ...
<cite class="bibleref" title="ESV 2Tim 2:15">the ESV's translation of 2Tim 2:15</cite>
- OpenBible.info contributed several helpful ideas.
- Several details were clarified by Chris Roberts' implementation of a bibleref page processor.