CatColab

A collaborative environment for formal, interoperable, conceptual modeling

CatColab is

Our aim is a system in which anyone, from citizen to scientist, can contribute their piece of understanding of the world in a language in which they’re comfortable, whether that’s unadorned natural language, a diagram or flowchart, or a complicated system of partial differential equations. CatColab aims to enable such an unprecedentedly wide range of collaborators to combine their world models in as close to automatic a way as is consistent with finding truth. Our aim is to let everyone participate fully and transparently in the process of understanding the world.

CatColab is software for making models of the world together

Screenshots

A simple SIR model, along with a mass-actions dynamics visualisation

A simple SIR model, along with a mass-actions dynamics visualisation

Inviscid vorticity, visualised by automatic interfacing with Decapodes.jl in AlgebraicJulia

Searching for feedback loops in a model of the impacts of a cap-and-trade system

Concepts

CatColab has a notebook-style interface inspired by computational notebooks like JupyterLab and structured document editors like Notion, but its conceptual underpinnings are quite different from both kinds of tools. Here is an overview of the concepts that you’ll encounter in CatColab today.

Logic

CatColab is not a general-purpose programming or modeling language but is rather an extensible environment for working in domain-specific logics, such as those of database schemas or biochemical regulatory networks. To do anything in the tool besides write text, you’ll need to choose a logic.

Model

Models in CatColab are models within a logic, such as a particular database schema or regulatory network. Models are specified declaratively and are well-defined mathematical objects. CatColab is a structure editor for models in a logic, allowing formal declarations to be intermixed with descriptive rich text.

Analysis

Unlike most computational notebooks, CatColab strictly separates the specification of a model from any outputs derived from it. Depending on the logic, an analysis of a model might include visualization, simulation, identification of motifs, and translation into other formats.

Diagram

A diagram, one way of presenting an instance of a model, populates a model. If the model is seen as an ontology, a way of describing what kinds of things are under consideration and how things of those kinds relate to each other, then the instance gives a list of actual things cohereing with that ontology.

Future of versions of CatColab will display the further concepts of morphisms, migrations, and compositions, providing powerful and flexible tools for combining models written in pieces and even in different logics.

See catcolab.org/help/credits for a list of all developers, contributors, and funders.