Description
An implementation of Montague's PTQ.
Description
An implementation of Montague's PTQ (Proper Treatment of Quantification). It translates simple plain English sentences into formulas of intentional logic.
README.md
An implementation of Montague's PTQ in Haskell
Build and Install
% cabal configure
% cabal build
% cabal install
Usage of interactive shell ptq
% ptq
PTQ> John seeks a unicorn.
Parsed:
F4 john (F5 seek (F2 a unicorn))
Translation:
(\x0. x0 {john}) (Int (seek (Int ((\x0. \x1. exists x2. x0 {x2} && x1 {x2}) (Int unicorn)))))
Translation (simplified):
seek (Int (\x0. exists x1. unicorn x1 && x0 {x1})) john
------------------------------------------------------
Parsed:
F10 0 (F2 a unicorn) (F4 john (F5 seek (He 0)))
Translation:
(\x0. \x1. exists x2. x0 {x2} && x1 {x2}) (Int unicorn) (Int (\x0. (\x1. x1 {john}) (Int (seek (Int (\x1. x1 {x0}))))))
Translation (simplified):
exists x0. unicorn x0 && seek (Int (\x1. x1 {x0})) john
PTQ> quit
%
CGI interface
By locating ptq.cgi, cgi/index.html and cgi/main.html to the place where CGI is executable, you can try it on the web. Demo site runs at http://www.tom.sfc.keio.ac.jp/~sakai/hsPTQ/ (currently not working).
Haste interface
You can use Haste to compile haste/* and run on your browsers. Demo site runs at http://msakai.github.io/ptq/demo/index.html.