| I had (maybe unreasonably) hoped that this course would provide a glimpse into how CT can be applied to organizing and processing data in the sense of keywords like "knowledge graphs", "graph databases", "ontologies", "model-based engineering".... And on top of that, representing operations to do meaningful (semantic) version control on these representations (e.g. [1, 2]), and bidirectional transformations [3] between structured representations (e.g. [3, 4] and "Triple Graph Grammars"). I have the sense that there are dozens of disparate concepts and that category theory offers some unifying power. I hope that there simply hasn't been enough work done to do a category-theoretic treatment of all of these topics, and that perhaps even more category theory itself needs to be developed so that there are good ways to talk about concepts that are almost-but-not-quite-entirely described or subsumed by category theory. The alternative is that I'm painfully wrong about what applied category theory aims to be, and that I have a ton of application-specific terms to learn about and won't find a formalization of the sense in which all of these concepts relate. [1] https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theo... [2] https://github.com/trailofbits/graphtage [3] http://bx-community.wikidot.com [4] https://github.com/grammarware/bx-parsing [5] https://en.wikipedia.org/wiki/QVT [6] http://graphdatamodeling.com/Graph%20Data%20Modeling/GraphQL... [7] https://neo4j.com/developer/guide-data-modeling/ [8] https://web-cats.gitlab.io/#some-of-the-cats-we-come-across [9] http://pauillac.inria.fr/~pilkiewi/papers/boomerang-tr.pdf |
The problem with CT education IMO is that it cannot be taught at the abstraction level only -- there are too many floating abstractions that people can't anchor to any existing knowledge.
This means CT can only REALLY be understood once you apply it to a domain. The problem is that not many people outside of mathematicians understand the domains that CT is traditionally taught with.
CT for Engineers, CT for Programmers, CT for XYZ, is probably the only viable way CT is going to see wider adoption.