The Greatest Commandments, Part 2

Last week’s Greatest Commandments post explained a new project I’m taking on: map out a hierarchy of all 613 commandments of Torah. The project is inspired by the Messiah’s words:

Love the Lord your God with all your heart, with all your soul, and with all your strength. This is the first and greatest commandment. The second, like it, is this: love your neighbor as yourself. All the Law and the prophets hang on these 2 commandments.

I thought, wouldn’t it be cool to visualize all the commandments in the law hanging on these 2 commandments? And so started my commandments hierarchy project.

Before I go into the boring, nerdy details, behold! The fruit of my labor, my first mapping beyond the 2 golden commandments.

(Click for full size image.)

This week’s addition to the hierarchy are those in gray. I’m adding them in order of a traditional Jewish listing of the 613 commandments.

Today’s additions include 2 commandments that derive from other commandments:

Leviticus 22:31’s command not to profane the name of God is a derivativeof Exodus' 22:18’s command to not blaspheme God.

Deuteronomy 6:4’s command to know that God is one derivesfrom Exodus 20’s command to know that God exists.

Deuteronomy 6:4 is a particularly special commandment: the Messiah considered it part of the greatest commandments; he grouped Deuteronomy 6:4 and 6:5 as a single commandment: Israel should hear that the Lord is one. Yeshua considered this the single greatest commandment in Torah.

Sh’ma yisrael (Hear, Israel)Adonai eloheinu (The Lord is our God)Adonai echad (The Lord is one)Baruch shem k’vod malchuto (Bless the name of his glorious kingdom)L’olam vaed (forever and forever)

The first half of that prayer is from Deuteronomy 6:4-5. The latter half is a traditional appendage, and when recited aloud, is spoken in a quieter tone than the first half.

While Yeshua considered it a single commandment, Judaism traditionally holds 2 commandments contained within this passage. For the sake of preserving that magic 613 number, I’ve followed Judaism’s lead.

What the future holds for the commandments project

The plan is to map 5 commandments per week:

613 commandments in the Torah / 5 per week = 122 weeks

122 weeks / 52 weeks in a year = 2.3 years

In other words, I’ll be done with this project roughly in November of 2011. The Greatest Commandments Hierarchy project will be done, and we should have flying cars by then, so the world will be a better place.

How is it being done?

WARNING: excursion into nerdliness ahead. Continue at your own risk.

With over a hundred potential modifications to be made to the hierarchy before its completion, mapping new commandments needs to be super easy and frictionless. Drawing a picture with the necessary circles and lines and updating them every time we add a new commandment is out of the question.

Nerd Problem 1: Generating the display

To divide and conquer this problem, the first step was to separate the data from the display: the hierarchical data should be stored separate from the display, and the display should be automatically generated from that data. Imagine a text file, or database, containing all the information about each commandment. Next to it, imagine a program that takes that data and generates a hierarchy chart display from it.

With that in mind, I started searching for a tool that could build a visual hierarchy from a set of hierarchical data. One solution I found, and the tool I’m currently using, is the open source GraphViz app. It’s an old school desktop application that’s been around for ages. It can generate visual hierarchy diagrams from a simple domain-specific language called the DOT language. Put in the following DOT language statements into GraphViz:

digraph graphname {a -> b -> c;b -> d;}

... and out comes this beautiful graph:

Bingo. That’s the kind of graph-generating tool I’m looking for.

Now that I have the tool to automatically generate the display, we need the data to be represented in this special DOT language. How do we do that?

Nerd Problem 2: Creating the data

I’m a software developer. What comes natural to me is class inheritance and type hierarchies. I thought, why not create a code class that represents each commandment? Then, write a small program reflects over all commandment classes, and outputs DOT language instructions for those classes. Here’s my cleverly-named C# project that does exactly that:

As you can see, each commandment mapped so far has its own class file. The application dynamically finds all commandment classes and outputs DOT language instructions. Running it now gives me this output:

With this system, I can go from new commandment to graph in about 2 minutes. Now that’s what I’m talkin’ ‘bout, Willis!

Some further statistics

Each commandment stores the data:

Text: the full bit of Scripture containing the commandment

Book: stored separately from the chapter and verse

Chapter

Verse

CanBeCarriedOutToday: an interesting piece of data: can this commandment be carried out today in modern times? When the project is finished, it will be interesting to see what percentage of commandments can be followed today.

ShortSummary: A short one-liner that succinctly describes the commandment.

CommandmentType: Positive or negative? (Do? or Don’t?)

What else? I want to leave this open for more data as I find interesting stats to tally.

In addition to tallying these statistics, the visual graph itself can be shaped to show this data: negative commandments may have a red background. Commandments that cannot be carried out today (e.g. Tabernacle/Temple activities) may utilize rectangles rather than ellipses. And so on. When the project is finished, I will be dumping all this data into a standard SQL database.

That’s it, fine blog readers! Shabbat shalom! And may you take joy in the commandments. (And the commandments project!)

6 comments:

On a more serious note, this is a very useful project, in my opinion. Do you have a convenient way (e.g. SVN, Hg) to allow collaboration on this? Or are you planning to hog all the work for yourself? ;-)

Faith

Messianic Apologetics
Scripturally-sound, balanced teaching. Engaged with modern Christian and Jewish scholarship. Unchanged by the winds of pop doctrine. Messianic apologist J.K. McKee and his ministry defends and advances a pro-Messiah, pro-Torah faith in the God of Israel. Sees believers joined with the Jewish people as part of an enlarged Israel.

Torah Resource
Tim Hegg, Caleb Hegg, Rob Van Hoff, and a host of mature, theologically-trained teachers expound on the Bible through articles, books, videos and podcasts. Avoids the sensationalism of Hebrew Roots and the religion-emulation of Messianic Judaism. Advocates for a Torah-observant faith through Messiah.

Messianic Publications
Laying a firm foundation in Messiah and Torah. Apologetics, study, articles and more from a host of guests from the independent Messianic movement.

David's Tent
Wisdom on world events from Israeli believers Avner and Rachel Boskey.

Wintery Knight
Integrating faith and knowledge in the public square. Evidence for God. Apologetics. Fighting against the tide of secularism through reason and evidence.

News & Politics

Prager University
From the Jewish luminary mind of Dennis Prager, Prager University produces free, short 5 minute videos on culture, politics, faith, and more. Changing minds one video at a time. Check out their Prager U YouTube Channel

@BenShapiro
Sharp and reasoned, this young Jewish conservative firebrand combats the errs of leftism, holds principle over party, and is a powerful voice for Judeo-Christian values. Editor of The Daily Wire news.