We just officially ended the inaugural Computational Category Theory workshop at the National Institute for Standards and Technology (NIST). During the workshop the participants had five discussions, on
- algorithms for category theory,
- data structures for category theory,
- applied category theory (ACT),
- building the ACT community,
- and open problems in the field.
Below, I’ve written up a partial summary of these discussions.
Discussion 1 (Ryan): Ryan has a wish list of algorithms.
Ryan wants pullbacks, pushouts of schemas (for pullbacks you currently have to finitize to get an algorithm). A way of computing right Kan extensions (Carmody-Walters have a semi-algorithm for computing left Kan extensions; see also Knuth-Bendix completion).
Discussion 2 (Spencer): how do we represent a category as a data structure?
Decision: parsimony vs precomputation. Common representation as the intersection of UI, Algorithms, and Translation areas.
- Conclusion: XML
- Ryan: currently FQL implements categories as a Java class
- Bob: embedded dependency / lifting problem
- Spencer: using inductive types?
- Mike: want lazy evaluation
- David: use string diagrams (as geometric basis?)
- Sub: need MATLAB as funding
- Peter: compare to DBMS metastasis, e.g. MongoDB, NoSQL, wide databases, etc. the big question is interoperability
Discussion 3 (Sub): how do we apply category theory to actual applications?
In Sub’s experience, majority of the problems take place in the interface between different departments, due to differences in assumptions and meanings. To solve, we need mappings between decision-makers, the system itself, and records/models of the system. (A conceptual model may have 600 parameters, which gets passed to several analytic tools, etc.) The problem is that models may be iterated in response to changes in the spec. With reference to engineering’s models: a context, for an engineering model, is the layers and layers of previous and existing models, and we want to keep track of all these. How much generic support can CT provide to engineers? (Other standards that we may want to augment or replace: S88, S91 specification standards; UML; SysML?)
Discussion 4 (David): how do we sustain a community effort?
There was a workshop on applied category theory in ’96 featuring Bob Roseburgh and Mike Johnson, but little happened after it. How do we make sure we keep up momentum? Ideas: a list of collaborations, hiring and working with each other’s graduate students, an annual conference, publications, applying for large funding programs together, more quantitative data of CCT for the sake of getting funding, coming up with a new brand and marketing strategy (new name? “functional” instead of “categorical”?), a categorist’s temp agency, a blog / mailing list, a web clearinghouse for applied category theory, a 3-year roadmap, a list of open math problems.
Vision: integrate information/knowledge and models. A user-friendly formal specification. A unifying framework for science and engineering. A tool for synthesis, a “theory of anything”.
Discussion 5 (Everyone): open problems in the field.
- How do we model the grouping and aggregation database operations in category theory?
- How can CT handle “fudge” and approximate data? For example, the idea that a line and “nearly a line” are close to the same object.
- How can we model machine learning in CT?
- How to model serializability (of schema functors) in CT?
- What is an end-to-end model of the data pipeline in CT, from data sources to outputs to decision-makers?