Chains of RFCs and Chains of Laws? 168
AlexNicoll writes "I recently completed a DNSSEC library for the .NET platform (thanks to Wouter @ NLNetLabs for his help!). While writing the library, I encountered the extremely entertaining concept of following the long chain of DNS-related RFCs on the IETF website. Some RFCs were obsoleted, some were updated, some updates were obsoleted by others, and some were never really formally related or linked — so even finding them was a challenge in search-fu. Finally, I think I got the whole picture, but I'm not sure. Then I got to thinking: searching for the relevant RFCs in IETF RFC chains was a lot like trying to figure out how (in the US) local, regional, state, and federal laws interact with themselves and each other. Since I just recently moved, I thought I ought to know the rules of the place I live in. It turns out to be just as non-trivial, if not more so, than parsing RFC chains. So here's the question: given that the processes are somewhat similar, does anyone know of a project that has tried to consolidate all the information in one place, so that it's in one comprehensive and up-to-date document, for either laws or RFCs?"
Update: 05/24 14:24 GMT by
KD :
Ray Bellis from Nominet took up the challenge and compiled dependency graphs for DNS-related RFCs.
Academia (Score:3, Interesting)
In all seriousness, they're probably our best tool invented to date.
Like my professor said when I asked him if he had an auto-grader "Yes, it's called TAs".
Refactoring (Score:3, Interesting)
Just like Computer Science got Design Patterns from architecture (http://en.wikipedia.org/wiki/Christopher_Alexander)
Lawmakes should take the concept of refactoring from computer science (http://en.wikipedia.org/wiki/Code_refactoring)
Austlii (Score:2, Interesting)
AusLii [austlii.edu.au]. You did mean Australian law, didn't you?
probably illegal in most states (Score:3, Interesting)
When I worked at a public library in Virginia, we were told that we weren't allowed to show someone how to use the index of the federal and state codes without having a license to practice law in Virginia. I've heard similar tales of Texas. I am not a lawyer, so I can't possibly understand whether or not what I just typed related to actual law or whimsy.
Isn't what you're describing... (Score:2, Interesting)
A wiki?
Re:Refactoring (Score:5, Interesting)
How about we version control the legal code, consider amendments to be patches, new laws to be insertions into the relevant sections, and deprecated text removed in a deletion patch?
State governments could then add their own changeset to the upstream (Federal) laws where they can and also maintain their own single cohesive text as a version controlled document.
Unfortunately such a thing is probably decades if not centuries away.
Re:works for rfcs and laws (Score:3, Interesting)
I presume the RTFA complains precisely about the index RFC [ietf.org], sometimes referred as RFC 0.
And yes, it is spaghetti-like and not always up-to-date.
Re:Refactoring (Score:5, Interesting)
Technologically, he has a description of what he does. I'll try to translate:
he fetches laws from the Cabinet Office web server, which he converts into XML (XHTML2 med RDFa)
He then retrieves cases from the Courts Administration FTP server, also converts this into XML. (via words "save as HTML", and then converting).
He then compiles all the meta-data from all the documents into RDF -graph. This is used in conjunction with style sheets to create XHTML1.0 pages, ready for displaying in a browser.
finally, indexes and Table of contents are created and the result is hosted on Apache-servers. The code is written in python, with parts in XSLT.
Impressive, impressive work. Which landed him a job in e-gov (I hope he keeps the law-project going!)
Re:Refactoring (Score:4, Interesting)
Re:Fuck no (Score:2, Interesting)
Re:Refactoring (Score:3, Interesting)
Well, sort of. The difference is that nobody bothers to provide a mechanism where you can check out a current instance with all of the patches appropriately applied in order to see what the law really is. Sometimes conflicting patches are checked in but there's no mechanism to detect the collision or to require reconciliation.
Law has been around for thousands of years and computer programming for a few decades, yet programming is miles ahead in spite of never being able to handwave (or perhaps because of it). I can't be sure my program is correct and complete (just like the law), but I can say exactly what it is at any given time (unlike the law).
Re:Academia (Score:3, Interesting)
New generation of document databases like Apache CouchDB could be right up the street of a bit of codification. A "schema free, indexable, flat address space" sounds about right to me! You'd want to start initially (and quite easily) with a way of identifying addresses (eg, authority.act.section.clause) that appears within the texts (eg "ammends subsection x of the blah blah act of 2004") to create a dependency tree. When a law is repealed, that would be the end of that branch. Once you have your dependency tree, it can then be flattened, where at any point in time you can see the current state of the law in any area (like filesystem snapshots) where elements of older acts (or whatever they're called where you are) that are referenced/modified can be displayed inline, without having to jump between one thing and another. My guess is that with its chaotic nature, trying to guess what the next steps would be would be foolish, at least of me, but in getting that far all kinds of ideas would open up.
Incidentally, here in the UK our statutes are still often refered to as a scroll (although 'statute books' often more, which does sound less archaic) as it is a single address space, with laws coming into effect at certain times (transactions are atomically committed)... you could scroll back all the way to 1215 to see I think it's 2 erm... "bits" that are left in effect now, with some others that are partially repealed in some situations (eg, the right for a trial in front of your peers, which has effectively been on our books since 1215, has been recalled once sometime last year, while trying to convict for an airport armed robbery for a third or fourth time, as somebody kept getting to members of the jury! But that's an aside...).