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.

The main output of this project is code and digital fragments, not traditional scientific publications. The code is open source, and can be found on github.

Latest news: During NASSLLI 2022 at USC, I will be teaching a course called “Implementing Semantic Compositionality”, which covers the basics of the lambda notebook.


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.

example sentence