$$ $$ Analogies in Planning Do X like you would Y. That’s the essence of analogical thinking which can be surprisingly powerful in planning. We often want to restate one task in the language of another to reframe how we think about the problem. This reframing then helps us solve novel problems with solutions we already know. Forming an analogy is a frequent cognitive process humans engage in. In cognitive psychology, this process is described as forming a structured mapping between two inte...| AlgebraicJulia blog
It’s breakfast time! You wake up and walk to your kitchen and notice a loaf of bread, a knife, a raw egg (in its shell), a skillet, and a stove burner sitting on the counter. You’re hungry and your preferred state of existence is to, instead, have an egg sandwich sitting on your counter. You are saddened by the situation, but feel empowered to change it! You compare what you have and what you want, recall what cooking skills you have, and devise the following steps:| blog.algebraicjulia.org
The chase in an algorithm in the context of databases that has applications in Catlab for model exploration, term rewriting, and enforcing schema axioms.| blog.algebraicjulia.org
For graphs and C-sets more generally, the most useful notion of equivalence differs from strict equality of the underlying data structures. Finding automorphism classes of C-sets addresses this problem; we explore how to compute automorphism classes and applications of them.| blog.algebraicjulia.org
Nonclassical logics are often thought to be abstruse and exotic, but they arise naturally as the logic of connected spaces. In this post, we introduce the propositional logic of subgraphs, and more generally of sub-C-sets, and illustrate it with computational examples. The nonclassicality of this logic is seen to be not just natural but inevitable, and also surprisingly useful.| blog.algebraicjulia.org
Reflexive graphs are graphs where every vertex has a distinguished self-loop. While this may seem inconsequential, reflexive graphs have interestingly different properties than ordinary graphs owing to their different morphisms. We will see that reflexive graphs are more geometrical than graphs and also review the general notion of homomorphism between C-sets.| blog.algebraicjulia.org
Not just useful for graphs, C-sets are a general-purpose tool for data analysis offering the functionality of an in-memory relational database. In this post, we illustrate Catlab’s new capabilities for querying C-sets and we explain the categorical underpinnings of conjunctive queries.| blog.algebraicjulia.org
Structured cospans are a categorical method for turning closed systems into open ones. We show how structured cospans of Petri nets can be used to construct complex epidemiological models in a compositional way.| blog.algebraicjulia.org
In this post we unveil the category of attributed C-sets. It is an upgrade to the category of C-sets that makes each element of a component set (e.g. each vertex or edge in a graph) have attributes, which may be elements of arbitrary sets/Julia types. In order to formalize attributed C-sets, we also take a tour of double category theory and profunctors.| blog.algebraicjulia.org
Graphs are made up of vertices and edges, but an important variation on this concept is based on “half-edges” or “darts.” We explain how half-edge graphs are implemented as C-sets in Catlab.jl and how they are used in topological graph theory to represent embeddings of graphs in surfaces.| blog.algebraicjulia.org