One can view the task of modeling as trying to capture a phenomenon in terms of structure (what exists) as well as properties that hold of that structure, expressed in form of logical constraints. The chase is an algorithm which enforces logical constraints that trades off well for expressivity and computational tractability. We will give a description of the algorithm at a high level, explore the language of constraints it allows us to enforce, and describe the details of its implementation in Catlab.jl. The applications below will show that this tradeoff is well-suited for tasks in scientific computing and knowledge representation.
This is a companion discussion topic for the original entry at https://blog.algebraicjulia.org/post/2022/06/chase/index.html