Bluefish: A Grammar of Discrete Diagrams

Bluefish is a visualization language for specifying discrete diagrams like trees, lists, and graphs using Gestalt relations. It provides a declarative interface that separates data and layout, making it easier for both humans and programs to specify and reason about diagrams. Bluefish is intended to be used both as a language for directly specifying diagrams and also as a framework for automatically reasoning about and generating them.