|A framework for applied category theory in the Julia language||Catlab.jl on GitHub The package is nearing it's |
|Build petri net agent based models compositionally||AlgebraicPetri.jl on GitHub Functionality is mostly built-out, but the API may change substantially|
|Build SQL categorically||AlgebraicRelations.jl on GitHub Functionality is mostly built-out, but the API may change substantially.|
|Build dynamical systems compositionally||AlgebraicDynamics.jl on GitHub Functionality is mostly built-out, but the API may change substantially.|
|Simplicial sets and other combinatorial models of geometric spaces||CombinatorialSpaces.jl on GitHub Functionality is mostly built-out, but the API may change substantially.|
More info on these packages can be found below.
In the code itself:
using Pkg; Pkg.add("Catlab"), or
In the REPL, hit
] to enter Pkg mode and type
add Catlab More info can be found at the Pkg manager documentation.
To learn more about applied category theory, try these introductory texts:
An invitation to applied category: Seven sketches in compositionality by Fong & Spivak (arXiv)
Category theory for the sciences by Spivak (arXiv)
The following resources introduce specific topics in, or perspectives on, applied category theory:
"Physics, topology, logic and computation: A Rosetta Stone" by Baez & Stay (arXiv), an interdisciplinary introduction to monoidal categories
"Categories for the practising physicist" by Coecke & Paquette (arXiv), another introduction to monoidal categories, emphasizing quantum physics and relations
Category theory for programmers blog by Milewski, a programming languages viewpoint on category theory with examples from C++ and Haskell, also available in PDF
Graphical linear algebra blog by Sobocinski, on the string diagrammatic approach to linear algebra
If your mathematical background includes basic abstract algebra, you might also try one of these more mathematical introductions to category theory:
Category theory in context by Riehl
Basic category theory by Leinster (arXiv)
Category theory by Awodey
Compositional exploration of combinatorial scientific models, 2022. Kristopher Brown, Tyler Hanks, James Fairbanks. Applied Category Theory 2022. arXiv, Slides, Video
A diagrammatic view of differential equations in physics, 2022. Evan Patterson, Andrew Baas, Timothy Hosgood and James Fairbanks. Mathematics in Engineering. arXiv, DOI
Compositional modeling with stock and flow diagrams, 2022. John Baez, Xiaoyan Li, Sophie Libkind, Nathaniel Osgood, Evan Patterson. Applied Category Theory 2022. arXiv, Slides, Video
An algebraic framework for rapid epidemic modeling, 2022. Sophie Libkind, Andrew Baas, Micah Halter, Evan Patterson, James Fairbanks. Accepted at Proceedings of the Royal Society A. arXiv
Computational category-theoretic rewriting, 2022. Kristopher Brown, Evan Patterson, Tyler Hanks, James Fairbanks. International Conference on Graph Transformation (ICGT 2022). arXiv, DOI
Categorical data structures for technical computing, 2021. Evan Patterson, Owen Lynch, James Fairbanks. Accepted at Compositionality. arXiv
Operadic modeling of dynamical systems: mathematics and computation, 2021. Sophie Libkind, Andrew Baas, Evan Patterson, James Fairbanks. Applied Category Theory 2021. arXiv
Wiring diagrams as normal forms for computing in symmetric monoidal categories, 2020. Evan Patterson, David Spivak, Dmitry Vagner. Applied Category Theory 2020. arXiv, Video
Compositional scientific computing with Catlab and SemanticModels, 2020. Micah Halter, Evan Patterson, Andrew Baas, James Fairbanks. Applied Category Theory 2020. arXiv
Abstraction and Composition in Modeling and Simulation, Luke Morris, Andrew Baas, Jesus Arias, Maia Gaitlin, James Fairbanks, SIAM Conference on Computational Science and Engineering, March 2023. Slides, Abstract, Schedule
Computational Category Theory in Applied Mathematics, Owen Lynch and James Fairbanks, Joint Mathematics Meetings, January 2023. Slides
AlgebraicJulia: a compositional approach to technical computing, Evan Patterson, NIST Workshop on Compositional Structures for Systems Engineering and Design, November 2022. Slides
Diagrammatic differential equations: Formal categorical framework and applications to multiphysics simulation (on arXiv:2204.01843), Timothy Hosgood, Applied Category Theory 2022, non-proceedings talk, July 2022. Slides, Video
Typed and stratified models with slice categories (on arXiv:2203.16345), Sophie Libkind, Applied Category Theory 2022, demo track, July 2022. Slides, Video
Individual.jl: Rewriting individual-based models for epidemiology using graph rewriting (on Individual.jl), Sean Wu, Applied Category Theory 2022, demo track, July 2022. Video
Principles and pitfalls of designing software for applied category theory, Evan Patterson, Topos Institute Berkeley Seminar, February 2022. Slides, Video
Categories of diagrams in data migration and computational physics, Evan Patterson, Topos Institute Colloquium, December 2021. Slides, Video
Computational categorical algebra with Catlab, James Fairbanks, Graph Transformation Theory and Applications (GReTA) Seminar, May 2021. Video
C-sets for data analysis: graphs, relational data, and conjunctive queries, Evan Patterson, Category Theory and Applications Meetup, January 2021. Notebook, Video
(Co)relational computing in Catlab: The operad of UWDs and its algebras, Evan Patterson, MIT Categories Seminar, December 2020. Slides, Video
Implementing open dynamical systems in Catlab, Sophie Libkind, UNAM Categories Seminar, November 2020. Video
Compositional epidemiological modeling using structured cospans, Micah Halter and Evan Pattersion, UC Riverside Categories Seminar, November 2020. Slides, Video
AlgebraicJulia: Applied category theory in Julia, James Fairbanks, JuliaCon, July 2020. Slides, Video
Realizing applied category theory in Julia, Evan Patterson, MIT Categories Seminar, January 2020. Video
First off, thank you for your interest in AlgebraicJulia, no matter how you participate in the community.
The packages in AlgebraicJulia are open-source and liberally licensed to allow wide private and commercial usage of the packages, like the base Julia language and many other packages in the ecosystem.
Being open source, you are free to modify, use, or change your copy of the code - but if you make enhancements please consider opening a pull request (basic walkthrough here).
If you find issues, please open an issue on the relevant package's repository and we will try and address it as soon as possible.
If you have other ideas or questions, feel free to also open an issue, or discuss on the community Zulip or Slack #catlab channel. We welcome all Category Theory and related disciplines!