At SMU’s Centre for Computational Law we are working on an open source domain specific language for law, called L4. The idea is that you should be able to write legal rules, like laws or contracts, in L4, and other applications should be able to translate that encoding into other forms to do useful things.
One of the useful things that we want people to be able to do with L4 is to build expert systems. An expert system is an application that is given a question to answer, collects relevant information from a user, and then provides the answer…
My birthday was last week, and everyone chipped in to get me a trip to Universal Studios and the Singapore Flyer.
Dot kept asking why we weren’t at “Warner Brothers Studios”, and I told her I don’t even know if that’s a thing, but they definitely don’t have one in Singapore.
A blog post didn’t even cover it, so here’s a YouTube video of the trip!
Thank to everyone who pitched in for the cool experience. It was a good time.
My new favourite roller-coaster of all time is Battlestar Galactica: Human vs Cylon (Cylon). …
I was working on an s(CASP) encoding last week, and learned something that gave me a better intuition for how to encode things well.
I needed to encode what counted as a business, and there were two things. I needed to encode what counted as a business entity, and there were 7 things, each of which required a business, which meant there were 14 possibilities total. Then I needed to encode what counted as an executive appointment, and there were three. One of them required a business, which meant that branch had two options. One of them required a business…
I’ve been spending a lot of time recently thinking about the problem of choosing how to model things when doing automated legal reasoning.
Just so we’re on the same page, when I talk about a model, there is a real thing, of some sort, and there is a representation of that thing in a language which is useful for some reason. The representation is the model, and the language is the modelling language.
The modelling language is not the thing itself, so you have to have a connection between the real thing you are modelling, and the terms you use…
Yesterday I posted about what justified stable model query-driven constraint answer set programming is. Now let me tell you a little bit about why I think all of that matters.
The higher-order logic features of s(CASP) make it very easy to implement forms of defeasibility the way it is implemented in legal writing, which is that the relationship is noted only in the default, or in the exception, but not in both.
In law we need to be able to ask questions about laws that don’t involve specific fact scenarios. For example, “under these rules, can a person be both…
I spent some time today trying to understand where s(CASP) fits into the world of programming languages more generally, and here’s what I think is going on.
Remember, I’m not an expert. This is my amateur understanding after playing with it for a few days.
The usual paradigm for programming languages is called imperative programming, in which you basically tell the computer what to do, and in what order.
Lots. Object-oriented programming, functional programming, logic programming. …
OK, I think I’m going to call it. Flora-2 is no longer my favourite tool for doing Rules as Code. My new favourite is s(CASP).
I’m working on a paper for the International Conference on Artificial Intelligence and Law at work, and I’m doing an experiment, the results of which are blowing me away.
I took a piece of legislation recommended by a potential industry partner, and encoded it in s(CASP). I did it as faithfully as I could, which means I did not try to encode what I thought it meant, I tried to encode what it said. I…
Gardens by the Bay is a set of two greenhouses, similar to the Muttart Conservatory in Edmonton. Dot decided that we needed to do something touristy, so I took her for Valentines Day.
The two greenhouses are the Flower Dome, and the Cloud Forest. We went to Cloud Forest, first, and this is what you see as soon as you walk in the door.
It’s an indoor waterfall probably about 6 stories high. You walk around it, then take an elevator to the top, and walk down through the middle, with excursions out onto flying walkways. The top walkway…
Flora-2 is a logic programming language that implements defeasible reasoning using a method called “defaults and argumentation theories.”
Here’s how it works.
The first thing you have to do is choose the argumentation theory that you want, but Flora-2 has a very intuitive default.
Flora-2 gives you the option of specifying that some rules override others either by identifying the rules, or by identifying the conclusions. If you want to identify the rules, you need to give them tags. They can take more than one, and more than one rule can have the same tag. …
Lawyer, Round Table Law; 2018/2019 ABA Innovation Fellow; Sessional Instructor, University of Alberta; Computational Law (Symbolic AI) Researcher, CCLaw @ SMU