Hawaiʻi's Technology Community

I'm working on a project pro-bono (yes, as in "free beer") for a state department with a very interesting problem. How many programs (as in "food stamps", not as in "vim") do you think the state offers? I don't know either, but I know there are plenty. How many people in the state actually understand the rules used to administer these programs? Far fewer than you think. The rules are complex even when they can be understood and reconciled with each other, which isn't always.

So, say you've got some bright young people going through the mess of rules, trying to make sense of them. The question is: what are these bright young things supposed to produce? Most likely, they'll produce a document using Microsoft Word, in which they do the best they can to disentangle the mess. Could they do better? Could they, perhaps with the help of a bright if not nearly so young programmer, come up with a more structured format? One which could be used to produce, say, an index or cross-reference? Or, since we're talking about rules which determine eligibility for given benefit programs, maybe even a series of flowcharts. After all, the rules operate as a sort of process description.

XML? Surely not. It's one thing to convince the non-techies that it's worth writing in a structured way. It's another thing to convince them to type all those brackets. YAML? Maybe closer. One could imagine a program which reads YAML and produces a GraphViz program to generate a directed graph in lieu of a flowhchart. Another application: generate a simple webapp which performs at least a preliminary screening of eligibility. My initial hope was that maybe Visio itself could be used to express the rules directly as flowcharts, the output of which would be comprehensible by custom tools. However, reading visio files appears (from cursory googling) to be difficult.

So the question is: can one imagine a document format which is simple to type and which represents, in a well structured way, the decision process used by an agency in deciding to award benefits? You'd want to be able to extract, for example, the "inputs" to the process (i.e. what information is required -- age, income, disability status, etc.), and some sort of description of the decision process. It needn't be "executable" in any sense -- we're not talking about having the computer decide eligibility. As long as we can produce intelligible documents of some sort illustrating the process.

I don't expect anyone here to "answer" the question. I'm just hoping that people will have pointers, suggestions, warnings, etc..

Views: 24


You need to be a member of TechHui to add comments!

Join TechHui

Comment by Joe Dane on March 23, 2009 at 5:36pm
Thanks for these comments. On re-reading my post, I think I should have framed the question differently.

It's safest to assume that there's no funding at all. In fact, better to think of this as a hypothetical. You are the leader of the Free State of Kauai, say, and you're starting your administrative procedures from scratch. How would you use (or would you use) "little languages" or markup or whatever to document the rules?

There is no need at all to have the rules expressed such that a rules engine could evaluate them. A human decision-maker will at all times be involved. What would be useful, however, is something to make plain what the rules in fact are.

It's a little more than that, I suppose. Beyond just making the rules themselves plain (you could do that just by rewriting them in coherent English) you want to see how they interrelate, how they depend on common factors, and permit them to be read in different ways: text, flowchart, etc..

Nate: as to your comment, the people involved are in fact quite bright. But they are busy enough without being burdened with learning a programming language, however simplified. I mean this of the actual people I know who are working with this, as well as the hypothetical legislative aide in the Liberated State of Kauai. Like, I could ask them to learn a proto-python, but is there something even simpler I could use?

Anyhow, this is all just by way of provoking some discussion. In actual fact I think the deliverables for the particular project will be much more modest than all this suggests.
Comment by Laurence A. Lee on March 23, 2009 at 4:36pm

It sounds like what you're really looking for a "Decision Service", or more commonly called a "Rules Engine".

If you're looking for an Open-Source solution, the most common choice would be Drools (now called JBoss Rules). It's rather Spartan, but it gets the job done. If you want more polish to make rules administration easier, be prepared to drop some serious coin on a commercial product. They're well worth their asking price.

The other part of what you're looking for is considered a Workflow Management system. Check out Windows Workflow Foundation, or Microsoft BizTalk to get some ideas on how to handle the "Flowchart Process Tree" stuff.

If there's funding for the project, I'd say go with a .NET team that can do BizTalk and SharePoint for the workflow stitching and presentation, and have a look at a handful of commercial Rules Engines to handle the decision services.

Trust me, on this kind of stuff, doing it with these MS Products will get desired results faster than if you hired a Java-based team to build it from scratch or FOSS platforms.
Comment by Nate Sanders on March 23, 2009 at 4:24pm
Any chance of picking out a scripting language that you know already has a code-to-flowchart generator and then teaching them a REALLY small subset of the language mostly involving conditionals and math? Tell them to use meaningful variable names. Then you can actually use the code in the webapp. It's a lot to ask, but they're supposed to be bright :)


web design, web development, localization

© 2024   Created by Daniel Leuck.   Powered by

Badges  |  Report an Issue  |  Terms of Service