 And welcome back everybody to the episode eight of idea flow, the monthly computational law demo and discuss community building show, in a sense, that we like to produce as part of the content of the MIT computational law report. I am Daza Greenwood of MIT and we are joined by most of our core team for the report, Brian Wilson, our editor in chief, also Andrew Domsolski, our research editor. And we're holding double duty today, Megan Ma, who is not only our managing editor, but she is also playing the role that we've come to call discussant for this show, which is basically someone with a little deeper content and subject matter expertise. And Megan's going to help sort of catalyze and lead the discussion. And speaking of words that start with Cata, our guest today, our Katala, who you may know if you've signed up, are pioneering something that's near and dear to our hearts, which is a domain specific language for law. So without further ado, I'd like to hand the baton to you, Megan, and invite you to do some more specific introductions and get us started. Hi, hello, everyone. Thanks so much for joining us. I'm really excited that I was asked to be the discussant for this week, particularly because Katala is doing such an incredible project and is pioneering something that really is on the frontier of legal tech. So what is Katala? So Katala is a domain specific programming language designed for deriving correct by construction implementations of legislative texts. So this week, we are joined by Demi and Leanne to discuss their research in the development of this language for law and to explore maybe some of the problems and prospects of their language. So Demi comes to us as a PhD student from INRIA inside the Perseco team. He specializes in the study of programming languages and formal verification. Leanne is a PhD student in Paris at the Parisianne, or Pontianne-sur-Bonne, and her thesis is actually focused in data protection and algorithmic law. And together, they had developed Katala. So I will then lend the stage over to the two of them to describe a little bit more about Katala and to kind of get us in and take us through. So I'll hand the mic over to you. Thank you, Megan, for the really kind introduction and thank you, Daza, for the invitation. I am really excited to be presenting this research project to you today because I'm really looking forward to all your observation and all the discussion we'll have. So I'm Leanne, as Megan said, and together with Demi, we will introduce our language Katala just as a quick introduction to the project. So it started with Demi and I two years ago, but now our main team has developed a interdisciplinary team because we also have been joined by Maria Lozen, who is a sociologist, and she will help us to understand the process of programming together. And we also work with Sara Lowsky, who is a professor of tax law, and she really helps us in the matter of understanding US tax law and how to make it into an algorithm. So to get started with the proper subject, as you know, in order to calculate taxes or social benefits, states use algorithms, meaning that they obviously don't calculate everything by their hand. They just compute all the law into big computers and manage to get all the results for each and every individual. In France, it's been done by a special team of the DGP, which is basically the tax part of the government, and they've done so since the 80s and created a very complex language because sorry, very complex code. Since it has approximately one million lines, so very complicated to read. Maybe, Demi, if you want to show us an example of the language, I don't know. Just to show you how it is, basically that's what it is. So it's absolutely impossible to understand if you're not a computer scientist, and even if you are, it's quite difficult. It requires a lot of work. So building on that and building on the fact that normally every individual has the right to understand how tax are calculated and tax and social benefits, Deni and I thought of how would we manage to get it to make it better? We also have to bear in mind that tax law changes every year, so it's in constant evolution and this is something that is very complicated to implement when you have such a complicated language. So basically what we thought was we could introduce a new methodology to really have accountability in the way we write algorithm and to make sure the algorithm actually matches the law it's supposed to be. But to do that obviously we have to have an intense lawyer program or interaction because the program doesn't know the law and the lawyer doesn't know the language, so they have to work together. And so we've built on this idea and created a methodology in three points that I will present you now. So the first part of our methodology is their programming. In order to have the lawyer understanding the code and the programmer understanding the law, we believe that they have to interact in real time at the moment of code production. And so we did it a few times already. What we do is we sit together and we read the law together and then we produce it together. And this is why we are absolutely sure that the lawyer, the computer scientists, we get to understand the law and every time we have a problem or any patient problem we can discuss it together. So that's the first part of our methodology. The second one is literate programming. So as Denis showed you on the screen, we don't know with the tax code that we have today in France, we have no idea which part of the law the code actually refers to. And that's a problem when you want to make sure it goes together. So literate programming makes sure that the part of the code you're reading is referring to a specific part of the law so we will have the law written and then the translation in computer language just under it. We can always relate to it and so we can discuss always the same document. And lastly, but not least, we believe that the code must be open source. Obviously there is some especially in France laws that oblige the state to publish algorithms that are used for tax law or social benefits, but it also makes the states and people who calculate the tax more accountable. It also happened that people from the outside, citizens can access to that and check if it's right and have ways to maybe contest for their taxes in this matter. But to do so, obviously, it's impossible with the language that you've seen just before because I, as a lawyer, even if I specialize in data protection and algorithm, it's absolutely impossible for me to understand. So we need to find the way for lawyers to be able to read the code or at least be able to understand it. And this is why we actually had to create them in specific language, which is Catala. And I'll let Joanie say what was that. Thanks, Leanne, for introducing the methodology and the observations that led us to create Catala. And the basic idea of the language is that if the code should reflect the algorithm, then let's write both together side by side to compare them in that literate programming style. And to create a programming language that enables such a style of programming, we have to follow the logical structure of the code, which follows something called default logic, which is a type of logic that has been uncovered by various scholars in the 1880s, 90s, but also more recently by Sara Lozky regarding more precisely the US tax code. And the way it looks is simple. You basically, you know, if you want to produce an implementation of some of the statute of the US tax codes, you take the text of the statutes, and then you're going to put a snippet of Catala code just next to the statutes that will effectively capture the meaning, the algorithmic meaning of what the text is. And then you go to the next part of the statute and you repeat the process until the whole body of legislation is formalized. So after you have done that formalization process, according to the methodology that Liane presented, you want to deploy Catala programs in production IT systems. And for that, to offer the biggest amount of flexibility, we intend to use not a scheme of interpretation and an API to fetch results via some business via some rules engine, but rather simply to compile the code into a static library that can be directly used by the IT system that you use in the native programming language of that IT system. So, for instance, if you are a large organization that needs the rules to be centralized and then distributed to be used in various parts of your IT system, you can have your Catala program compiled down to C if you want to do batch computation or even cobalt if you're on an old mainframe. You can also compile it to JS to embed it into websites or to our or Python or MATLAB if you want your economists to run some models of what it would have as an impact to change some part of the loop. So that's basically for the five-minute pitch of Catala. More info can be found on this website whose address is shown. And then maybe I can follow up with a little demo of what a larger program looks like or we can show you the trace of a program. So Megan, it's up to you to tell us what you want. Yes, absolutely. I think that people would really benefit from seeing Catala in action. So yeah, take it away. So here's a more fleshed out version of that implementation of section 142 of the US tax code that I showed you earlier. So basically the structure of the code follows the structure of the statutes. But as a prologue, you might want to encode the data structures that the program is going to use. So you're basically going to declare your data structures but also function signatures in this little box here. So here we have an enumeration because it discounts. The statutes talks about like some kind of discounts which can be like excluded or included in your some kind of tax deduction. So the discounts can be either on the property or so by services that are sold to the company to one of its employees. And then you have this concept of scope, which is kind of a function. But it's a function that's adapted to the legal concept, to the legal version of what an abstraction is. Because it's a function that's where you can actually access the local variable and tweak them from the exterior, which is something that you might want to do if you want to build like larger applications with different modules that talk together. And when you're doing that by implementing legal statutes, you might notice that these modules, abstractions modules, they kind of tweak their internals in kind of a spiety code manner. So then you can, Katala is a programming language. So you have to like define some codes or here you have, you define whether it's property or not. This is a Boolean and then you match the type of the discount with, if it's a property, the truth, services and false, et cetera, et cetera. And then you have this kind of literal programming implementation, where you have one sentence for two sentences of the statute. And then up you have the implementation. In the B you have the same thing. And you can see that the code snippets are of course bigger than the text of the law, since generally the text of the statute is really concise and contains a lot of information, which you have to unpack when you're implementing it. But as you can see the size of the snippets, they are not too large either. You can review them and like fit them inside a single screen. And as you can see also, it's also quite simple. So even if you've never coded it, you're able to understand how it works. So I would be very happy to have your opinion on that for the lawyers to tell me if they actually believe that it's not that complicated, but we really made it like the best effort to make it as simple as possible. And also to use all the legal terms inside the code. So if you want to see it in action actually on another page of the website, the Friend Family Benefits Computation, which is currently the most fleshed out example that we have for roughly 1,500 lines of code. You can see we built a fully fledged simulator of you inputs your situation for the household and then it shows you how much family benefits you're allowed to with respect to the current French law. And for instance if you, so here this child is in split custody. So if you move the custody to being split or being like full, then you can see the amount changed in real time and below here. And the computation is going really fast because everything is compiled statically to a JS program that interprets natively in the browser engine. So it goes faster than most rules engine that you have seen. And we can guarantee that it's absolutely the same as what the law said because we put it together for hours and hours. And it's totally the same thing. And if you want to check, you have the law just 100. This is really fascinating. And I think one thing that I'd be interested in first is you showed us a little bit of the code just now. Is it possible for us to see actually the natural language version of the legislative text and we can see kind of like a side by side comparison of how the natural language had transformed into Katala? So the natural language, this is like the actual source code of what powers this web page and this is what it looks like. So here you have the metadata, which is like the signatures and data structures I've talked to you about. And then you're just having marked down like the sections of the statute and here's the text of the statutes. And here's the Katala snippets. This is really what you edit as a programmer and as a lawyer. This is what you see. Fantastic. So I guess maybe I'll kick us off with a couple of questions, seeing sort of your incredible presentation and also a bit of a demo of Katala. And then I will open up the floor as I'm sure the audience is kind of waiting in anticipation to ask you more. So to start, the word kind of domain specific language is kind of tossed around here. So I think in your perspective, what do you actually define as a domain specific language for law? It seems to me at the moment that Katala acts as almost a translator, not only between natural language, but also actually into sort of machine readable code for other programming languages. So I kind of want to see what your perspective is on how you define a domain specific language. So Jan, unless you have something to add, I think this is more of a question for me. So I come from the community of programming languages and in that research community, we have like very precise terms to define what is the language, what is translation, et cetera, et cetera. So for me, a domain specific language is just a programming language whose expressivity is restricted to a certain domain. And that's all it is actually. And for instance, in Katala, you're not going to be able to implement a sorting algorithm or to implement like some kind of web services or something like that. The primitives and the kind of expressions you can embed in the language are strictly limited to only what you would be using when translating law into code. And then, of course, Katala is a programming language. So it has a compiler because or all programming languages have a compiler or interpreter. And the compiler of Katala happens to translate Katala to other programming languages. But this is kind of a classic scheme in programming languages because apart from like the mainstream ones like Java, C, Python, et cetera, which can execute directly, if you build your other like smaller domain specific programming language, you might just piggyback on existing programming languages that effectively run because the work of creating a runtime environment and actually compiled onto assembly because that's where things happen on the machine is really excruciating and you don't need to repeat that every day. Yeah, really fascinating. And I think sort of, and this is probably a question now towards paired programming. It seems that both of you are incredible enthusiasts around sort of sitting side by side and working through legislative text and kind of transforming it to this very literate sort of code. What do you find were sort of the initial startup problems? Perhaps there were actual translation issues between the two disciplines, given that Leanne, you're from law and Denis, you're from programming. So I'd be interested in more and hearing more how you actually got into the rhythm of this paired programming process. I maybe will begin to answer and then Denis can complete what I think. So I think we must first start to say that Denis and I, like it's very complicated for law and competence to talk, just like to have a conversation. And I think Denis and I were very lucky to be able to have enough knowledge about each other discipline, but also enough like open mind to be able to really get on the words and on the specificities of each and everyone's like discipline. So I think that's actually something that is very difficult to do when you start on doing that. So it's like a barrier of just do we speak the same language? So that was like the first thing that must be taken into account. But then after that, I think because I went towards like computer science and Denis came towards law, we basically kind of found a way to do that, which was natural. And I think it's kind of, it's possible for everyone because some of my students did it with some of Denis interns and we have other people we use Catala and it takes time to build this kind of working relationship. But it does work because we have like somewhere working, we can do it together. And I will also add that it's very, very stimulating and very interesting process. I mean, like when we put together, we can do two hours on one paragraph and we don't see the time go on because it's so interesting. And we like really talk and discuss every meaning of the law and it's really, really nice thing to do together. That was a great answer, Yana. I don't have anything to add. So I see we've got a really interesting question from Brian. Do you want to pop off mute and put it out there? I'm sorry to interrupt you, Megan, but I want to make sure we don't lose this thread of thought that Brian's putting out. Yeah, I was just about to open up the floor. So what timing? So one question that I was thinking about as you're going through, and I think this is something that a lot of open source projects have to address at some point in terms of how they phase their growth from the idea to the version one to the version two and on and on. And so the kind of key question that I've got is around how you all are doing that. So how do you want people to engage with Katala? And what is the best case scenario for getting people involved with you all? What does that look like to you? And I'll add another one to that. What's the best case scenario that you can imagine for Katala? This is a very big question. And I think that unlike a traditional open source project, Katala is really focused on experts. It's a tool for experts. And this is why I've been getting in touch with various parts of the French administration. Each of the lines of the tables that you have seen earlier, I contacted the person responsible for maintaining the code basis in each of them. And so so far with the French tax administration, it's getting well. I've been able to meet the developers. I've been able to meet the lawyers that specify this kind of things. And we're in the phase where we're talking budget for rewriting everything in Katala. So I don't, of course, things can happen. Nothing is sure until the thing is stemmed by the authorities. But this is the best case scenario of what would happen actually in Katala. So I've got a short follow up, which is, I don't know, you might think it's interesting, you might not. But I think that this is a very commendable thing to go out and do all that stuff with all of these people and track them down and make it into what you have. And I think that's awesome. I would be really interested if there was a way that different people who could maybe like qualify as experts could kind of get involved or if there were kind of like trial things that you could kind of try out and then one of the experts could approve it or something like that. Because I think what gets where it gets really interesting and where the network effects of open source projects kind of exist or when you sort of democratize the access to the editing. So a lot of people had similar ideas around the encyclopedias being edited by just anyone. And now Wikipedia has become a source of very high trust relative to its cost. And so I'd be interested if there was something like that. Maybe it's not like a full kind of 1000% open, but I would be interested to learn more about that process for opening things up so that you could get some of that involvement, some of that participation that I think will be really needed in the future. This remark is really relevant because this actually ties to kind of an accountability and democratic issue of how do you enforce the law when you're like a public agency or government. And there are laws in various countries that mandate the government to open up its code bases, but so far it hasn't shown any effect. My hope is that if we managed to have the states have its official implementation in Catala and opened up, then that would grow as an incentive for people to actually learn the language because they can actually edit and read and understand and propose suggestions to what their government is doing. So I think that's the goal that I'm trying to aim for. Yeah, that's really good. And this is just kind of an idea that I've talked about with a few people before, but I don't know France, they have kind of like a continuing education requirement like they do here in the US, but it might be really cool to like offer people to get continuing education hours for maintaining the legal code base or that side of things that could be a really interesting incentive mechanism that could be kind of like mandated among trusted network of people. That's a great idea. And I think that the government is always looking for free labor since they have to reduce the number of civil servants. So maybe they like that idea. That idea is completely free for everybody. Great. We have a question from Andre. Andre, not sure if you wanted to ask it yourself. Yeah, I put the question in the chat, but I can make here. My doubt, first of all, congratulations for your presentation. I had to enter late in the session, but it is very interesting how to translate legal language to code, but we have some hiccups. We have a generic expressions, a generic language in some legal texts. How we can deal with this? How do you propose to deal with this? How to translate to code? This kind of openness, this kind of generic language that it's common in some legal language. Thank you for this question, because it's actually really important, and we've put a lot of thinking on that, so I'll just answer. But before you go on, little anecdote, when Denis came to me at the beginning and told me about the project, I didn't know much about domestic language. And I said, it's impossible to translate tax law into code, because no one knows what legal words mean, so it's impossible. And by doing that, I understood that actually there's so many ways to resolve it. So it's been a really important problem for me, and I think it's for lawyers, it's the first step that is like, well, it does not possible, but it actually is. Because your question is basically about interpretation and ambiguity of the law, and we know that the law has so many words that no one can really understand what it means, and scholars would argue here is on what, I don't know, let's say contract, for example. So we have two ways of dealing with that. The first way, obviously, is to try to solve the ambiguity, meaning we go with case law, we read literature, we check with specialists and experts, and we try to solve the ambiguity. If we can find a way to solve it, we will put the source into the code, not as a part of the code, but as a reference for people who want to check it. So that will be like the way to say, okay, so we chose this interpretation because of this reason. So we completely transparent on the problem and on the way we solve it. So that's the base case scenario. Sometimes that's not possible, because there would be things that are just too ambiguous, or that no one noticed yet. We had an example which took us, like we talked about that when we could in the textbook for three hours, something like that, and we're like, okay, we just have no idea how to calculate this thing. So we just leave it open. We say we don't know for this reason. So this is the first interpretation we can have, then this is the second one, and that would be the result. And this way, like there's no, we don't decide on something that we cannot decide on, then we rest in our jurisdiction in a way. And it's also where open source is very important, because in this way maybe other people could help us to solve that. Yeah, so I hope I answered your question. Maybe Denis you want to add something. Yeah, I would say that by leaving it open, Yann means putting it as a user input. You as the user that's used the system can choose what interpretation you want to give. Okay, perfect. That was perfectly answered. My concern, my main concern was that by translating a lot to code, we make some previous adjudication of some cases. We decide previously what the law says or not for something cases that's excluding some situations that could be under the norm, under the legal norm, and restricting the sense of the legal norm. This was my main concern. But when you make sure that the choices are transparent are open, this could be a good case in order to revise or review the translation later in the process when some hard case or some specific case comes to adjudication or comes to thank you. Yes, you're right. And we've been really cautious about that because it's a problem. We've talked about that a lot. But so thank you for raising the discussion. And it's a problem that is being highly discussed when we deal with AI, with the control and now beating of AI. In some senses, the same problem, but we are applying to another field. Excellent. And speaking of AI, we have another question on the table, which includes extra flooding into a future that may leverage. I'm sorry, Megan, did you want to? Oh, I was going to say actually Divya had raised her hand next. So I'm not sure if you wanted to go on that thread first. Yes, forgive me. I can't or I don't know. Please continue. I'll first listen to you and then I'll say something. I'll listen to you first. Yeah. Please. Oh, very good. Okay then. So we now have a cue and let's just say next up is Blake. And then right to you, Divya. And I apologize for jumping the cue if I did. But picking that thread up again, Blake has a question that includes looking at potential ways to leverage machine learning for the human machine interface. But I want to highlight one aspect before we get into Blake's question, which is he brings up something that I was also wondering about, which is this notion of what Blake calls and some people call constrained language. It goes by various names, but just to unpack that a little bit for those that may not be familiar, it's this concept of using a, excuse me, a subset of natural language, but only permitting the kind of vocabulary and some other kind of a grammar that is directly mapped to statements that can be expressed through machine readable code, like if, then, and greater than, and other things, so that humans, once they learn this dialect, can express themselves in a way where there's very little chasm between what they've said and being able to do a verifiable refactoring, I guess, or encoding, if you will, into the applicable machine language. So that's what Blake means as far as I understand by constrained language. But with that sort of context, Blake, did you want to come up and ask your question or would you like me to maybe just read for the record what you have in the chat? Oh, yeah, I was just going to jump in real quick. This is a really cool project. I think this is awesome. I, you know, and I, I guess when I see something like this, I'm kind of problem solving oriented. So when I look at it, it's like, you know, is there a way to talk about law in a way that we restrict nouns, verbs, and, and so on and so forth, so that it, it embodies what the law is saying, but at the same time, it lends itself very readily to a programmer or someone that's using the library to, you know, if we're still having human interaction in this process, does it accelerate it where we can read in that, that corpus from the original law and it is able to distill the meaning of what, what the law says by using that, you know, that the expert basically has to cede the constrained language to begin with. So you would have to have with the respective, you know, interpretations by language and law. But once you have that distilled, then, you know, you could even create a tool in which someone that is an attorney that can interpret the law can construct logical elements that they find in the law and then just hand that over to a programmer and then the interactions become basically verification routines as opposed to I guess kind of boiling the ocean from the start. And then if you put a machine under witnessing that over iterations, then we can actually get semi automatic or automatic translations. So, and I have a tendency to jump way ahead. So, and I did like the first question about how we interact with this library, maybe to experiment with things like that. And I was just curious, is there any plan to explore, explore any tools like that or any process like that? That was it. Thank you. Thank you, Blake. Maybe I can take the question again. So what you're referring to is called constrained natural languages. This is like the term there. It's an active research area. It's a different school of thought than mine. But basically, I would say that you have to do a trade off between the granularity with which you want to follow the legal text and the simplicity of the code that you're going to produce. If you want to use constrained natural language, then you're going to want to build sentences that like map the original text of the law. But when you do that, then you have to incorporate all the things that the law talks about. And when you read the statutes, not all of the part of the law actually means something in terms of computing. They can talk about other things and stuff. And also, if you want to use constrained natural languages, I mean, this is kind of the idea of the Singaporean people that are doing the L4 domain specific language. They're kind of exploring that idea. And then you have to model in your language these notions of the anticlogic, which means who can do something? Who can Sean do something? Shull do something? Then you have to build that actor model inside your language to be able to follow what the law is saying. And in the end, you have a very complicated programming language. And then you can't use the same simple techniques of compilation, which I'm doing for integration. You have to use other techniques. So I would say it's a different school of thought. And I would very much like to see improvements in that area and also like evaluation and real work systems. Concerning the machine learning part of your question, this is actually like a dream that many have because for organizing the law, it's really hard and it's really to use. And we've done it for several hours with Liane. So it's a process in which you learn a lot about the law and you gain competence, etc. Of course, if it could be automatized, we would be all the more happy. So I'm sending actually in the chat two papers that have attempted to use machine learning for formalizing parts of statutes. They date from 2017 and 2020. And with the current NLP techniques, they conclude that the techniques are not up to the challenge and they have poor results in their evaluation section. Maybe the technology will improve, but at this time, doesn't seem to be viable. I think since we have quite a question queue sort of forming, my recommendation is that perhaps we'll ask all the questions at once. And then it'll be a tough job for Denis and Liane to kind of fire off their reactions. And obviously, this is very exciting, which is why we have so many questions. So we'll start with Divya, then we'll have Jeff and Misha and finally with Brian. Divya, you have the floor. Thank you. I do hope I'm properly audible. So first of all, I'll take like 90 seconds or so. I'm sorry to say first thing, amazing, amazing project. Oh my God, I'm having all sorts of crazy ideas right now. So first thing first, I don't know how you guys got this idea of turning law into code. It's amazing. My background is engineering and law. So I enjoy doing that, but people used to call me crazy. Now I can tell them MIT is already doing it. So don't call me crazy. That's settled. Now by the way, it's a katala. MIT is just happy to be communicating and propagating their good ideas. It's awesome. I just don't have words to explain how excited I am, because MIT was the first place where I wanted to apply for my PhD, but then they did not have law. So mostly I used to get no as an answer, but anyways. So my question is you are trying to turn law into code. That's perfectly fine. But right now, if I can understand it as only US is being taken as a data center, as an input center, or is it worldwide data? Because Indian data, as much as I know, except Supreme Court and a couple of high courts, most data is not online. And that is what is going to affect the whole data centric conversion of this, your, your coding, right? Because every case in lower courts in India is a very different aspect of it. And how are you looking forward to converting it in regional dimensions? And how soon are we going to be reality? Because I am really excited and I would love to see at least run this kind of thing in my codes and possibly as soon as possible. So please do let me know how demographic will work and how geography is going to help. And if I can be of any help in Indian way, because I practice in Supreme Court of India and that's pretty much the center. So like something I would enjoy to provide data if possible. Please do guide me as in how demographic is going to help this coding or coding is going to help demographics issues being solved. I may be vague. I'm really sorry guys. If I'm not making sense, you may say that I don't want to answer the question. But if you can find sense, please do answer. Thank you. Wonderful. Thanks so much, Divya. Jeff, you have the floor. Hi, can you hear me? Loud and clear. So I'm an attorney based in Luxembourg. And I couldn't follow everything that was said by the webinar. But just my question, an upfront question. Is this to encode regulation and law? So state issued regulation? Or is it also about contracts? It's mostly state issued regulation. But then I mean, if your contract is drafted as a legal statute, then you can use the same tool, right? Because it's the programming language. So you can use for different reasons. Maybe I can answer to Divya as well again. Yeah, sure. So Divya, Katala has several front ends. There is currently an English front end, a French front end and a Polish front end. You can actually translate the keywords of the language into anything that you want. So I guess Indian is Indian, Indian or English would not be a problem. And as for the material, even if it's not online, I mean, as long as you have your hand on it, you can pull it into a file and write it. It doesn't have to be online for you to use it in the Katala program, right? But the data that Katala pulls from is mostly the statutes, the legal statutes. It's not like the cases in the applications of Katala are more geared towards statutory law than case law or common law. Wonderful. Misha, you have the floor, and then we'll have Brian with the last question. Great, thank you. I'm not a computer scientist or a lawyer, but I am the co-founder of Project Canopy, which is a startup NGO for providing environmental intelligence about the Congo Basin rainforest. And one of our projects is about reading laws for all six Congo Basin countries. Obviously, these are Francophone countries, so it's Napoleonic Code, which lends itself well to algorithmic interpretation. But I actually came across Denise Paper last November, and I thought, okay, this is a good start. So I'm very excited to see the progress that you guys have made, and I'm very happy to be here today with you. My question is about interfacing with other approaches to the broader problems of knowledge management. We've been looking at knowledge graphs in particular, which seem to be having a renaissance in the last couple of years. Knowledge graphs are more domain agnostic, more flexible, and I would like to get you, but this is like, you know, from the statutory point of view, this is very specific, it's very laser focused, and that's what I like about it. So I would like to kind of get your opinion on basically the idea of is there a way for this kind of very narrow, but very foundational work that you're doing to interface more broadly with knowledge graphs. So building on Jeff's question about statutes versus contracts, one of the things that we want to do is we want to process all of the contracts for logging in the Congo Basin. That's about a thousand concessions, a thousand contracts, but they also have to interface with the law. So we want to know what the law says, and we want to know what that means vis-a-vis the contracts and the individual companies that respond to those contracts. So it's a bit of a vague question, I apologize for that, but I think you get the gist of it, of like how do you take something as specific and narrowly scope this catalog and make it work with the broader environment, in this case, knowledge graphs. Thank you. Thank you for your question. I think the answer lies into the operational deployment of catalog, meaning that you can compile it whatever you want since it's just an under-calculus. So I guess I don't know the exact representation of knowledge graph that you're using, but we can think of like a catalab again to your knowledge graph representation. That's not a technical problem. Hello. Hello, Denise. Right. My name is Brian. I'm from Trinidad and Tobago, and I'm a barista in England and Wales as well. I love the technology because I see where it's heading, but in terms of interpretation, it raises a bit of concerns, especially, let's say, from a statutory position where, for example, in a constitutional matter, at times we need judges to come and interpret the law because at times the draftsman makes it deliberately wide or deliberately narrow. So in terms of constrained translation or missing out on translation, because code has to be very succinct. So are we going to lose out on interpretation? Because if you go so narrow and at times the draftsman leaves a deliberate ambiguity, where are we going with this? Because at times you need it wide as well. So that's my question. I think that's slightly similar to the question Andre asked. So I think I don't have much to add more than what we already said, but we could take that into account and we try to solve the ambiguity when we can, and if we can't, we just leave it as a choice. Though I think that texts we choose to code in catalogue are not as ambiguous as others. For example, we don't code criminally, we code law that is slightly less ambiguous in its terms, and that's also a choice. Yeah, so that's basically my answer. Then you should want to add something maybe. No, perfect. Okay. Thank you so much. I see we're nearly at the end of our all too short hour on this. We could go on for a semester, I think, on this and maybe we should circle back with these folks to talk about incorporating into some of our computational law teaching opportunities. But I just wanted to sort of wrap into synthesize by bringing forward a couple of maybe relevant ideas from law.mit.edu, especially on that last point. So there's a kind of a design pattern that I've used sometimes in my professional work and that we've talked about as a research direction. And very broadly, you could call it BLT, business legal and technical, by separating these dimensions of a system, a tax system, transactional system, what have you, it can be easier to align what's happening at each one of those layers and have designs that work all the more efficiently and measurably solve for the requirements that come from business and operations from law and from technology, requirements and constraints. One way that that plays out in the last question from Brian is we've been exploring and been involved in a couple of projects where the way that the lawmaker expresses the rules are in three dialects, you could say. One of them is normal, same old legal, dense text of law that you'd see in any statute or regulation or dense contracts. The second way is human readable, you might say, which is like a plain language, simplified, like maybe like ninth grade reading level summary of what that provision means. And then the third way, of course, is the corresponding machine readable language for those provisions of the law which are amenable to that. As we sort of touched on many times, some parts of law are intended to be almost functional and can better be translated directly in some way to machine processes. Other parts of law may be for interpretation or may have to do with things that are not intended and are not a good fit, at least at this point, to be expressed in machine readable ways. But for the parts that are functional, we actually have these sort of three almost tabs is how we started having the rulemaking process work in a city of Boston example where we basically made sure that we got review and alignment and harmonization and ultimately direct integration of the plain language, legal language, and computer language dimensions of each one of the provisions. So that's just one thing to consider when thinking of design patterns to address the tensions that Brian was just bringing up. And the last thing I want to say is I just want to echo everybody's kudos to you on this fine project. It really, I think, shows good thought leadership. It's very timely. And I think it's a great example of what we mean, at least in this functional area by computational law, a very direct example. So you're to be commended and we really hope that you keep with it. You keep evolving this. And I encourage those that hear these words later on our YouTube channel to take a look at the GitHub repo and consider trying it out yourself and reporting what you find and help the evolution of this useful approach. So with that, thank you everybody on behalf of law.mit.edu for participating in this episode eight of Idea Flow. And we hope to see you next month in the last Friday at 12 p.m. Eastern. And you can sign up at law.mit.edu forward slash media. So until then, have a good one. Bye bye. Thank you so much. Bye. Thank you.