The PTQ package


An implementation of Montague's PTQ (Proper Treatment of Quantification). It translates simple plain English sentences into formulas of intentional logic.

[Skip to ReadMe]


Versions0.0.4, 0.0.5, 0.0.6, 0.0.6, 0.0.7
Dependenciesbase (>=4.4 && <5), containers, mtl, network, xml [details]
AuthorMasahiro Sakai
MaintainerMasahiro Sakai <masahiro.sakai AT>
CategoryNatural Language Processing
Home page
Source repositoryhead: git clone git://
Executablesptq.cgi, ptq
UploadedFri Aug 15 04:07:19 UTC 2014 by MasahiroSakai


utf8terminalUse UTF-8 for terminal I/ODisabledManual
utf8cgiUse UTF-8 for HTTP contentsEnabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees

Readme for PTQ-0.0.6

An implementation of Montague's PTQ in Haskell

Build Status

Build and Install

% cabal configure
% cabal build
% cabal install

Usage of interactive shell ptq

% ptq
PTQ> John seeks a unicorn.
  F4 john (F5 seek (F2 a unicorn))

  (\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


  F10 0 (F2 a unicorn) (F4 john (F5 seek (He 0)))

  (\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