<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Open Scriptures</title>
	<atom:link href="https://openscriptures.org/feed/" rel="self" type="application/rss+xml" />
	<link>https://openscriptures.org</link>
	<description>Platform for the development of open scriptural linked data and its applications.</description>
	<lastBuildDate>Wed, 30 May 2012 05:37:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>USFM Codes</title>
		<link>https://openscriptures.org/blog/2011/03/usfm-codes/</link>
					<comments>https://openscriptures.org/blog/2011/03/usfm-codes/#comments</comments>
		
		<dc:creator><![CDATA[RobH]]></dc:creator>
		<pubDate>Thu, 17 Mar 2011 03:39:29 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[USFM]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=306</guid>

					<description><![CDATA[Unified Standard Format Markers are a system of short alphanumeric markers (which follow backslashes in text files) used by UBS and SIL to encode Bible translations. Each book is usually stored in a separate file. (In floppy disk days, it was each chapter.) USFM is mostly used by the Paratext editor for Bible translations in [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://paratext.ubs-translations.org/usfm">Unified Standard Format Markers</a> are a system of short alphanumeric markers (which follow backslashes in text files) used by <a href="http://www.biblesociety.org/">UBS</a> and <a href="http://sil.org/">SIL</a> to encode Bible translations. Each book is usually stored in a separate file. (In floppy disk days, it was each chapter.) USFM is mostly used by the <a href="http://paratext.ubs-translations.org/about/pt">Paratext</a> editor for Bible translations in progress.</p>
<p>The XML data file and scripts uploaded today are the simple beginnings of a framework to allow access to folders containing USFM texts. USFMMarkers.py loads and converts the XML file containing USFM codes, and provides some simple look-up functions. USFMFilenames.py accepts a folder name and searches for USFM files in that folder. All very simple, but hopefully another small step forwards.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openscriptures.org/blog/2011/03/usfm-codes/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Bible Books Names</title>
		<link>https://openscriptures.org/blog/2011/02/bible-books-names/</link>
		
		<dc:creator><![CDATA[RobH]]></dc:creator>
		<pubDate>Wed, 23 Feb 2011 03:20:26 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=302</guid>

					<description><![CDATA[Well now we&#8217;re into a little bit of fun stuff &#8212; trying to work out how to handle the user inputs to select a certain book out of a certain publication. For each language, we have a XML data file which specifies the defaultName and defaultAbbreviation for all the books, e.g., Genesis (Gen), Jude (Jde), [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Well now we&#8217;re into a little bit of fun stuff &#8212; trying to work out how to handle the user inputs to select a certain book out of a certain publication. For each language, we have a XML data file which specifies the defaultName and defaultAbbreviation for all the books, e.g., Genesis (Gen), Jude (Jde), etc.</p>
<p>We can use those fields for display and for keyboard input, and we have included a simple routine to create a list of all unambiguous shortcuts, e.g., we could accept <em>Ge</em> and also know that the user meant <em>Genesis</em> because no other (English) Bible book starts with <em>Ge</em>. But we also would like to accept <em>Gn</em>. So we add an extra <strong>inputAbbreviation</strong> field, where we can add things like <em>Gnss</em>. Again, the program will create a list of unambiguous shortcuts from this information (which would include <em>Gns</em> and <em>Gn</em>).</p>
<p>But why not also automatically include <em>G</em> as a shortcut for <em>Genesis</em>? Well, the problem is that <em>G</em> could equally stand for <em>Galatians</em>. But if we specified that our particular publication only contains Old Testament books, then this additional piece of information would allow the software to automatically include <em>G</em> as an unambiguous shortcut for <em>Genesis</em>. And of course, you could override by entering <em>G</em> as an inputAbbreviation for <em>Genesis</em> anyway if you desire, even for a complete Bible publication.</p>
<p>Ok, that&#8217;s fairly simple then. But what about <em>1 Timothy</em>? It would be nice to accept <em>1Tim</em> (without a space), or<em> I Tim</em> (using Roman numerals), <em>1st Tim</em>, etc. Well the information to do this is also put in the XML file under the section <strong>BibleBooknameLeaders</strong>. This specifies everything that you will accept instead of the <em>1</em>, e.g., <em>I</em>, <em>First</em>, <em>One</em>, etc. The software automatically handles all the various combinations for you &#8212; with and without the intervening spaces.</p>
<p>And then the third and final (but first in the file) section of the XML file is for <strong>BibleDivisionNames</strong>. You might want to limit a search, for example, to the Old Testament or the Pentateuch. So in this section we can specify our division names and abbreviations, and a list of the books which would be included in each division.</p>
<p>The XML filename includes the ISO 639-3 language code. But it also includes a qualifier, so you could have something like <em>eng_traditional</em> and <em>eng_modern</em>. Why? Well, what if you wanted to call the final book of your publication <em>Vision</em> instead of <em>Revelation</em>? It&#8217;s still English but a different system and we would need to know how you want that different bookname displayed. (Although that example is fictitious, in the Philippines where I worked it&#8217;s actually common to nickname Bible versions by the different names that the translators gave to the book of Revelation.)</p>
<p>So look through the data files at <a href="https://github.com/openscriptures/BibleOrgSys/tree/master/DataFiles/BookNames">https://github.com/openscriptures/BibleOrgSys/tree/master/DataFiles/BookNames</a> and tell me what other pieces of information I should still have in there. Note that I didn&#8217;t include extended book names (like <em>The Second Epistle of the Apostle Paul to the Church at Corinth</em>) as it seems to me that they only need to be specified in the actual Biblical material itself. I took a stab at creating basic files for French and German also, even though I don&#8217;t speak those languages, so I&#8217;m sure they&#8217;ll need some fixing. Note also that specifying the books included in a division (such as <em>Old Testament</em> or <em>Pauline Letters</em>) here does seem a little out of place (maybe it would seem more logical in the book orders data files), but since that kind of division information often relates to the cultural heritage, I&#8217;ve accepted it for now as a reasonable compromise.</p>
<p>There&#8217;s also some basic Python3 code to handle these data files at <a href="https://github.com/openscriptures/BibleOrgSys/tree/master/BibleBooksNames.py">https://github.com/openscriptures/BibleOrgSys/tree/master/BibleBooksNames.py</a>. It runs a brief demo so check it out and send me your suggestions and improvements.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bible Punctuation Systems</title>
		<link>https://openscriptures.org/blog/2011/02/bible-punctuation-systems/</link>
					<comments>https://openscriptures.org/blog/2011/02/bible-punctuation-systems/#comments</comments>
		
		<dc:creator><![CDATA[RobH]]></dc:creator>
		<pubDate>Tue, 15 Feb 2011 03:16:38 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[checking]]></category>
		<category><![CDATA[cross-references]]></category>
		<category><![CDATA[punctuation]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=297</guid>

					<description><![CDATA[Why do we need to specify the punctuation system for a Bible? Isn&#8217;t that sort of information already set on my computer in my locale? Well yes, the common punctuation conventions for your language might be defined in your locale, but there&#8217;s three good reasons why we need to define our own system here: We [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Why do we need to specify the punctuation system for a Bible? Isn&#8217;t that sort of information already set on my computer in my locale? Well yes, the common punctuation conventions for your language might be defined in your locale, but there&#8217;s three good reasons why we need to define our own system here:</p>
<ol>
<li>We want to handle not just our own language here, but also the languages of the original texts, perhaps including Hebrew, Aramaic and Greek, plus the languages of other translations, e.g., Latin.</li>
<li>Even within one language, there might be differences. For example, many of the original texts didn&#8217;t have <strong>any</strong> punctuation (or even word breaks). So we want to be able to specify the punctuation for any publication.</li>
<li>Our standard computer locales are not likely to include the punctuation standard for Bible references and other Bible-specific uses.</li>
</ol>
<p>Today I&#8217;ve committed the first attempt at a simple XML file for specifying the punctuation for a Bible publication. I&#8217;ve labelled my attempts as V0.40 because I&#8217;m sure that there&#8217;s going to be many more fields that we&#8217;ll need to add. And for that reason also, I haven&#8217;t yet tried to make data files for a large range of languages.</p>
<p>As we develop the system further, we&#8217;ll be needing ways to tell a computer program how to parse a digital text, i.e., how to determine all the different parts of the text. Another of my specific interests is also <strong>checking</strong> Bible files to make sure they are consistent ready for online or print publishing. So that requires specifying even more punctuation and formatting type details.</p>
<p>So as already mentioned, the current files at <a href="https://github.com/openscriptures/BibleOrgSys/tree/master/DataFiles/PunctuationSystems">https://github.com/openscriptures/BibleOrgSys/tree/master/DataFiles/PunctuationSystems</a> are really only just a starting point to work from. Let me know what else we&#8217;ll need to add.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openscriptures.org/blog/2011/02/bible-punctuation-systems/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Bible Book Orders</title>
		<link>https://openscriptures.org/blog/2011/02/bible-book-orders/</link>
					<comments>https://openscriptures.org/blog/2011/02/bible-book-orders/#comments</comments>
		
		<dc:creator><![CDATA[RobH]]></dc:creator>
		<pubDate>Wed, 02 Feb 2011 23:59:43 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=292</guid>

					<description><![CDATA[At some point, a Bible organisational system has to define both the actual books which are included in the publication, and the order in which they are presented. (As I pointed out in my introductory blog, both of these factors can vary considerably across cultures.) I have found it better to separate this information from [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>At some point, a Bible organisational system has to define both the actual books which are included in the publication, and the order in which they are presented. (As I pointed out in my <a href="https://openscriptures.org/blog/2011/01/bible-organisational-system/">introductory blog</a>, both of these factors can vary considerably across cultures.)</p>
<p>I have found it better to separate this information from the versification information (about where chapter and verse breaks come). So the book order files are very simple &#8212; basically just an ordered list of book codes, e.g., GEN, EXO, &#8230; REV or whatever. Of course, many publications will have the same list of book contents and in the same order, so it makes reasonable sense to separate this information out so it can be easily reused.</p>
<p>Today I committed some book order data (XML) files which I&#8217;m aware of, although they haven&#8217;t been tested out against real publications as well as I would like. Also, there might be reason to name some of the systems better before we take it to V1.0. And, of course, it is easy to add systems which I wasn&#8217;t aware of with this initial commit. So there&#8217;s plenty of room for other people to help with their expertise here.</p>
<p>This is the end of the easy stuff &#8212; everything gets a lot more complex from here on in, so my blogs and code additions are likely to become much more sparse.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openscriptures.org/blog/2011/02/bible-book-orders/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Language Codes</title>
		<link>https://openscriptures.org/blog/2011/02/language-codes/</link>
					<comments>https://openscriptures.org/blog/2011/02/language-codes/#comments</comments>
		
		<dc:creator><![CDATA[RobH]]></dc:creator>
		<pubDate>Wed, 02 Feb 2011 00:11:18 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[language codes]]></category>
		<category><![CDATA[languages]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=288</guid>

					<description><![CDATA[Language Codes Any Bible organisational system has to have a way to define languages. We&#8217;ll be dealing with Biblical languages like Hebrew, Aramaic, and Greek, as well as the many languages of translations. Many systems have used 2-letter codes like &#8216;en&#8216; or &#8216;fr&#8216; for naming languages. But 2-letter codes have a maximum of 26 squared [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Language Codes</p>
<p>Any Bible organisational system has to have a way to define languages. We&#8217;ll be dealing with Biblical languages like Hebrew, Aramaic, and Greek, as well as the many languages of translations.</p>
<p>Many systems have used 2-letter codes like &#8216;<em>en</em>&#8216; or &#8216;<em>fr</em>&#8216; for naming languages. But 2-letter codes have a maximum of 26 squared possibilities, which equals 676 &#8212; a whole order of magnitude short of being able to represent the some 7,000 languages of the world. And since we want the Bible to reach all peoples of the world, we want to include their languages from the beginning.</p>
<p>So in a truly international system, we&#8217;ll need to use codes of at least 3-letters. (Yes, 17,576 codes should be enough!) And the <a href="http://en.wikipedia.org/wiki/ISO_639-3" target="_blank">ISO 639-3 </a>standard, which came originally from the <a href="http://www.ethnologue.com/" target="_blank">Ethnologue</a> and is currently still administered by <a href="http://www.sil.org/iso639-3/" target="_blank">SIL</a> gives us that.</p>
<p>Today I <a href="https://github.com/openscriptures/BibleOrgSys">committed</a> Python code to access the ISO 639-3 information. It&#8217;s just a little foundational step that&#8217;ll be needed later on.</p>
<p>[I&#8217;m not sure yet that it handles everything we need &#8212; for example Americans and New Zealanders both speak English (code &#8216;<em>eng</em>&#8216;) but we choose, pronounce, and spell many words differently. So we might be needing to extend this language code system sometime when we get into spell-checking and such.]</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openscriptures.org/blog/2011/02/language-codes/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Bible Organisational System</title>
		<link>https://openscriptures.org/blog/2011/01/bible-organisational-system/</link>
					<comments>https://openscriptures.org/blog/2011/01/bible-organisational-system/#comments</comments>
		
		<dc:creator><![CDATA[RobH]]></dc:creator>
		<pubDate>Mon, 31 Jan 2011 00:30:34 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bible books]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=282</guid>

					<description><![CDATA[Most people I know think of the Bible as 66 books broken into the Old Testament of 39 books (Genesis to Malachi) and the New Testament of 27 books (Matthew to Revelation). If only life were so simple! Actually, most of us do actually know that published Bibles don&#8217;t always fit into that pattern because [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Most people I know think of the Bible as 66 books broken into the Old Testament of 39 books (<em>Genesis</em> to <em>Malachi</em>) and the New Testament of 27 books (<em>Matthew</em> to <em>Revelation</em>). If only life were so simple! Actually, most of us do actually know that published Bibles don&#8217;t always fit into that pattern because the Gideons (here in New Zealand, at least) distribute small pocket-sized Bibles containing the New Testament along with Psalms and Proverbs, so that&#8217;s a different combination of books.</p>
<p>But oh, that doesn&#8217;t even scratch the surface about how Bibles may be packaged! Luther considered the letter of James to be the “epistle of straw” so he placed it nearer the back of his Bible. So the book order is not consistent. Anyway, the book should really be called <em>Jacob</em>, not <em>James</em>. (It&#8217;s Greek <em>ἰάκωβος</em> = <em>Iakobos</em> and German <em>Jakobus</em>.) And by the way, Germans don&#8217;t use the names <em>Genesis</em>, <em>Exodus</em>, <em>Leviticus</em>, <em>Numbers</em>, and <em>Deuteronomy</em> (or even the German equivalent of those words)—they call them the first to fifth books of <em>Moses</em>. (And the Hebrews have quite different names for them again, derived from the first word(s) in each of the five books.)</p>
<p>Roman Catholic Bibles typically include a <em>Deutero-canon</em> (or <em>secondary canon</em>, called the <em>Apocrypha</em> by most Protestants) which contains several more books beyond the sixty-six mentioned above.</p>
<p>Some traditions (e.g., John Wycliffe&#8217;s English Bible) include the<em> Letter to the Laodiceans</em> in their New Testament.</p>
<p>Older Hebrew Scriptures may contain as few as 22 books, even though it effectively has the same content as the 39 book Old Testament, because they combine things like 1 and 2 Samuel, and the twelve minor prophets, into single books.</p>
<p>Some Bibles omit verses that they say are not in the most ancient manuscripts so they might go directly from verse 20 to verse 22 in a certain chapter. (See if your Bible contains Matthew 17:21, for example.) Other Bibles add extra chapters and verses which they get from the ancient Greek translations of the Hebrew books. And some of those chapters may be labelled with letters (like A, B, and C) rather than numbers.</p>
<p>And talking about chapter and verse numbers, they are not found in the original manuscripts but were added at different points in history. And different people in different cultures divided the texts in different ways. So, for example, in the Psalms in a Hebrew Bible, the text <em>A Psalm of David</em> might be considered verse 1 and what I&#8217;ve always thought of as verse 1 is called verse 2.</p>
<p>Modern translations tend to divide the texts into paragraphs, and these breaks (and their corresponding section headings) also might be placed in different locations according to the best judgement of the various translators.</p>
<p>Many modern Bibles contain cross-references, e.g., a quote in John 1 might refer back to Genesis 1. But the code “Gen. 1:1” might look different in another language where they use a different name for the first book of the Hebrew Scriptures, and a different punctuation character for the chapter/verse separator, so it might have “1 Mos. 1.1” in the cross-reference instead. Also, letter suffixes may sometimes be used in Scripture references, like “Mat. 28:3a”.</p>
<p>Most of the hundreds of available Bible software applications have had to address these issues, and most of them have developed their own unique in-house systems to handle them. In many cases, especially for those of us in the often monolingual English-speaking world, the cross-cultural ramifications weren&#8217;t really understood at the beginning and so extensions were tacked on later to try to handle these international complications, sometimes leading to systems lacking in elegance or universal application.</p>
<p>I am going to slowly feed my work into the Open Scriptures BibleOrgSys repository over the next few weeks. The essence of my work can be found in XML data files, but I&#8217;ve also produced Python scripts that test and exercise (and even export) the XML data to demonstrate how an application might use the data files.</p>
<p>So this work is my attempt to develop a system that is multilingual, multinational, and multicultural from the beginning—to pull all of these various Bible organisational systems into one place. And although I&#8217;m an English-speaking Protestant Christian, it tries not to assume that every Bible-related publication in the world is based on any of those particular characteristics. And then it is made freely available to be used by others, and even to be extended by others when areas I didn&#8217;t cover adequately are discovered.</p>
<p>For those with experience in this area, I look forward to your comments, and even better still, suggested improvements. I will label the submitted files V0.5 to suggest that I might have done half of the research and work in setting this up, but there&#8217;s plenty of room for your input and wider experience to take us to V1.0. You can view my work on Bible books codes at <a href="https://github.com/openscriptures/BibleOrgSys" target="_blank">https://github.com/openscriptures/BibleOrgSys</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openscriptures.org/blog/2011/01/bible-organisational-system/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>BibleTech:2011 Talk: “Distributed model for interlinked text development”</title>
		<link>https://openscriptures.org/blog/2010/11/bibletech2011-talk-distributed-model-for-interlinked-text-development/</link>
		
		<dc:creator><![CDATA[Weston Ruter]]></dc:creator>
		<pubDate>Tue, 30 Nov 2010 00:40:07 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=275</guid>

					<description><![CDATA[Here is the talk proposal I submitted for presenting at BibleTech:2011 which is going to be March 25-26 in Seattle: Open Scriptures API: Distributed model for interlinked text development In the continuing efforts at Open Scriptures to produce an open platform for the development of scriptural data and its applications, work continues on the most [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Here is the talk proposal I submitted for presenting at <a href="http://www.bibletechconference.com/">BibleTech:2011</a> which is going to be March 25-26 in Seattle:</p>
<blockquote>
<h3>Open Scriptures API: Distributed model for interlinked text development</h3>
<p>In the continuing efforts at Open Scriptures to produce an open platform for the development of scriptural data and its applications, work continues on the most fundamental layer: the representation of the scriptural text. This talk will look at a normalized way to store text in a relational database as tokens and structures, and also how such a text can be versioned as it undergoes continuous improvements (e.g. making a translation or creating a critical text); as the text can exist in multiple revisions/editions, it can also be branched so as to introduce variant or alternate readings; it can also be forked to introduce a new derivative work linked back to the original. (Much of this will be applying lessons from the Git distributed version control system.) In addition to links between text editions, the representation of links between different texts (interlinearization) will be examined at the level a single scripture server and also in the context of a distributed network of scripture servers which all have texts that are potentially undergoing development and how the interconnections between the texts can be maintained to enable scriptural linked data.</p>
<p>This is a continuation of last year’s talk, <a href="http://www.bibletechconference.com/speakers/#WestonRuter-2010">Open Scriptures API: Unified Web Service for Scriptural Linked Data</a>.</p></blockquote>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cryptographic hashes and RESTful URIs</title>
		<link>https://openscriptures.org/blog/2010/07/cryptographic-hashes-and-restful-uris/</link>
					<comments>https://openscriptures.org/blog/2010/07/cryptographic-hashes-and-restful-uris/#comments</comments>
		
		<dc:creator><![CDATA[Nathan Smith]]></dc:creator>
		<pubDate>Wed, 21 Jul 2010 05:30:18 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=270</guid>

					<description><![CDATA[In a recent post to the Open Scriptures mailing list, it was suggested that we use md5 (or another cryptographic hash) to generate unique IDs for each token (a &#8220;token&#8221; is the fundamental unit of text (most often a word) in our API database models). Today we discussed the implementation of this on IRC, and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In a recent post to the Open Scriptures mailing list, <a href="http://groups.google.com/group/open-scriptures/msg/26f48bc88596321c">it was suggested that we use md5</a> (or another cryptographic hash) to generate unique IDs for each token  (a &#8220;token&#8221; is the fundamental unit of text (most often a word) in our  API database models). Today we discussed the implementation of this on  IRC, and it was fairly stimulating.</p>
<p>First of all, <a href="http://en.wikipedia.org/wiki/MD5">md5 is broken and deprecated</a>,  due to possible collisions (two different pieces of data can result in  the same hash). Since we will be dealing with millions of tokens, we  decided not to test our luck, unlikely though a problem may be. SHA-256  has no known collisions, so we decided it was best to use that  algorithm.</p>
<p>SHA-256 is implemented in Python&#8217;s standard library hashlib, so that is good. For exapmle:</p>
<p><code>&gt;&gt;&gt; import hashlib<br />
&gt;&gt;&gt; hashlib.sha256("Hello world!").digest()<br />
'\xc0S^K\xe2\xb7\x9f\xfd\x93)\x13\x05Ck\xf8\x891NJ?\xae\xc0^\xcf\xfc\xbb}\xf3\x1a\xd9\xe5\x1a'</code></p>
<p>Needless to say, such a digest would not be very good for use in a  RESTful URI scheme. So, hashlib also offers a hexadecimal option:</p>
<p><code>&gt;&gt;&gt; hashlib.sha256("Hello world!").hexdigest()<br />
'c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a'</code></p>
<p>That is still not the best, since that makes for a very long string. So, we have the option of using <a href="http://tools.ietf.org/html/rfc3548.html">base64 encoding</a>:</p>
<p><code>&gt;&gt;&gt; import base64<br />
&gt;&gt;&gt; base64.b64encode(hashlib.sha256("Hello world!").digest())<br />
'wFNeS+K3n/2TKRMFQ2v4iTFOSj+uwF7P/Lt98xrZ5Ro='</code></p>
<p>That is shorter, but it includes the &#8220;/&#8221; character, which is a no-no  for URI design. Luckily base64 includes a function for this exact  purpose:</p>
<p><code>&gt;&gt;&gt; base64.urlsafe_b64encode(hashlib.sha256("Hello world!").digest())<br />
'wFNeS-K3n_2TKRMFQ2v4iTFOSj-uwF7P_Lt98xrZ5Ro='</code></p>
<p>So that is safe for URIs, but being case-sensitive and having  ambiguous characters makes it not the best for working with. So, base32  to the rescue:</p>
<p><code>&gt;&gt;&gt; base64.b32encode(hashlib.sha256("Hello world!").digest())<br />
'YBJV4S7CW6P73EZJCMCUG27YREYU4SR7V3AF5T74XN67GGWZ4UNA===='</code></p>
<p>There you have it: shorter than hex, and easier to work with than  base64. If we end up using cryptographic hashes an token unique IDs, I&#8217;m  pretty sure this is how we&#8217;ll do it.</p>
<p>The discussion around using cryptographic hashes as unique identifiers in our models is ongoing. Essentially we need to decide how best to make a unique hash for each token. Please join us in #openscriptures on irc.freenode.net with any input.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openscriptures.org/blog/2010/07/cryptographic-hashes-and-restful-uris/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Morphological Hebrew Bible Version 1.0</title>
		<link>https://openscriptures.org/blog/2010/04/morphological-hebrew-bible-version-1-0/</link>
					<comments>https://openscriptures.org/blog/2010/04/morphological-hebrew-bible-version-1-0/#comments</comments>
		
		<dc:creator><![CDATA[Daniel Owens]]></dc:creator>
		<pubDate>Wed, 14 Apr 2010 14:07:55 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Hebrew Bible CrossWire SWORD morphology Strongs]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=258</guid>

					<description><![CDATA[We are pleased to announce the availability of the Open Scriptures Morphological Hebrew Bible version 1.0 on the CrossWire module servers. This new Hebrew Bible module is based on the Open Scriptures MorphHB project and contains Strong&#8217;s tagging to allow for easy dictionary lookup. Our current effort is to prepare a system for collaboration on [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>We are pleased to announce the <a title="OSMHB: Open Scriptures Morphological Hebrew Bible (morphology forthcoming) @ The SWORD Project" href="http://crosswire.org/sword/modules/ModInfo.jsp?modName=OSMHB">availability</a> of the Open Scriptures Morphological Hebrew Bible version 1.0 on the CrossWire module servers. This new Hebrew Bible module is based on the Open Scriptures <a href="http://github.com/openscriptures/morphhb">MorphHB project</a> and contains Strong&#8217;s tagging to allow for easy dictionary lookup. Our current effort is to prepare a system for collaboration on parsing the morphology of the text. If you have some facility with Hebrew and would like to contribute, follow this blog for further announcements. Note that the module in the CrossWire repository follows King James versification, while a separate module in the experimental repository has the original versification of the Leningrad Codex.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openscriptures.org/blog/2010/04/morphological-hebrew-bible-version-1-0/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>Multimedia from BibleTech:2010</title>
		<link>https://openscriptures.org/blog/2010/04/multimedia-from-bibletech2010/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 09 Apr 2010 01:30:48 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">http://openscriptures.org/?p=246</guid>

					<description><![CDATA[The BibleTech:2010 conference was a great time! On Friday night we had the largest birds-of-a-feather session centered around Web APIs for Scripture. Open Scriptures API: Unified Web Service for Scriptural Linked Data By Weston Ruter Video: Vimeo Slides: Keynote Audio: MP3 Using Pinax and Django For Collaborative Corpus Linguistics By James Tauber Watch video on [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://www.bibletechconference.com/" target="_blank">BibleTech:2010 conference</a> was a great time! On Friday night we had the largest birds-of-a-feather session centered around Web APIs for Scripture.</p>
<h3>Open Scriptures API: Unified Web Service for Scriptural Linked Data</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10490211&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=10490211&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>By <a href="http://weston.ruter.net/" target="_blank">Weston Ruter</a></p>
<p>Video: <a title="Open Scriptures API: Unified Web Service for Scriptural Linked Data" href="http://vimeo.com/10490211">Vimeo</a><br />
Slides: <a href="https://openscriptures.org/wp-content/uploads/2010-03-26_bibletech_openscriptures_api_talk.key" target="_blank">Keynote</a><br />
Audio: <a href="https://openscriptures.org/wp-content/uploads/2010-03-26_bibletech_openscriptures_api_talk.mp3" target="_blank">MP3</a></p>
<h3>Using Pinax and Django For Collaborative Corpus Linguistics</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10515200&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=10515200&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>By <a href="http://jtauber.com/" target="_blank">James Tauber</a></p>
<p>Watch video on <a href="http://vimeo.com/10515200" target="_blank">Vimeo</a>, and see also his talk on <a href="http://vimeo.com/10489590" target="_blank">A New Kind of Graded Reader</a>.</p>
<p>More audio, slides, and potentially video of additional talks will be posted on the BibleTech <a href="http://www.bibletechconference.com/speakers/" target="_blank">speakers page</a>.</p>
]]></content:encoded>
					
		
		<enclosure url="http://openscriptures.org/wp-content/uploads/2010-03-26_bibletech_openscriptures_api_talk.mp3" length="37226893" type="audio/mpeg" />

			</item>
	</channel>
</rss>
