The Jupyter Lambda Notebook is a project that aims to implement compositional semantics in python, with a Jupyter-based interface. One main goal is to provide a useful interface for linguists who want to implement their semantic analyses. One way of characterizing the system is that it allows building interactive ‘digital fragments’, following from the method of fragments in Montague grammar in a modern setting. For more background, see the project README. To see a full demo notebook in read-only mode, go here. A more sophisticated example fragment, implementing a version of Barker’s continuation semantics for quantifiers, can be seen here.
Latest news: During NASSLLI 2020 at Brandeis, I will be teaching a three day mini-course on implementing compositional semantics in python, immediately following a preparatory 2-day python bootcamp taught by Constantine Lignos.
A spin-off project of the Lambda Notebook that is highly usable in its own right is the SVG-based tree drawing package SVGLing. This is a pure python SVG renderer that can be used as a drop-in replacement for tree-drawing in NLTK, as well as more generally used in Jupyter (or any other setting with SVG rendering capability) to draw trees programmatically. Here’s a collection of demo trees in nbviewer.