Draco is a formal framework for representing design knowledge about effective visualization design as a collection of constraints. This knowledge can be applied with standard constraint solvers to recommend charts or explore the design space of visualization.
You can use Draco to find effective visualization designs in Vega-Lite. Draco's constraints are implemented in based on Answer Set Programming (ASP) and solved with the Clingo constraint solver. Draco can learn weights for the recommendation system directly from the results of graphical perception experiments.
Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco, InfoVis Best Paper, 2018
Draco: Representing, Applying & Learning Visualization Design Guidelines, Blog Post
You can learn about the Draco knowledge base in the Draco code. Documentation about the APIs is coming soon.
Draco is being developed at the Interactive Data Lab at the University of Washington. The main contributors are: Dominik Moritz, Chenglong Wang, Greg L. Nelson, Halden Lin, Adam M. Smith, Bill Howe, and Jeffrey Heer.