 Hi, so my name is David Calderuso. I'm formally a public defender at CPCS. I've moved from the courtroom to behind a computer screen in a peculiar change of events. And I'm now working as a data analyst at the committee. What I'm going to talk to you today about is a programming language that we put together specifically for use by attorneys. And what I'm going to do is I'm going to give you a little background on how that came to be. Then I'm going to show you some of the resources that you will have after we leave the session here today so you can feel confident that you'll be able to remember how to do things. I'm going to show you some examples. And then we'll open it up for questions at the end and go from there. So a little background. The Committee for Public Counsel Services is the public defender agency for Massachusetts. We're a little different than a lot of public defender agencies in that we're statewide. And we don't deal just with criminal cases. So we actually deal with any time there is a liberty interest at stake. So we deal with adult criminal cases, with juvenile criminal cases. We deal with civil cases where there's a question of civil commitment. We deal with some family law matters whenever DCF, Department of Children and Families, is involved in custody disputes and other such things. So we have a rather broad mandate and it means that when someone comes to our website they don't know necessarily exactly which of our five different practice areas they're looking for. And so Q&A came out of a need that arose on our website to be able to help solve what I like to talk about as a needle in a haystack problem. And that is you know what the, excuse me, we have window washers here and I don't think they'll be an issue, but in case you hear them interrupt me later. So it was a needle in a haystack problem when you don't know what the needle looks like. And so our old website was a collection of PDFs basically. And what you're seeing on the screen now is our new website. And of course if you are interested in finding something and you know what it is you can just go to our search and you can search for it. Or if you know how our organization is organized you can go and you can find it through the menus. The problem was it wasn't reasonable for us to expect that our clients would know the difference between our Youth Advocacy Division and our Children and Family Law Division. So we wanted to come up with some way to answer the question, how do we get people for the content they need when they don't actually know what it is they're looking for. And we said, well in real life what we do is we talk with them and we ask them questions about their situation. And based on their answers we send them where they need to go. And so that has led to this little tool you'll see here where it says what are you looking for. Actually our website is responsive and one of the main things we wanted to do was make sure that on phones this looked very nice. So you can see when you shrink down the width of our site now this becomes front and center and you can see what are you looking for and I could say an attorney and so you're looking for a specific attorney if I say yes it's going to suggest that we go to the directory page and I can say take me there and then it takes us to our directory page. And so this is the type of thing that Q&A in a very simple way allows you to do but that doesn't quite give you the full feeling it just gives you some background. So what I'm going to do is I'm going to point out that there are some resources and everything we're going to talk about today is available from qanamarkup.org and that's the site you're seeing right now. We built this tool internally in the committee so it was built on the government dime. So a consequence of that is we have open sourced all of our work so this software is available free of charge for anyone to use. And you can access the tool here at qanamarkup.org. And what we're going to talk about here in a minute is how to actually write some Q&A but I'm just going to very quickly give you an overview. On this editing tool here on the left you'll see a place where you can enter in the text of your Q&A. On the right you get a preview of what that interaction is going to be and what I call Q&As are these interactive, they're effectively interactive decision trees. So let's just look at a quick example. Here's an example of one, it probably date me. I'll go ahead and read it out loud here in case your screen is rather small. It says, shall we play a game? Now I'm imagining that if you weren't muted I would have heard some laughter there. And it obviously dates me. So I'm going to say no, not right now. I don't want to play a game and it's going to give me a really sad. So shall we play a game? I'll say sure. Now it gets very excited. And oh, I'm going to say, oh, thermonuvial war, that sounds great. And it's asking me, well, it's saying the only way to win is not to play. Have you actually seen more games? I can say yes, and it doesn't really believe me. And then eventually if I want to I'll say, okay, let's play some chess. And then here's a nice game of chess and I can play chess. And that's a fun time. All of that interaction, the looping, the questioning, everything is embodied in this text off here to the left. And actually I'm going to word wrap this here. And that's actually, so now you can actually see all of this text. And that text defines everything we just saw in that interaction of the shall we play a game. Those gifts are just images and you can see the links to them here. But all the text and everything else is encoded there. Everything we're going to talk about. Quick question. What is the platform for this or what does it take to run? So what ends up happening is this editor you can access on the website. And then eventually what it's going to do is it's going to produce an HTML file that you can take and you can drop on any web server anywhere. Or you could even send it an attachment and have it as an email for someone. And we'll get to that output in a moment. I just want to sort of show you a little sort of bit of what we can do. So this should remind you of the tool on our website where it's actually integrated inside a page. In fact, here is a set of examples. If you are on the Q&A markup page, you'll see a link to gallery. And that brings you to a set of examples. And actually Mass Legal Help has an example on their site where they have their normal web page and they've embedded off in the right corner a bankruptcy aid tool to help with people who are interested in filing bankruptcy. So do you live in the United States? Yes. Are you in a bankruptcy case? No. And then it will ask a set of questions. So what I want to do is convince you that even though it might be sort of like trying to drink from a fire hose over the next several minutes as I go through and introduce everything, what I want to make you understand is that you can come to Q&AMarkup.org and you will be able to find there's a video introduction. There's this gallery of examples. And then very importantly, there's this link that says Syntax. And on this Syntax page, you will find all the instructions you need to do just about anything you can do in Q&A Markup. And it only takes, if you assume about 180 words per minute, it only takes about 20 minutes to read and you can get everything that you need to from that page. So if you ever have any questions, you can just go to Q&AMarkup.org and you can find everything you need. Now Q&A Markup is a markup language. And for anyone who's familiar with markup language is what that means is it means you just take a stylized bit of text called a tag and you put it in relationship to some other bit of text and that relationship causes a computer to then present that text in a specific way. And so on this Syntax page, you'll see a collection and a description of all of the tags in Q&A Markup and what they do. And so you'll see some of the tags are things like title and author and description and before and after. And in fact, you can ignore these five tags and make almost anything that we're going to talk about today without using those. And there are only 10 tags in all of Q&A Markup. What that means is that there are only 10 of these little sort of special words that you need to learn in order to do all the stuff that we've just seen plus some more. So let's go ahead and play around a little. So what I'm going to do is I'm going to start off with some examples. And the examples I'm going to start off with all have to do with flowcharts. So we'll go ahead and we'll start with our first flowchart here. So what type of lawyer would I be if I didn't make some Shakespeare reference at some point? So here is the print saying and it's a very, very simple flowchart. And so you start and you ask the question is the wind blowing north by northwest? If yes, the answer is no. Yet there is a method in it. If no, the answer is yes. And so if we wanted to capture this flowchart in a Q&A, all we would have to do is write something like this off on the right. Now let's talk about what that is. And what I'm going to do is we'll actually move over to an editor and give it a look. So the two main tags that you really need to understand to use Q&A are the Q tag and the A tag. So the Q tag, I apologize if this might be a little small on people's screens so what I'm going to do is I'm going to zoom in here. Maybe it's a little easier for people to see. The Q tag is going to be the question or really the prompt that the computer is going to give you. The A is your answer. And so whatever I type here in the editor, if I go ahead and type something, in fact I'm going to empty this out and I'm just going to hit update outputs, it's going to yell at me and say, well there's an error. Well the error is I don't have a Q tag and I don't have an A tag. So if I go ahead and I add a Q tag, I could say this or that. If I hit update outputs, it's still going to yell at me because I don't have any A tag. You can't really have a question and answer session if all you have is a prompt. But if I go ahead and I add in an A for this and an A for that and I hit update outputs, you'll see that I get this or that and now the options this and that. What's important here is that I'm doing a Q followed by a colon and then whatever it is I want to show up in that blue box or blue bubble and then I'm doing an A and a colon and whatever I want to show up as an option. Now the reason these get grouped together is because they're vertically aligned. So that's exactly what we saw with our Hamlet example. Is the wind blowing north by northwest? Is the wind blowing north by northwest? Question, answer yes. Answer no. And then you'll see that underneath that I hit tab once and then this question will fire when I hit yes and this question, the no, when I hit no, the other question will fire. And so I can see that in my example is the wind north by northwest. Yes, no. Is the answer, get there is methanet. And so you can see that very simply you can take a very simple flowchart and just by controlling where the Q and A's which are the two tags we've introduced are aligned, you can get this interaction. Now what if you have something more complicated? Here's another flowchart. Is it worth the trip? So you might ask will you spend more time in transit than at your destination? If you say no, then I don't know, maybe it's worth it. If you say yes, is your trip motivated by love? As you can tell I'm a little bit sentimental. And so if it is motivated by love then of course it's worth the time no matter what your transit time was. But if it's not then you're spending more time in transit than there then it's probably not worth your time. This flowchart is very similar to our old one except that instead of just branching into two options it branches to an option that then itself branches. And what you can see in the accompanying Q and A is that we have, and actually I think I can annotate things. Let's see, you have this, well, if you have this question will you spend more time? The answers associated with that question are directly in vertical alignment with that Q. And then underneath those answers you'll find another set of Qs indented and the A's that are aligned with it are then associated with that question. So if we see what that looks like in our web tool then here is that that flowchart now with its multiple branches so the same text we just saw and you say well you spend more time in transit than at your destination. I'm going to say yes is a trip motivated by love, yes, and then I get my answer. And you can see that what was presented to the user is based upon which option they chose and that's just by aligning things Qs and A's vertically. So if I go ahead, what if I want to get more complicated? And this one I really like as a flowchart, I before E. So is there a digraph after C? If yes, E before I, if no, is a digraph in A sound as in neighbor or way? If the answer is yes, then it's E before I, if the answer is no, then probably I before E but there could be an exception because as we all know English is weird. So this is a flowchart very much like the ones we've seen before but there's not only multiple branching but there is this reference back to the same bit of content. So in this case the E before I. You can get to that outcome either from the first set of questions, the first question, or from the second question. So there's effectively a loop back to the same content. And at this point it's important to note that next to the Qs, something you may have noticed is that every time I hit update output, this little parenthetical gets added between the Q and the colon with numbers next to it. And that's a target that allows you to do what we're going to do here which is point back to another question. So in this case we had our first question is a digraph after C and that has an answer yes and an answer no in vertical alignment with it. Under the answer yes is a question tag. And remember a question tag is just a prompt back from the computer so it actually has to be a question. And it says E before I. That's our terminal point here in the red box. But if I had answered no to the digraph after C, I have another question which is, is the digraph an A sound as a neighbor away? And there if I answer yes, I have a question and then I introduce the third tag that we're going to talk about today which is just the go to tag. And all that is is a go to colon and then the number that you see in these parentheticals. So in this case I say go to 1.1 and what it does is it throws people back over to that 1.1. So if I go ahead and I look here now at what that's going to mean here so here is the text from our flow chart. And if I say it's a digraph after C, I'm going to say no. It's a digraph sound as a neighbor away. I'm going to say yes. And then I get to the E before I and I get that output. So now with just three tags with just a Q, an A, and a go to now you can bring to life any flow chart by just cleverly referencing back to common elements and branching out. Now that's not the most interesting stuff. That's somewhat interesting. So let's look at another flow chart. And here's a good one, titling a law journal article slash note where X is a title. And so we start off and you're supposed to come up with a name and then you ask well does X contain a pun? If the answer is yes then go ahead use it because a pun and a title is a great, great thing. If the answer is no, well is there any word play? If you have some word play then you're good. If no, Latin, if so great, if not, I mean really if you're writing a self-respecting journal article you got to have at least a pun, some word play or a Latin in there. And so if you've answered no it loops you back up to the new question. And so this is going to take advantage of those go tos but we're going to add something else here as well. And we're going to go ahead and introduce the fourth tag that I'm going to show you today which is an X tag. And instead of looking at this text right here and talking about it let's see how that this behaves in a Q&A. So I want a law journal. Okay so here's that same text for our how to title a law journal article. So what is your working title? I'm going to say head in the clouds. Which was in fact the title of my note. And I'm going to go ahead and answer that. Is there a pun in there? Well I'm going to say yes. And then what it's going to do is it's going to go ahead and direct me to the final answer. And it's going to say, well actually let's see what happens if I start over and if I just say to stop and I say there isn't a pun. Well it's going to ask me any word play, any Latin, and then if I say no it will pop me right back up to the beginning. So we can see that that loops through. But let's say I said head in the clouds and I say yes. Well now it's actually asking me this prompt, would I like to start writing? Well I'm going to say sure. And then what it's going to do is it actually goes ahead and it sends me to a text editor with my title already there. And this is a sort of opportunity to look at the second thing that Q&A can do. So something I didn't say I should have said a long time ago is Q&A is really useful in two main use cases. One as an expert tool, which is sort of a very simple expert tool to just breathe life into flow charts. And that means you know, you come in with a very clear, distinct question that can be answered with very explicit questions and you can send people there. So you can direct them. Another thing it can be used for is very simple document construction. And so let's go ahead and actually look at one of those examples of document construction. So here is a more complicated document to construction than the simple law journal title we were throwing in. It's a letter to Santa. And all the text for it is right here. And I had introduced a new tag a moment ago and didn't actually talk much about it. And that tag was the X tag. And you probably figured out what that did. That X tag you'll notice is lined up with the Q's just like an A tag. And it acts just like an A tag except instead of having a defined value that you click on, it prompts you for a value. So in this case would you like to write a letter for Santa? If I say no, it's going to say that's cool. Have a good day. If I say yes, say yes. It's going to say what is your name. So let's click yes. What is your name? And so I can type that in. I can say David. And it's going to say have I been naughty or nice. I'm going to say naughty. I'm going to say what I want for Christmas. I'm going to say a ball. And it's going to say would you like to read your letter? I'm going to say yes. And then I get this nice letter to Santa, Dear Santa. It's signed with my name. It apologizes for being naughty because it knows I was naughty because I told it. And it says I would like a ball for Christmas because I told it. And up here we have these instructions where I'm to proofread my letter, print it out, and mail it to Santa. And so you can see how this might be useful for individuals coming to your website or if you're trying to triage some type of workflow where you could ask a bunch of questions, construct a document, and then leave some instructions for people as to what to do with that document. So if I go back and I look at this and I sort of talk about what these tags mean, you'll see that I've introduced the fifth and final tag that we're going to talk about today which is this document tag. So we have a question and answer tag. So just Q's and A's. We have an X tag which is really a variable tag which asks for a prompt. And we have this document tag. Now one thing that's important to say about that variable tag it wouldn't make much sense to ask for people's information if you couldn't put that somewhere. So when we go through and look at this we'll see how that X tag gets used as well. So I come through, what's your name? I ask for my name. That's the only option, the X tag. There aren't any other options so someone's going to have to type in their name. And then below that you'll see another question, have you been naughty or nice? So we know this from our interaction, have you been naughty or nice? I'm going to say, David, have you been naughty or nice? And you'll see that above that have you been naughty or nice is this doc tag. And there you'll see the text Dear Santa. And then you'll see these little sort of less than or greater than bookended bits of text BR and BR. If you know anything about web development you'll recognize that as HTML which is a markup language which is used to create web pages. And so you actually can include HTML in the text of Q&A either in the document or actually in the bubbles themselves. So here we have Dear Santa, BR, BR. And what that's doing is when the question tag, you'll notice it shares the same target ID as the question directly below it. And so when this question presents itself this bit of text gets added to this variable which is this document variable. And so if I then answer have you been naughty or nice by saying naughty, then this text I am sorry that I have been naughty. I will work hard to be nice in the new year. That bit of text gets added onto the end of this document. If I clicked nice it wouldn't have added anything because there isn't a document tag. It would have just told me to go to what would you like for Christmas? And then after I say what would I like for Christmas, either way I'm ending up in the same place and it's saying oh well here's a variable what I want. And all you do for a variable is just name the variable something. And the reason that's important is because then in the document you'll see it says I would like and then you use these brackets are these sort of less than or greater than bracketed what I want and that if you'll remember from the letter gets filled in with whatever the answer was. And same with my name which is another one of the variables. And so you can see how you could with a little practice just take these five tags that question and answer a variable and go to a document. And you could create really robust interactions for your users. And when you're done and you want to put this somewhere all you do is you go over here to where it says output. If it's a short enough thing you actually can get a link and you can just give that link although it has to be pretty short because we don't actually store anything on the servers here so all that information is stored in the URL and there's a limit to how much you can do there. So you can actually get an HTML snippet which you can cut and paste into another HTML file or you can get HTML full page which you can just save as an HTML file. So I can click save here and then because of my settings you can see it's just downloading here in Chrome and now it's an HTML file on my computer. The important thing to realize is that what I just did there is I saved the output. If you're going to come back and work on something you'll want to save this text. So you can save that markup by hitting save to markup and just save it as a text file. Or of course you could cut and paste this into a text editor and save it and come back and use it. You can load files in here and something that we're working on doing. I noticed that Jessica from A2J Author was on the call. I saw John a couple months back at an event and one of the things that I came up with an idea there was that it might be nice if there was an ability to convert between A2J Author and Q&A. And I don't think that's anything that you guys are committed to doing but he sent me over some A2J Author files and we do have a programmer who's willing to volunteer his time who might make that so that eventually you could actually load an A2J file or export, save something as an A2J file so there could be some interactivity there. And what that's really speaking to is the fact that this is an open source project and so if you want to actually have some coding background the code behind this tool is open and free to everyone as well to change and edit. And so there are some people who are interested in helping out in that respect. If we look at some gallery examples, mostly this has been being used by local nonprofits such as Math Legal Help to put stuff on their website. Law students are using this a lot. We've had some Northeastern students and Suffolk Law students. There was a class at MIT last year that brought in some students from around the area. And they've been creating things like here's a personal injury tool which helps you figure out some nuances of personal injury law. And so you can create these tools either for end users in the sense that they're clients or for attorneys to help automate bits of workflow. So one of the things that I created a while back which is an internal thing so I can't really show it to you now but I can talk about it was a Q&A that was for filing a motion to suppress. So it would walk new attorneys with the idea because we get about a dozen or so new attorneys a year. We're a rather large organization to help give them some scaffolding when they're starting out. New attorneys could walk through a very complicated decision tree that asked them to think about all the issues in regards to a motion to suppress. And it could marry their answers with particular needs. There are some reporting needs. So sometimes you need a motion, a memorandum of law along with your motion. Sometimes you don't depending on whether or not there were or weren't statements. And it would ask people a bunch of questions and then actually be an interactive practice guide that would say these are things you should think about. Here's a bare bones outline of what your motion might look like. You can start from there and build upon it. So never actually fully replacing the authoring of those documents but helping act as an interactive practice guide that does what we originally had done with the website which is help you find a needle in a haystack out of a large bit of information. And so all of this, everything we've talked about, if you go to that syntax link you'll find a description of each of these tags there. And so what I'm going to do is I just want to show you that at that syntax link you'll find very specific examples. I mean those examples have live Q&As with them. So for example this first question one you can see it just branching. If we go down to a fun one here say Red Sox or Yankees. If someone answers Yankees and seriously Red Sox or Yankees, Yankees seriously. And what you'll notice from the code here is that they've caught themselves in a little loop. So you have to answer the correct answer before it will end. And so you'll find examples all throughout with those bits of Q&A. And then something that you saw but I didn't talk a great deal about was the fact that these answer buttons can also act as links. And the way you do that is by putting a bracket in between the answer and the colon or after the colon and with the link itself. And that actually if you know HTML it's actually the anchor tags H reference and so that actually also means you can put JavaScript in there. So for some of you who might have just eyes clasped over everything about that you don't need to do anything fancy. But the point is if you know JavaScript or if you think you might be interested in learning JavaScript you can actually put some JavaScript in those buttons. And there are actually a set of built-in JavaScript functions that already exist in Q&A to help you do some powerful things. So for example here's a really short chunk of code. Do you want to see something neat? I'm going to say yes, I want to see something neat. And it says hey, cool, click away. And then what you'll see inside these brackets is some JavaScript and this save to, it's a function in JavaScript and what that means that's all, as you can imagine, it's all described down here in the documentation. But just see what that does. I've got to get back to the right place. I'm going to say, well actually this is going to save the conversation so that's actually not going to be interesting because all it's going to do is download it. So let me find a more interesting example. Okay, so here's a more interesting example. Here I'm using the document tag. What would you like to cook? I'm going to say garlic chicken. Okay, I have the shopping list ready. And then what you'll notice is that everyone who got this first question, which is everyone, is going to have a document that starts with the word shopping list. If I click garlic chicken, then the ingredients for garlic chicken are going to get added to the document. If I click mac and cheese, then the ingredients for mac and cheese are added to the document. Either way, I end up at this okay, I have the shopping list ready. How would you like it? And then you'll see there are these very simple JavaScripts that either say alert, give me the document, which is the document that we've just constructed here, or alert, save the document. So if I say in an alert box, you'll notice that there's just the contents of that document I just created. So you could imagine that document could be a collection of items on a to-do list for someone based upon their circumstances. So if this is true, add these things to the list. If this is true, add these things to the list. And then you could give that document to a user to then follow up with later to either save, or print out, or just look at. And so all of that, all of those tools, how to do all of this, again, it's just five simple tags, a Q, an A, an X, a DOC, and a go-to. You can get these very robust behaviors. And so I maybe haven't, the real way to do this is to play around. And I think the biggest testament to this is the fact that a number of people have started using this tool without me ever giving a presentation like this to them. They just find this page here, the syntax and usage page, sit down, and play around for about an hour. Just open up an editor. And of course, one of the things that's true with these examples, you can click here to edit this Q and A in a new window. And that example will show up in the window. You can play around with it. Don't get fooled into thinking. You can only have two possible answers. You can have as many answers as you can write A's. It can become as complicated or as simple as you like. If you start to make things more complicated, one of the things you might want to consider is not writing everything as a nested set of questions. If you do that, you can imagine, so for example, you can imagine things like this where they sort of pile off and get nested off into infinity so you can't actually deal with anything reasonably. You can use the go-to method to reference questions that are back here over on the left. And of course, those numbers are added in automatically by the computer. So really that's sort of the first blush. I'm hoping now that there are some questions or maybe that Rochelle would like to share some of her experience having actually worked with this. And I guess we'll open up the floor. And I don't know if there's no one there. Hi, this is Rochelle. Yeah, I just wanted to put in a plug to just mess around a little bit with Q&A. I am not a programmer and it's very addictive to start using it. We've started using it on the Massachusetts websites and we're finding that it's really powerful. Because what you do is you create the Q&A and then you add it as you embed it into your website so it works with any platform. I think Kathleen has a question about how to integrate it with your website. You just add it, embed it right into your website from the code that gets generated as David showed you. Yes, I saw there was a – and I've just now discovered the chat window which was small before so if you had questions that I didn't answer then I apologize for that. So as far as the question is about how it integrates with websites you actually can take the output from this and if we go in here and actually look at an example this is what the output will look like. So here I'll go ahead and click on the output and like here is the actual output. Now if it was a small enough item you could actually just take this link and embed that, share that or embed it somehow. So actually if it's small enough there's this embed code and you can just take this code and pop it into an HTML file. But you also can save it as a full HTML file and then just integrate that on your website yourself. So here for example I don't know if you're doing this as a chunk of HTML in your larger page or if this is a page that's in a frame but either of those are options. So it's really just what you're getting is output is just an HTML file. So you can just drop it on your server or you can even actually just open it on your computer and it should work. All the interactivity is coming really from JavaScript. A nice part of that means that when this is running all of users' choices about the decision tree are all being done client side. So what that means is that someone who's interacting with a Q&A is not actually sharing any information about their interaction with the server. So for example when we have someone on our site answering all these questions about what's going on with them, are they charged with a crime? Have they had previous convictions? None of that information is transmitted back to our website. That all happens on their device. Of course if they're on a public device someone could come around and maybe catch some breadcrumbs on that. But if they're on their phone or something all that information is happening there locally. I saw a question about integration with metrics. Since it's an HTML file you actually can go in and edit the HTML file if you're using Google Analytics or something like that. You can actually drop your analytics code right into the HTML file. And you'll remember that I said Q&A had 10 tags. And we only talked about five of them. I said you could ignore those first five. Those first five tags are things like header author description and there's a before and after tag. And what that before and after tags do actually is they allow you to throw HTML before or after your Q&A. So for example, let's go back to our good friend, shall we play a game? So here's shall we play a game. You'll see that it's using a title tag and a description tag. That means if I was to open it up in its own window it will have the title shall we play a game. And then here in the credits it has that little description. And you can turn on or off this social sharing feature. But you could just as easily have added before and then that becomes a place where you could put in some HTML. So I'm going to use a heading. And if you don't know HTML you can find a lot of resources on how to learn HTML online but these are just again tags. And you could put a title here. I'm just going to say title and I'm going to update it. And then what you'll see is that HTML now is incorporated into the output. So if you wanted to put in some JavaScript for tracking you could easily just add that here as well. That brings up another really interesting question which is in this example you'll notice I have these animated GIFs. All those are just using HTML just an image link to those GIFs. Something that comes up a lot with examples people use is they might be doing something and let's see if I can find one that has an example. I'm trying to remember who's using an example. You might have a set of questions where you're asking a bunch of questions and it's hard for the end user to understand what you mean. So you might actually what you want to do, and here let's just do it and find an example. I'll do a question. Do you want to some gobbledygook word? And so you have an answer yes, an answer no. If I go ahead and update that there are my options. But maybe the person doesn't know what that word means. You can go ahead and you can use HTML to give them a link that says A. So I'm going to send them the Wikipedia. So I'm just going to update this. So now that is a link. So now if someone doesn't know what that is they can click on it assuming I spelled Wikipedia right, which I didn't. It would have opened up Wikipedia therefore and they could just come back after they'd read up about it. So I'm just going to look through the chat here to see what we got. So Mattrix you can just drop those in. It's like HTML. So whether or not it's your interest and impact you want to know whether or not it's increased engagement. There you could just incorporate other analytics tools. So one of the things we do on our website we do some A-B testing. So we have some stuff in the background where we'll show one version to subset of our visitors and another version to another set. And we actually track the engagement on which version. That's not within Q&A specifically. That's just within our web platform. So you could put tracking on Q&A because it's just HTML and then what in your existing analytics system just see what your engagement numbers are. And so that sort of leads into the next question are we doing data studies on that percent of increased engagement? We're collecting data on that. We haven't dug deeply into that yet, but I imagine at some point we will. And as I said we are doing A-B studies that we're trying to figure out what's more engaged sort of normal interaction or this Q&A interaction. And I have a suspicion that it's very much context specific. So I think we get a good deal more interaction with the Q&A content on mobile devices. I mean it was really designed for that. And so I think it does well there. Is there a way to make it multi-lingual? So yes, so it depends on exactly what you mean by that. Most of the text that you're seeing here is all user defined. So you could just as easily type the questions and the answers in another language. One of the things that you'll notice on our website, we use Google Translate. So we use that to do some machine translation that at this point sort of breaks this tool explicitly so we don't actually display the tool when we translate to another language. But you could, that's because from a machine standpoint this is just text that sort of messes things up. But you could manually consider translating things. Or if you have someone who speaks a language you could just have them create a different language version. And there I think I got to the end of the questions I saw in the chat box. Were there any other questions? We have this time. I sort of zoomed through things. I know it's like drinking from a fire hose. But the thing that I would really say is hopefully what I've done is spark your interest. I don't anticipate that anyone's leaving here today now ready to do everything. You probably thought, oh my goodness, he went so fast into this and that and things I know indenting things is important and there are Q's and there are A's and how does that all fit together? Hopefully I've done enough to spark your interest that you can go and take your own time to sit down. We have this quick start guide that's available off the syntax page that takes all of the flow charts that we went over and explicitly walk through and talk through what I gave in the presentation. And then really the key is this syntax with these live examples because you're really not going to learn anything any better than by doing it. And the great thing is you can just play around with it. The other key thing is to understand that as far as a tool goes, this is good at taking flow charts and bringing them to life. But not every flow chart was meant to be brought to life in this way. So sometimes we use flow charts or decision trees and the important thing is that they help us see the relationships between one branch and another. When you interact with the decision tree in this manner, it's very narrow. You just follow your path and you go down and you don't see what the other paths are. And so if that's what you're really looking for, if you have something in a decision tree format and that's why it was in a decision tree format, that is, that's your broader view, then you lose that here. What this is really good as I talked about before is the needle in a haystack problem. It's like playing 20 questions. You can ask 20 questions and very often get down to a very specific thing out of the entire universe of things in the world just by asking the right questions. And so on the same way, you can help direct people to the content they need, whether that be a would-be client or an attorney working for you or someone else in your organization, maybe a paraprofessional helping to triage cases or get someone somewhere or something like that. Looks like we've got two questions here. The first of which is are the built-in JavaScript functions the only one supported or can you use others? So it really the output ends up just being HTML. So you can add whatever JavaScript functions you want to. So if you know JavaScript, you can just sort of as I was showing here, you can just type in before. So what I'm going to do is I'm going to say this is always fun to try these things on their own. So I'm just going to do an alert function and say, hey, I don't know if that will trigger when it loads. Let's see. I probably won't. I probably need to do something with it. But you could add, you could just add in a JavaScript function here and you could call it from anywhere else in there. So as we talked about these As, so let's look at this very explicitly. So here's a very simple, you know, this or that, this, that. You can turn those As and you can turn them into, you know, and where you put the brackets decides whether or not it loads on the page you're on or opens a new window. So if I actually put the brackets outside of the colon, it loads a new window. So if I just send people say to Google. So this is going to get Google, or here, let's Google or Bing, right? So the first option we'll do Google. The second option we'll do Bing. So I'm going to reload that. So now I've got Google or Bing. I click Google. It opens up Google for me. And of course I told it not to do anything after that. So if I come back to it, it's now just sort of empty. But if I hit Bing, then I get to Bing. And again, I didn't tell it to do anything. It just went back. I could have underneath that it could have been clever. And I could have had it go back to one when it was done that way, except I have to do that in a Q-tag. And there is helpful error messages. So I say Google or Bing, Google. So I'm going to do Google. Now I come back here and you can see it got me back to the beginning. But as far as JavaScript goes, this is an href and HTML is all it's putting that into. So I could in here instead of Google, let's say I'm not feeling Bing friendly, I could put in a JavaScript, put in a little alert. So there's a little JavaScript if you know JavaScript. And now if I click on Bing, I get this alert. It says Really. And it actually didn't send me there. So yeah, you can integrate whatever JavaScript you want. The output is just HTML. It's integrated in here. I like to see, think of this as sort of a gateway drug for programming and attorneys. You can play around just use those five tags and do very nice work. But if you're interested, you learn a little JavaScript and you can make it sing and dance and do pirouettes and all sorts of stuff. The next question is how or can you track specific answers that individuals are giving to the two questions? It depends on what you mean by track. One of the built-in JavaScript functions is a submit function. And so if you're used to using HTML forms, basically it turns Q&A markup into a form. So you can actually take the answers created and you can have it submit it to a form. In fact, when we saw the letter to Santa example, that was using this function. So the text editor that you saw at the end of that example is just an editor that takes in, you pass it a HTML blob of text and it throws it in that editor. That was done by us just submitting it. So if you had the facility to accept web form submissions, and as you had someone who actually was used to working with creating web forms, you could actually just make this the skin to that and pass information there. So in that respect, yes, you can track the individual answers and then get them somewhere. But one of the other things you can do is you can, so for example, one of these other JavaScript functions is a transcript. And that actually will just be a transcript of the conversation that you had, the Q&A, the questions and the answers. And so you could actually roll that transcript function with either this save to function which would save to a file or the submit function or actually this mail to function which works really well on phones but not everyone's computers because not everyone has that default email set up on their computer's email program. But you can actually just take that transcript and put it into your output. And then when you pass the output on, there's a transcript of all the questions. The submit to action actually allows you to submit individual things as form elements. So I guess the answer is yes. The answer is yes to have five different options as to how to keep track of the questions. Rochelle, Brian, I just wanted to ask Ed one more thing about how we're thinking about this in Massachusetts. I think one of the things that I haven't gotten anywhere beyond the first five tags that David mentioned, and even using those first five tags are able to do very nimble, quick creations. So we found it useful when things come up that maybe you don't want to invest a huge amount of time really developing and perfecting an expert Q&A type of thing, but something that you're going to use quickly. For example, in Massachusetts there were some changes, short term changes in how certain Mass Health who was eligible for Mass Health. And so we built a very quick Q&A which was just on our website for a few weeks but because the investment wasn't very high, that worked well for us. But I also wanted to mention that this Q&A students, even students who aren't programmers, are really able to grasp this Q&A pretty quickly. And so it is a way, if you have volunteers, you might be able to work with volunteers to implement some of these Q&As. And actually there is a class at the Suffolk that Gabe Tenenbaum runs where he's having students do Q&As for legal services programs. So if you have something more complex in mind, I think he's at the point where he's soliciting projects as well. So some other resources for it. Yeah, and I think they did a nice one where some of the changes around immigration policy they were able to sort of put in a Q&A to help triage people, to help them understand whether or not they should be applying for some type of status under the new sort of dreamer-like arrangements under the executive. And yeah, and that's really the key here, is that it's not a tool that does everything for everyone. It's a very simple, very lightweight tool that helps breathe life into decision trees. And it does so in a way that you can then come back and quickly change them. I mean, the reason why we built this language was because we knew as attorneys we would argue incessantly over this decision tree for our end users, right? It's like, well what question should we ask them first? And what if this changes or that changes? And we wanted to be able to quickly change it without having to go back to IT and say can you rewrite everything for us? All you got to do is just change the text, change a little of the logic, and then there you go. So how accessible is this with screen readers? Do you screen readers see it or skip over it? So everything is embedded as HTML text. So I haven't done extensive user testing with screen readers, but it should show up just as any other text would. So it should present as a normal website would. That was something that was very important to us was that we wanted the text to be actual text in the browser so that it would be visible to things like screen readers. That being said, the question about multilingual before, someone has noted that there is a character encoding issue. So some characters with accents don't show up appropriately, and that's something that we'll work on in the future, which is a good time to point out that this is an act of development. So right now we're not devoting as much resources to it as we were before because it's sort of doing what we need it to do and we only can devote resources to something that's mission critical for us. But that being said, there is some stuff on the line that we may add some stuff to it because we have some other uses for it. One of the big requests is a back button, so we'll probably add that soon. But one of the things you should note is that on the home page there, on that tool page, there's a little report bug slash issue. So all of this, if you're familiar with GitHub, all of the code is up on GitHub, and you actually can report an issue there and that way we'll know about it and maybe get to it or maybe someone else can get to it. So yeah, it is an act of development. If you find something and it doesn't work, let us know because maybe we can fix it or maybe someone else can fix it. I mean, this really is in the spirit of open source software and sharing with enough eyes all bugs are shallow, which is an interesting saying among programmers. I just wanted to let people know that there's a survey in the chat window if people could take a moment and give us some feedback over this. It's been a great presentation here and greatly appreciated. If there's any more questions, we've got a few more minutes here. I want to thank you, David, for doing this presentation. It might definitely look a lot. Well, thank you. When you come up with new ideas, don't just tell us the things that aren't working so we can fix them. But when you come up with a great example, let us know and we'll put it on the gallery page or actually the way GitHub works, you can put it on the gallery page. And you can share that. To say some of the stuff that was mentioned earlier, there are people who are using this now in law school settings. So for example, just last spring Suffolk Law, one of their sort of law and tech student groups did a little hack-a-thon where they actually invited students to create Q&As for use by people. And some of them worked with agencies to say, oh, what do you need? And came up with solutions based upon their need. So that goes back to the idea that this might be something you could introduce to a population and say, hey guys, can you guys help me come up with a solution? But that being said, I think anyone on this call would be able to just sit down and I really encourage you to sit down with it for 30 minutes an hour, go to that send tax page, and just play around. Because I mean, it's just fun, right? Thank you everyone who has come out here. If you have any questions about this, please feel free to email. We're happy to do research and help people out also.