From UBC Wiki


Authors: Ambikeya Sangwan, Chase Walden, Edward Tunnard

What is the problem?

State the general problem. If applicable, tell us what information you will use, e.g., a link to some web site that provides the information you used. What will you do?

We will be recreating the previous calculus tool in haskell. However as well as removing previous flaws we will also add a natural language interface giving it a similar interface to wolfram alpha.

What is the something extra?

What is the in-depth aspect you will do? If the problem is related to some other group's project, tell us how they fit together. If in doubt, include the information.

We will make a interface that allows you to do many operations within the same input box, with nested commands allowing for a more natural and powerful interface

What did we learn from doing this?

(This should be written after you have done the work.) What is the bottom-line? Is logic programming suitable for (part-of) the task? Make sure you include the evidence for your claims.

We attempted to rewrite the Calculus tool that we had implemented for Project one. This included adding some new features as well as trying to eliminate some old bugs.

This version has a single text box that the user can enter queries into, rather than multiple different pages for each individual function.

This version, although not having the CSS beauty of the previous version, has a LaTeX renderer. All queries entered into the box will be parsed and converted into a corresponding LaTeX graphic. This is made possible by using this website as an API of sorts to send requests to and retrieve the rendered LaTeX from.

One challenge that we faced in this project was that there was a much less friendly way of creating a web server in Haskell compared to Prolog. We ended up using Scotty to handle the creation and routing of the server, and blaze as a text combinator to assist in the rendering of the HTML.

Repository Here