PTQ: An implementation of Montague's PTQ.

[ natural-language-processing, program ] [ Propose Tags ]
Versions 0.0.4, 0.0.5, 0.0.6, 0.0.7, 0.0.8
Dependencies base (>=4.4 && <5), containers, mtl, network, network‑uri, xml [details]
License LicenseRef-LGPL
Author Masahiro Sakai
Maintainer Masahiro Sakai <masahiro.sakai AT>
Category Natural Language Processing
Home page
Source repo head: git clone git://
Uploaded by MasahiroSakai at Tue Sep 12 23:53:05 UTC 2017
Distributions NixOS:0.0.8
Executables ptq.cgi, ptq
Downloads 1864 total (17 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2017-09-13 [all 3 reports]
Hackage Matrix CI

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

[Skip to Readme]



Use UTF-8 for terminal I/O


Use UTF-8 for HTTP contents


Get Network.URI from the network-uri package


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


Maintainer's Corner

For package maintainers and hackage trustees

Readme for PTQ-0.0.8

[back to package description]

An implementation of Montague's PTQ in Haskell

Build Status Hackage

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 (currently not working).

Haste interface

You can use Haste to compile haste/* and run on your browsers. Demo site runs at