Name | Description | Development Status |
---|---|---|
Catlab.jl | A framework for applied category theory in the Julia language | Catlab.jl on GitHub The package is nearing it's v1.0.0 release |
AlgebraicPetri.jl | Build petri net agent based models compositionally | AlgebraicPetri.jl on GitHub Functionality is mostly built-out, but the API may change substantially |
AlgebraicRelations.jl | Build SQL categorically | AlgebraicRelations.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
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!