Hey, everyone. I'm a self-taught coder who became ...
# introduce-yourself
j
Hey, everyone. I'm a self-taught coder who became a lawyer, who fell in love with the opportunities to use logic programming to do knowledge representation of laws, regulations, and the like, and who after 10 years as a lawyer went to get an interdisciplinary LLM in Computational Law. Finished that spring in 2021. Immediately afterwards spent a year working on the L4 language at Singapore Management University. Since last fall, I am the Director of Rules as Code at a Canadian federal government department. "Rules as Code" is a public administration, legislative drafting, and software development methodology that takes advantage.of isolated, machine-executable representations of relevant rules, as soon as possible in the process. The big problem with Rules as Code is the tools. The best (not the most popular) tools are based in logic programming, because of the structural similarities to how laws are written. But people who build apps seldom do knowledge representation in logic programming. And giving better tools to only the coders doesn't solve the knowledge acquisition bottleneck problem. So we need tools that are realistic for subject matter experts to learn, and use. On the basis that of a child can do it, so can a lawyer, I decided to try and build a user-friendly interface to the Flora-2 logic programming language based on Blockly, which came from MIT's work on Scratch. The result is www.Blawx.com. My ideas about the features that a domain specific knowledge representation and reasoning tool for law should have keep changing as I learn, as well as my understanding of the best practices for user-friendly development environments. I'm currently enamoured with the s(CASP) system, because I think answer sets and stable models with justifications have deep parallels in how law is read and understood. And automatic justification is an absolute necessity for trustworthy public systems, as is open source. I'm working on satisfying myself that s(CASP) is an appropriate target language, after which I will start redesigning Blawx to use it. I learned a lot about programming environment design from some FoP content recently, and I'm here to learn more, and be exposed to more and better ideas, particularly in the user-friendly interface design space. I am also eagerly waiting for the advent of the world's second big 3D programming environment, after Minecraft Redstone components. Looking forward to the learning.
πŸ’– 1
πŸ‘‹ 9
πŸ‘‹πŸΎ 1
🀯 9
k
This is utterly unlike anything I've done in the past, but very close to things I've been interested in for years but not known how to make progress on.
a
"Blawx" is one of the best names for anything I've seen in a long time, especially making use of a (previously unused, I assume?) 5-letter domain. Anyway, godspeed on your mission, it can't come soon enough. :)
🀣 1
j
@Andrew F That's very kind, thanks. Yeah, I was surprised when the .com was available a few years ago.
😎 2
@Kartik Agaram "Interested but not knowing how to make progress" was me until about 2016.
k
I can't quite get blawx to do anything. Do you have a video demo or anything like that? I'm not a lawyer, so I'm particularly curious about how it would fit into a lawyer's workflow. Are they moving blocks around and getting auto-generated contract text out? Or something else?
j
It's possible the back end has crashed. I'll take a look. Thanks for letting me know. There are some videos online... let me see if I can find one.

https://youtu.be/bzBouePm5Jsβ–Ύ

That's the best example I can find at the moment.
The help documentation also has some step by step examples built in, I should say.
d
@Jason Morris Welcome! I spent much of the last decade with at least a foot in the legal tech space, working on everything from eDiscovery to contract review and whatever else. A little while ago I decided to sit down and get my thoughts together on what I’ve seen in the industry, where it falls short etc. You might find it interesting, or at least amusing: https://danielkrasner.com/files/E-drudgery.pdf (The working example is eDiscovery but the general argument really applies to all of legal tech, and really much of business geared software out there.)
πŸ‘€ 1
j
That is a very compelling note, Daniel, thanks! Love to chat more about it. Will get back to you later today.
d
anytime, glad you liked it
j
I just wanted to say, that I appreciate the focus on the mental processes of the person. That said, human beings are extremely flexible devices. We can, if we are motivated to do so, learn how to use tools of considerable complexity, as long as the learning curve is not too steep. In a lot of cases it is not that the tool is badly designed, even in the hands of an expert user. The problem is often that there is no way that a person who is not already an expert can have any intuition of the ROI on becoming one, and the curve is too steep to make the first steps look valuable.
I always go back to Spreadsheets, so I apologize, but they are another good example of this. WIth lambda functions, Excel is now turing complete. But I can show my 10-year-old how to add two numbers, and the value of that for a person who needs to do math is immediately obvious. So the first step of learning seems obviously worth it. That's the thing that is missing from a lot of technologies, I think.
So I think it's less about how we currently think about things, and more about whether we have provided motivations to take the individual steps required in changing how we think about things. For boolean search, you type in one word, get back cases that have that word in them, is a pretty good starting point. That is immediately easier than the non-tech alternative. For e-discovery? Yeesh.
The other thing is that in the legal realm you have to draw a distinction between the things that lawyers do and do not get paid to do, and that they do or do not enjoy doing. Because they are paid hourly, and rewarded professionally for the quantity of hours billed, not the quality of the results, they are perfectly happy to do inefficient things that they enjoy, and are paid for. There's no motivation to do those things faster. Usually, competition would create the incentive, but in the legal realm competition doesn't work, because it's an oligopoly. So there are differences between convincing lawyers and everyone else to use technology.
But those are all "additional" comments, not contradictions. Your point about designing around the way the computer works is extremely well-taken. That's why I hate the idea that code is text, and the idea that you have to start with a one-dimensional string of characters before you can get to anything with a remotely more sophisticated internal structure. All code gets parsed into trees. Why don't we let people directly input trees, for starters? JetBrains and things like Vlojure and even Blawx are all sort of pointed in that direction, but we haven't gone far enough. Spreadsheets, at least, use a 2-dimensional grid. Arguably, languages that use meaningful whitespace like Python are 2D, but they are 2D inside a structure that is designed to mimic ink on pages. Arbitrary and weird. Anyway, end of rant.
d
The latter is more of a conversation about computing a medium of thought, malleable environments, and so on which is not the theme of the writeup. Plenty of that talked and done about by say Alan Kay if you want to go back to Scratch/Squeak and all that. The billable hours model, is also another conversation. It’s a terrible model for law, but note there is nothing here about efficiency (corrosive word in general) and nothing to say that it would be undermined. In my experience it does quite the opposite, since it pushes the time to higher billers. Nothing good about that, but it fits the bill. But this is really about tech, not legal.