OK, new version, short 🧵. What do we need from a production-quality #RulesAsCode tool? Web based. Open Source. Free. Code and law, side-by-side, literate programming style. Declarative, logical. Encoding annotations. Tests. Sophisticated reasoning around uncertainty. 1/
Visual interface for natural language explanations. Good structural isomorphism between law and code. Ability to deal well with defeasibility. Date math. Number math. Abductive reasoning. Explainable negations. Minimum stable models. Easy to write. Easy to read. Web API. 2/
This is the closest thing I have seen. SWISH is an online literate programming environment for SWI-Prolog, which has now re-implemented s(CASP) as a @SwiProlog_ library. Here is the r34 encoding I did last year as a SWISH notebook. 3/
How close? I feel like easy to write and easy to read are still up for grabs. Math is still an unknown inside s(CASP). There is an open source proof of concept tool for deploying as a web API, very easy to modify to put the code on the server, instead of in the request. 4/
If we had a version of SWISH that gave you a one-click way to deploy a query and its associated program as an API, and if the math is doable, that's gold standard. At that point just ease of use is left to improve, and that's a design problem, not a technical one. 5/
For sophisticated applications it would be nice to have stateful sessions between the app and the reasoner, so you could add answers from the user and recalculate your abductive queries about what might still be true. But the absence of that is not a deal-breaker. 6/
It's also something that with some work you could simulate on your front end. The ability to generate expert systems from the encoding, L4-Docassemble style, would also be an important feature to add. 7/
But what may be most important is how easy SWISH makes it to demo #RulesAsCode. Non-programmers can go in there, read the text, skip over the code, click "play" on your query, and see what the tool is actually capable of. That, plus s(CASP), is huge. 8/
I would be VERY interested in your feedback on the SWISH link above. If you opened it up to take a look, what did you think? Let me know.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Group 1 created a @docassemble interview that streamlined the criminal client intake process at @slsedmonton by, in some cases, weeks(!). A paper-based process happening at two physically disparate offices, between 3 different people (client, caseworker, and dayleader)... 2/
is now all handled inside a single @docassemble interview that generates an intake form identical to the ones currently used. The need was made obvious by covid, but the resulting tool is better than the pre-covid system. And the students involved and @slsedmonton are 3/
Lawyer and #legaltech friends in #Alberta. There isn't a lot of good news right now, with #coronavirus or anything else. But there may be an opportunity to do something, and I'd like your help.
Courts are busy places. Social distancing is often not a possibility.
1/n
Staying away from court will be a part of good social distancing practice. But staying away from court when you have a date on which you are obliged to appear can exacerbate your existing problems, especially for self-represented litigants.
2/n
If a self-represented litigant has a court date that they would prefer to adjourn because they are ill, or because they have young children, or live or work with elderly people, or whyever, the Court would likely be sympathetic.