Heal Your Church WebSite

Teaching, rebuking, correcting & training in righteous web design.

StudyShare.net’s proposed Daily Verse XML specification

Let’s face it, my VerseScrape application sucks. Not because it’s bad code but because it’s still screen scraping in a day an age of XML and content syndication.

I know what you’re thinking: “Huh, what? Uh, Dean, you wanna come back with that in English?

For those of you who don’t speak ancient geek, what this means is that putting a daily verse on your website is a real pain because too many providers of this content are still using technologies that date back to 1999, which is a long time in both computer and dog years.

This is why I wrote “An Open Letter to Christian Media Outlets” almost 1 and one half years ago. And this is why I’ve been so pleased with the response from some of the responses, like that of the publishers of the ESV Bible.

Still, we have a long way to go. Not all publishers have seen the light. In part there is a fear that they’ll lose business or that they’re not going to be able to “brand” as effectively. Hey, I got news for you hold-outs, “those who wish to save their lives are going to lose them,.” In other words, this is going to happen to you anyway as more and more content providers beat your organization to the syndication punch.

The other reason for not getting with the program is not knowing just how to provide daily, syndicated Scripture. For that, may I suggest StudyShare.net’s Dailyverse XML specification, a proposed standard which describes itself in the following way:

Many Christians run websites for their church or personal interests. In our quest for _good_ content, we have turned to the source of the best content, the Bible. Now, it’s a great thing to put up a daily bible verse and be updating your content daily – it takes work. However, there is an easier way to get compelling content: syndication. Many organizations and individuals provide a verse (or verses) each day. Until now, there has not been (to my knowledge), a standard format for distributing this wonderful information. Some have used javascript via http, others smtp (email), and yet others use plain text via http or even ftp. The dailyverse standard is an xml-based standard for the syndication of periodical bible verses.

Okay, now a call to my brothers and sisters who do speak pure geek. Give this standard the once-over. Offer suggestions. Point out examples to similar standards if they exist. Basically, share your wealth of knowledge.

In the meantime, I’m going to see what I can do to write a bit of Perl to parse this standard.


  1. check out the OSIS XML standard that’s been in the works by a collaboration of many Bible publishers..

  2. check out the OSIS XML standard that’s been in the works by a collaboration of many Bible publishers, see http://www.bibletechnologies.net/

  3. OSIS is interesting – thanks for pointing that out. It looks way too heavy for simple syndication, but it may find a role as a bible study markup language in another project I am considering.

    God’s Peace.

  4. Here’s some perl code to fetch and parse it:

    #!/usr/bin/perl -w

    use strict;
    use LWP::Simple; ##For fetching
    use XML::Simple; ##For parsing RSS

    my $rss = get(‘http://studyshare.net/light/light.xml’);

    die “Unable to fetch URL from studyshare.net\n” unless $rss;

    my $data = XMLin($rss);

    ##Parsed XML is now in a hash.

  5. what I don’t like is how the verse reference and version aren’t atomized. This creates both some formatting problems, and issues with linking to online bibles.

    In other words:
    <verseref>Colossians 3:15 (NIV)</verseref>

    should become:
    <verseref version=”NIV”>Colossians 3:15</verseref>

    <verseref>Colossians 3:15</verseref>

    This would give me the option of how to present the version, AND allow me to use it more effectively.

    BTW, it’d also be nice to have a DTD to reference.

  6. Colin: thanks for the code. I’ll test it here and post it soon.

    Dean: I like the idea. My main inspiration for the project (The Light Ministry) just recently started posting the version name with the verse, so I hadn’t given much thought to it. I like the idea of an optional version name. Does anyone have a preference whether version should be an optional element or merely an optional attribute on the ‘verseref’ element?

    Another question: DTD or XML Schema? Does anyone care?

    I’ll update the spec when I get some feedback – that will be version 0.6. Post comments here or use the contact information at http://studyshare.net/dailyverse/.

  7. be a while since i stopped by, nice revamp of this sight, a great example of KISS. will be checking back more. keep up the good work!

  8. Currently on our site we have some XML esque tags (in the db) set up as the following:
    John 3:16NKJV
    John 3:16NIV

    The verse tag displays the verse in the document, and the link tag displays a link to biblegateway. In reality the link tag should probably be verselink since it competes with W3C, but since this is parsed before getting to the user, it’s probably ok for a while. The version tag can be ommitted, and will default to the site’s default bible version.

    My preferences in this area would actually be to have the version be an attribute of the verse tag, but the parsing fuction I wrote would have a pretty hard time with it that way.

  9. Sorry about that last post, here is the example:

    <verse>John 3:16</verse><version>NKJV</version>
    <link>John 3:16</link><version>NIV</version>