Little b, a language for building modular models of biology
The current pace of discovery in the biological sciences demands increasingly sophisticated mathematical tools for cataloging, sharing, modeling, and ultimately---understanding biological systems. However, construction of mathematical models can be tedious, error prone and require a broad range of expertise. As a result it is still a practice largely limited to experts, and most biological models are currently written in a monolithic, unsharable form. For modeling to become a part of mainstream biology, it is important to develop tools that allow models to be shared and reused.
Little b (b) is a programming language that enables the construction of models from reusable fragments of knowledge. This approach is inspired by pioneer work in the field of qualitative physics (QP), a branch of artificial intelligence. Whereas the goal of QP was to provide human-like qualitative reasoning about physical situations, b is intended for construction of precise mathematical models which may be used to discover potentially non-obvious properties of systems.
In b, a mathematical model is formulated by describing a physical situation in terms of shared objects, relations, quantitative data, as well as choices of theoretical approaches. The language reasons about an initial description of a situation, inferring the presence of new objects and relations (e.g., complexes, species, reactions, equations). The inference procedure together with type checking and symbolic mathematics make it easier to write concise and correct models based on shared knowledge. The resulting mathematics might be translated to a form suitable for analysis, such as simulation, null-cline analysis, flux balance, metabolic control analysis, etc. I'll talk about the current state of the work with b, and show how to make an ODE (ordinary differential equation) model suitable for simulation.