oregon-law-parser icon indicating copy to clipboard operation
oregon-law-parser copied to clipboard

Distill information about amendments to the Oregon Revised Statutes.

analyze-oregon-law

A command line app, analyze, which pulls in an Oregon session law in PDF format:

image

and produces this metadata in JSON:

$ analyze 2016orLaw0001.pdf

{
    "summary": "Relating to speed limits on highways that traverse state lines; creating new provisions; amending ORS 811.111; and declaring an emergency.",
    "bill": {
        "billNumber": 4047,
        "billType": "HB"
    }, 
    "effectiveDate": "2016-03-01",
    "year": 2016,
    "affectedSections": {
        "repealed": [],
        "amended": [
            "811.111"
        ]
    }
}

A web app can easily import this and display it:

Screenshot 2023-10-10 at 8 32 32 PM

Here it is in production. See Main.hs for the top-level code.

Improving flexibility via this intermediate step

In the past, this kind of coding was in the same project as the rest of the application. E.g., here, it'd be a Ruby rake task because the app is in Rails.

But this new, separate repo decouples the data import process: instead of writing more Ruby code for my Rails app, the JSON data is a go-between format. In this way I can, e.g. use with other languages like Haskell when appropriate.