{"id":25,"date":"2007-08-23T10:49:55","date_gmt":"2007-08-23T14:49:55","guid":{"rendered":"http:\/\/www.openbible.info\/blog\/2007\/08\/experimental-interface-for-browsing-chapters-in-the-bible\/"},"modified":"2016-02-06T11:18:12","modified_gmt":"2016-02-06T15:18:12","slug":"experimental-interface-for-browsing-chapters-in-the-bible","status":"publish","type":"post","link":"https:\/\/www.openbible.info\/blog\/2007\/08\/experimental-interface-for-browsing-chapters-in-the-bible\/","title":{"rendered":"Experimental Interface for Browsing Chapters in the Bible"},"content":{"rendered":"<p><a href=\"https:\/\/www.openbible.info\/labs\/browse-books\/\">Try it out<\/a>. (It works best in Firefox with at least a 1000-pixel-wide screen.)<\/p>\n<h3>Screenshots<\/h3>\n<p><img loading=\"lazy\" src=\"https:\/\/a.openbible.info\/blog\/2007-08-browse.png\" width=\"500\" height=\"240\" alt=\"A grid of Bible books divided into columns and rows.\" \/><br \/>\nA half-size (non-interactive) image of the interface.<\/p>\n<p><img loading=\"lazy\" src=\"https:\/\/a.openbible.info\/blog\/2007-08-ps23.png\" width=\"400\" height=\"239\" alt=\"A closeup of the mouse cursor hovering over Psalms, with the title of Psalm 23 appearing below.\" \/><br \/>\nHovering toward the left side of the Psalms shows you the title of Psalm 23.<\/p>\n<p><img loading=\"lazy\" src=\"https:\/\/a.openbible.info\/blog\/2007-08-ps121.png\" width=\"400\" height=\"239\" alt=\"A closeup of the mouse cursor hovering over Psalms, with the title of Psalm 121 appearing below.\" \/><br \/>\nHovering toward the right of the Psalms shows you the title of Psalm 121.<\/p>\n<h3>Background<\/h3>\n<p>One challenge of developing a hierarchical Bible interface (going from books to chapters to verses) is the sheer number of options: 66 books = 1189 chapters = over 30,000 verses. Obviously you\u2019re not going to show someone 30,000 (or even 1189) choices all at once; you need to prune the display somehow.<\/p>\n<p>Often the approach taken by Bible interface designers is to divide the Bible into testaments (Old and New), then books, and finally chapters. This screenshot of the NET Bible iPhone application is typical of this approach:<\/p>\n<p><img loading=\"lazy\" src=\"https:\/\/a.openbible.info\/blog\/2007-08-net-iphone.jpg\" width=\"373\" height=\"544\" alt=\"The Old Testament and New Testament appear as options on the iPhone, with arrows indicating to tap to browse further in the hierarchy.\" \/><br \/>\nTapping either the \u201cOld Testament\u201d or \u201cNew Testament\u201d option leads to a list of books in that Testament, which leads to a list of chapters in each book, which leads to the text of the chapter. (This image comes from the blog This Lamp, where Rick Mansfield has the enviable job of <a href=\"http:\/\/homepage.mac.com\/rmansfield\/thislamp\/files\/tag-iphone.html\">reviewing Bible iPhone applications<\/a>.)<\/p>\n<p>One limitation with this approach is that the design has to accommodate the wide range of chapter counts in the Bible\u2014from single-chapter books to the 150 Psalms. This variety makes certain kinds of interfaces hard to use. The NET approach above scales pretty well, though I wouldn\u2019t look forward to all the scrolling needed to reach <a href=\"http:\/\/www.gnpcb.org\/esv\/search\/?q=Ps+150\" class=\"bibleref\">Psalm 150<\/a>.<\/p>\n<p>There\u2019s nothing inherently wrong with this approach, however, especially if you think hierarchically. But I\u2019m always eager to explore alternative interfaces that simplify things for at least some people.<\/p>\n<p>Before I get into the specifics, I want to acknowledge an Ajaxian article on the <a href=\"http:\/\/ajaxian.com\/archives\/mac-web-gallery-on-prototype\">.Mac Web Gallery<\/a> as the inspiration for this interface.<\/p>\n<h3>How It Works<\/h3>\n<p>My goals with this project were:<\/p>\n<ol>\n<li>Expose the book\/chapter hierarchy in the Bible without creating a deep hierarchical interface.<\/li>\n<li>Provide more information than simply the chapter numbers for each book.<\/li>\n<\/ol>\n<p>The result is a 1000&times;479-pixel grid. Books appear in color-coded columns based roughly on genre. Similar books (e.g., 1 and 2 Samuel) appear next to each other to minimize the vertical space required for the display.<\/p>\n<p>The size of each book\u2019s rectangle generally corresponds to the book\u2019s length. The New Testament takes up about three times as much space as it should when compared with the Old Testament. A New Testament at the same scale as the Old would be too small to be workable. People tend to read the New Testament more than the Old, anyway, so it probably makes sense to enlarge it, though perhaps not as much as I\u2019ve done here.<\/p>\n<p>Behind the scenes, a script vertically divides each box into the number of chapters in the book. Genesis, for example, has fifty vertical slices, one for each of its fifty chapters. Hovering over one of these slices shows all the headings contained in that chapter. Moving to the left shows you the headings for the previous chapter, while moving to the right shows the headings for the next one. Clicking a slice takes you to that chapter in the ESV Bible.<\/p>\n<p>This interface lets you discover a lot of information with minimal effort:<\/p>\n<ul>\n<li>The order of the books in the Bible.<\/li>\n<li>Genre groupings.<\/li>\n<li>The rough size of each book compared with other books.<\/li>\n<li>The number of chapters in each book.<\/li>\n<li>The subjects of each chapter.<\/li>\n<li>An overview of a book\u2019s subjects if you flip through the book quickly.<\/li>\n<li>The text of the chapter if you click.<\/li>\n<\/ul>\n<h3>The Code<\/h3>\n<p>Concerning the code and markup, the page is valid XHTML 1.0 Strict, with a preponderance of ids as hooks for the Javascript but otherwise pretty clean. The Javascript is <a href=\"http:\/\/en.wikipedia.org\/wiki\/Unobtrusive_JavaScript\">unobtrusive<\/a>, so someone without Javascript can still get to the first chapter of each book. (A page with truly accessible fallbacks would place all the chapter headings in the HTML and use a script to hide them and then show them on demand, however.) All the chapter headings appear in the code; I figured AJAX calls would be too slow to give the instant feedback the application needs.<\/p>\n<p>The application uses the <a href=\"http:\/\/dean.edwards.name\/weblog\/2007\/03\/yet-another\/\">base2<\/a> Javascript library to iron out some of the differences between browsers. I like this library because it doesn\u2019t do things for you the way some frameworks do, but it removes a lot of the headaches for developing cross-browser applications (<code>attachEvent<\/code> vs. <code>addEventListener<\/code>, anyone?).<\/p>\n<h3>Limitations<\/h3>\n<p>It requires some precise mouse coordination to get to a specific chapter. It\u2019s not great for people who have poor mouse control or who are using a low-quality mouse. It might make sense to expand the horizontal area allotted to each chapter.<\/p>\n<p>There\u2019s no reason the books have to be in a grid; it would work fine if they were sequential. You could then precisely allocate the width for each book based on the number of chapters it contains.<\/p>\n<p>You could show more than just the headings in the chapter\u2014you might show the first part of the chapter, pick out a few key verses, or even attempt to show the complete text of the chapter in the popup.<\/p>\n<p>I\u2019m not crazy about all the different colors. It\u2019s not bad for demonstration purposes, but I\u2019d probably choose a more-restrained palette in a production environment.<\/p>\n<p>It probably doesn\u2019t work right in Opera, Safari, and IE6 and below. It also won\u2019t work on an iPhone since iPhones don\u2019t send the necessary JavaScript events. It probably wouldn\u2019t work that well as-is on an iPhone anyway; it requires too much precision. Indeed, the straight hierarchical interface model might be best for an iPhone.<\/p>\n<p>The URL in the status bar doesn\u2019t change when you hover over different chapters in the same book. It\u2019s not a big deal, but it\u2019s irksome.<\/p>\n<h3>Conclusion<\/h3>\n<p>I hope you find the interface useful (or at least intriguing) and that it inspires you to create a Bible-browsing interface of your own. Leave a comment and a link if you do\u2014it\u2019s always fun to see new ways of looking at the Bible. (Creating a mockup, a low-fidelity prototype, or even just a word picture is a great way to test ideas; you don\u2019t need to develop a full-fledged application to show off your concept.) Comments on this application are of course welcome, too.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Try it out. (It works best in Firefox with at least a 1000-pixel-wide screen.) Screenshots A half-size (non-interactive) image of the interface. Hovering toward the left side of the Psalms shows you the title of Psalm 23. Hovering toward the right of the Psalms shows you the title of Psalm 121. Background One challenge of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[],"_links":{"self":[{"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/posts\/25"}],"collection":[{"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":5,"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":1204,"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/posts\/25\/revisions\/1204"}],"wp:attachment":[{"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.openbible.info\/blog\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}