[ Jocelyn Paine's Home Page | Publications ]

Make Category Theory Intuitive!

1. Introduction

These are some notes and suggestions on why we should encourage students and researchers to discover the branch of mathematics known as category theory, and how to do so. I may later expand it into a research proposal.

Category theory has been around since the 1940s, and was invented to unify different treatments of homology theory, a branch of algebraic topology [Marquis 2004; Natural transformation]. It's from there that many examples used in teaching category theory to mathematicians come. Which is a shame, because algebraic topology is advanced: probably post-grad level. Examples based on it are not much use below that level, and not much use to non-mathematicians. The same applies to a lot of the other maths to which category theory has been applied.

2. Why does this matter?

It matters because category theory is a great source of unifying concepts and organising principles, as Joseph Goguen points out in his "Categorical Manifesto" [Goguen 1991]. If these could be taught in the right way, they could help many researchers unify existing concepts and formalise existing ones. More: we should encourage researchers to do so.

3. Examples

I shall give three main examples, and some hints about others.

3.1. A general theory of objects and systems: used for … spreadsheets?

This example is from my own work. In the 1960s, Joseph Goguen produced a formalisation of what it means for something to be an object, and what it means to build a system out of interacting objects. This is described in his paper "Sheaf Semantics for Concurrent Interacting Objects" [Goguen 1992].

Using a categorical construction called "limit", Goguen showed that the behaviour of a collection of interacting objects is the "limit", in a precisely definable sense, of the behaviours of the individual objects and their interactions. By "object", he didn't mean object in the sense of object-oriented programming, but in its everyday sense: an economic object, an electronic object, a social object, and so on. This was an extremely general result, which he saw as an important contribution to General Systems Theory. In essence, he'd explained what happens when you put together parts to make a system.

I discovered this work by accident (I was visiting a friend doing a D.Phil. with Goguen, and found the paper on his desk), and realised I could apply it to spreadsheets. As a result, I now have what is probably the world's first software for building spreadsheets from modules that can be independently coded, debugged and documented, then put together to form a complete spreadsheet: see "Excelsior: bringing the benefits of modularisation to Excel" [Paine 2005]. Moreover, I also have what would seem to be the first method for delivering spreadsheet modules over the Web so that Excel users can "glue" them into their own spreadsheets. By conferring the benefits of prefabrication and modularity, this will surely cut spreadsheet programming costs and reduce errors.

It's also well worth noting that John Baez and Mike Stay have, very recently, published a paper entitled "Physics, Topology, Logic and Computation: A Rosetta Stone" [Baez and Stay 2008]. This is another attempt at a general theory of systems. To quote:

By now there is an extensive network of interlocking analogies between physics, topology, logic and computer science. They suggest that research in the area of common overlap is actually trying to build a new science: a general science of systems and processes. Building this science will be very difficult. There are good reasons for this, but also bad ones. One bad reason is that different fields use different terminology and notation.

In "A Rosetta Stone", Baez and Stay use category theory to provide a formalism into which key concepts from physics, topology, logic and computation can all be translated. The authors end the paper by drawing a simple diagram of overlapping strings, and say that this can be interpreted as a computation, or a mathematical entity called a "tangle", or a quantum process. The last is particularly exciting, because the tangle can be translated into a quantum process in a very straightforward way by interpreting the diagram as a recipe for moving around "anyons", particle-like excitations that can be created in superconducting thin films in magnetic fields. This may allow us to map, very directly, computations onto quantum processes, with marvelous implications for the design of quantum computers. The authors note that "Microsoft has set up a research unit called Project Q attempting to do just this" — i.e. moving anyons around. "After all", they continue, "a working quantum computer could have huge practical consequences".

3.2. A general schema for combining specifications

In "Categorical Manifesto", Goguen asserts several "dogmas", each of which suggests a use for a particular categorical construction. The dogma for the section on "Colimits" reads:

Given a species of structure, say widgets, then the result of interconnecting a system of widgets to form a super-widget corresponds to taking the colimit of the diagram of widgets in which the morphisms show how they are interconnected.

Roughly speaking, what this means is that category theory prescribes a way in which one can depict each widget as a dot, and the relations that describe how they interconnect as arrows. The resulting diagram has a precise interpretation, and by applying the categorical operation called "colimit" to it, one can derive a description of the "super-widget" thus formed.

Many computer scientists have used this idea to give a precise semantics to specification languages: to describe exactly how combining specifications of parts of a system results in a specification of the entire system.

However, most (all?) specification languages are based on logic, and the colimit dogma goes well beyond that. For example, in "Category Theory and Higher Dimensional Algebra: potential descriptive tools in neuroscience" [Brown and Porter 2008], Ronald Brown and Timothy Porter suggest that colimits may be useful in explaining brain activity in terms of its component neurons and neural structures. And in "Category Theory Applied to Neural Modeling and Graphical Representations" [Healy 2000], Michael Healy shows how to build compound neural nets from simpler components using colimits. Such a principled approach is, I believe, almost unknown in the field.

3.3. Unification, logic, and holographic reduced representations

My third example is about something called "unification". This is a kind of pattern-matching used by computer scientists in automating logical inference. (It has no connection with the phrase "unifying concepts" that I used above.) In essence, it's gap-filling. You've got a pattern with gaps in it, and you try to match it against some data in a way that fills the gaps as well as possible. Some computer scientists, Goguen included, have worked out categorical formulations of this: see "A categorical unification algorithm" [Rydeheard and Burstall 1986]; Computational Category Theory [Rydeheard and Burstall 1988]; and "What is Unification? A Categorical View of Substitution, Equation and Solution" [Goguen 1991].

Many miles from that work, other researchers have invented some nifty implementations of analogical reasoning, collectively known as "Holographic Reduced Representations". These use operations on high-dimensional vectors: see for example "Dual Role of Analogy in the Design of a Cognitive Computer" [Kanerva 1988].

Such operatioms appear very different mathematically from logical inference. But at a deeper level, they may be closely related, in that they are also doing a kind of unification. Perhaps applying the categorical formulation mentioned in the last but one paragraph would show whether or not there is a connection, and if so, what. It is interesting to note that in Categorical Unification [Galán 2004], María Ángeles Galán García extends the categorical treatment of unification to describe fuzzy matching of terms.

3.4. Other unifying concepts

Category theory has an operation called "adjunction", a key part of the subject. I have suggested that generalisation in machine learning can be viewed as an adjunction, and that this might apply to fields as disparate as neural nets, curve-fitting, and logical induction: see "Generalisation is an adjunction" [Paine 2000].

The essence of this is that when creating a concept to describe several examples, you want to be able to infer each example back from this concept, while inferring as little else as possible. In other words, the concept should contain as much of the examples as possible, but as little of anything else. However, the language you have to describe the concept might not be adequate to describe it precisely. So in that case, it has to "do the best it can", getting as close to the concept as possible. This idea of doing the best you can but as little else as possible, is what adjunctions do.

My second example [I suspect that "sheaves" can unify much of machine learning, because of their use in maths to pass from local to global. More precisely, because of the "sheaf condition". Write this up, and relate to applications of charts and atlases in machine learning.]

More generally: I would like researchers to know that unifying concepts like this exist, and that it's worth trying to use them and extend their scope.

But; too few researchers know category theory. I also suspect that because of the way it's usually taught, some who do know it get lost in the formalisms — the syntax — and haven't developed the "intuitive" mental representations that would enable them to apply it more easily. Perhaps, however, by crafting appropriate visual and verbal metaphors, we could teach it in a way that hooks into the brain's existing visual and kinaesthetic knowledge, thus making it easier to use. In the following sections, I say more about this and other suggestions.

4. Suggestions about teaching

In this section, I've just got a mixed bag of suggestions on how to improve teaching. Many were inspired by interesting references. Most apply to any branch of maths, and indeed any subject. The subsections are probably as messily related as the categories in the following classification of animals as:

1. those that belong to the Emperor, 2. embalmed ones, 3. those that are trained, 4. suckling pigs, 5. mermaids, 6. fabulous ones, 7. stray dogs, 8. those included in the present classification, 9. those that tremble as if they were mad, 10. innumerable ones, 11. those drawn with a very fine camelhair brush, 12. others, 13. those that have just broken a flower vase, 14. those that from a long way off look like flies.
(The above is allegedly from an ancient Chinese encyclopaedia, the "Celestial Emporium of Benevolent Knowledge"; actually published by Borges in his essay "The Analytical Language of John Wilkins".)

4.1 By interpreting history

It is important to know the history of a subject. Why did researchers emphasise particular concepts? What tasks did they intend them to perform? As I mentioned in my introduction, category theory was invented to unify different treatments of homology theory, a branch of algebraic topology [Marquis 2004; Natural transformation]. To quote from the latter reference:

Saunders Mac Lane, one of the founders of category theory, is said to have remarked, "I didn't invent categories to study functors; I invented them to study natural transformations." Just as the study of groups is not complete without a study of homomorphisms, so the study of categories is not complete without the study of functors. The reason for Mac Lane's comment is that the study of functors is itself not complete without the study of natural transformations.

The context of Mac Lane's remark was the axiomatic theory of homology. Different ways of constructing homology could be shown to coincide: for example in the case of a simplicial complex the groups defined directly, and those of the singular theory, would be isomorphic. What cannot easily be expressed without the language of natural transformations is how homology groups are compatible with morphisms between objects, and how two equivalent homology theories not only have the same homology groups, but also the same morphisms between those groups.

Unfortunately, homology theory is probably unknown to all but post-graduate mathematicians. This makes it very difficult to explain to anyone else the original point of category theory. To do so, we need to construct examples that have the same structure as those mentioned in the quote, but that are more intelligible to those who don't know homology theory.

Note: could perhaps use the nice explanation in Section entitled "Eilenberg{Mac Lane (1945)" in "A Prehistory of n-Categorical Physics" [Baez and Lauda 2008].

4.2. By countering the claim of abstract nonsense

Mathematicians sometimes say that category theory is "abstract nonsense", meaning that it is a formalism that does nothing useful — an overemphasis on abstraction for its own sake. For an example of this view, see this review, of a book by B. R. Tennison on sheaf theory [Hoobler 1977]. Can we counter such views? How? Perhaps by pointing out category theory's power as a unifying mechanism: for example, this very brief .... www-groups.dcs.st-and.ac.uk/~history/Biographies/Kelly_Max.html [O'Connor and Robertson 2007]:

Among the honours he received for his major contributions are election to a fellowship in the Australian Academy of Science and a Centenary Medal "for services to Australian society and science in mathematics" received from the Australian Government in 2001. In the interview reported in [2], Kelly tried to explain the importance of category theory in a way that non-mathematicians would understand. He said:-
Category theory sheds light on the relations between various aspects of mathematics and in doing so it brings unity and simplicity. It lights the way for the next lot of advances.

4.3. By being good explainers

This is a tautology. But I want to emphasise that this is not easy. See this "Interview of John Baez and Urs Schreiber" [Bruce Bartlett, Urs Schreiber and John Baez 2007]:

Urs: But maybe I'm just not explaining it well. That's the problem.

John: Well, you're being a bit harsh on yourself. I've spent a whole bunch of time trying to figure out how to explain things. And you know, it takes a lot of work to convey ideas in a way that people can easily pick them up. If someone wants to learn about something, they can go after it, and find out about it. But if they're just sitting there, and you tell them something that they're not expecting, it will almost always just bounce right back off them, unless you work really hard to get them interested.

Bruce: Okay. So you're an expert, in the art of explaining things?

John: I'm trying to become an expert in that. But I don't do too much of it on the n-Category Café, actually! When I was at sci.physics.research I put a lot of work into making my posts very fun: pretending to be fictional characters, telling stories, and things like that. That's because I was trying very hard to get as many people involved as possible.

4.4 By being good teachers

This is even more tautological. But I definitely want to point the reader at "How to Teach Stuff" [Baez 2006]. Points I particularly liked: Teaching is Like Acting; Tell Us a Story.

4.5 By being good lecturers

I also want to point the reader at the advice on lecturing in "Advice for the Young Scientist" [Baez 2007a].

4.6 By being playful

Unless you enjoy playing with the ideas you're trying to explain, would you come up with nice explanations such as this one of gerbes [Schreiber 2007]?

No. You need the attitude expressed in "Re: Gerbes in The Guardian" [Trimble 2007]:

See, John, by making mathematics seem accessible and fun, you're ruining everything.

The idea is supposed to be that math is 'cool', in a way - at least we use a bunch of cool-sounding and mysterious words - but please let's keep it at arm's length, because you have to be a genius (or weirdo) or something to actually understand it. It's hard to find the idea in mass culture that anyone does math because it's fun.

4.6.1. Let's play with jokes and analogies

I hope I can develop teaching aids that will explain how category theory can describe analogies (including jokes, seen as "twisted" analogies) and analogical problem solving; and how it can describe generalisations (as I noted above). Making the categorical descriptions of these "graspable", will, I believe, help in teaching. We can implement them using Rydeheard and Burstall's approach, and then depict the implementation as a collection of manipulable entities. Pick up a categorically-represented analogy; turn it over and over; rub your hand along the arrows poking out from the objects; lay parallel arrows side by side, and see how they perform parallel transformations, one on each term in the analogy.

5. Kinaesthetics, metaphor design, stories

The suggestions in this section are "deeper" than those above, though still horribly imprecise. Crafting metaphors. Metaphors to engage with previous knowledge (possibly everyday knowledge such as that of pipes and machines.) Metaphors to run efficiently on the brain's visual and kinaesthetic "virtual machine", using our primitive abilities to walk, hunt, explore, etc. Casting knowledge into stories — see "Tell Us a Story" in "How to Teach Stuff" [Baez 2006]. Whether the metaphors are "primitive" ones such as exploring paths, or not, using notions of quality of mapping (semiotic morphisms) to ensure that the metaphor is as faithful as possible.

5.1 By crafting suitable representations to run on the brain's visual and kinaesthetic "virtual machine"

My justification for this proposal is largely anecdotal. For example: the mathematician Paul Erdos claimed that flapping his hands as he walked helped him think; I recall an Oxford topology lecturer who would talk about "upstairs" for the codomain of functions and "downstairs" for their domains, or "upstairs" for topological spaces and "downstairs" for their open sets; a group-theorist friend of mine working in Essen said that the "earthy" German words for group operations helped him think by giving him a gut feel that he was "putting" and "turning" one group inside another. He gave as an example the German word "Darstellung", which means (I think) "representation" (technical term for a way of characterising groups), but which literally means "there-putting".

In support, I note that others are trying the same with other areas of mathematics: see for example "Teaching To See Like a Mathematician" [Whitely 2002]. To quote:

The van Hiele model of learning geometry presents visuals as the basic, essential experience that all students must move through. Along with the kinesthetic, it is the layer which students must have access to in order not to become lost. The standard version is that students (and mathematicians) move beyond this to higher, non-visual levels of reasoning. What actually happens in my experience (see also de Villiers) is that the visual just ceases to be noticed since it is not recorded expressed in words. It is, in fact fully capable of sustaining the practice of mathematics at the highest levels. The visual is an important route for 'mathematical intuition' — pointing to something we currently do not teach.

5.1.1. Grab and pull

Mathematicians describe categories in terms of objects and arrows. The objects, usually depicted as dots, represent mathematical entities, or perhaps computational objects such as Java classes, or perhaps "real-world" entities. The arrows, usually depicted as arrows, represent transformations or relations between objects.

Now, "well-behaved" categories contain an "initial object". This has one, and only one, arrow leading to every object. Here's a possible verbal metaphor to describe the fact that an arrow leads from it to every object:

Imagine the objects to be made of Plasticine, with the arrows sticking into them. Pull the initial object. Then all the other objects will move with it.

By involving our primitive notions of grabbing and pulling, this seems to make more impact, at least to me, than the bald statement that an arrow leads from the initial object to every object.

5.1.2. Stand and look

Along different lines, I want to invite the student to think of "standpoints" rather than "objects". Instead of viewing a category from above, depicted as a collection of dots joined with arrows, imagine that the dots depicting objects have been inflated to discs the size of Bonn Square, and that you are standing on one. Some categorists argue that the only important thing about an object is the relations it takes part in, and that these are what define it. Imagining oneself standing on an object, one's view dominated by the arrows entering and leaving it, might encourage such a relativistic attitude. See for example this quote by David Corfield [Corfield 2003], which I have taken from John Baez's "Quantum Quandaries: A Category-Theoretic Perspective" [Baez 2004]:

Category theory allows you to work on structures without the need first to pulverise them into set theoretic dust. To give an example from the field of architecture, when studying Notre Dame cathedral in Paris, you try to understand how the building relates to other cathedrals of the day, and then to earlier and later cathedrals, and other kinds of ecclesiastical building. What you don't do is begin by imagining it reduced to a pile of mineral fragments.

5.1.3. Walk and explore

The above seems closely related to one of the objectives of Modelling4All, a project to design software by which non-programmers can collaboratively build and analyse computer models. To quote from the project's "Welcome to Modelling4All project wiki" page, [Modelling4All]:

The third objective is to provide a means of experiencing the execution of a model as an individual or observer inside the model. We want model makers and users to have an alternative to the "god's eye" view of a model. Being inside a model, perhaps having a game-like goal of influencing the way it unfolds, can be a powerful way of understanding. Running a model inside a shared virtual space, such as Second Life, provides the opportunity for social learning and understanding. It can also be a strong motivation to build models.

5.1.4. Flow and transform: pipes with machines in

Here, I shall just mention Toby Bartels's "Quantum Gravity Seminar" [Bartels 2000], and his depiction of arrows in a category as "pipes with machines in".

5.1.5. Graspable entities

One thing I want to do here is to make students think of the parts of a category as "graspable". In many categories, an arrow represents a function. Now, functions can be applied to things: they "do something". So let's depict the arrow as something you can zoom in on, pick up, and click on to apply: as a thing that is graspable and manipulable, but that also "does things".

I suspect this may be useful when teaching about categorical concepts such as "functors" and "natural transformations". To a category theorist, these are functions, but functions with a complex and subtle internal structure. My hunch is that making them seem like objects that can be picked up and handled as a whole may help prevent students getting lost in details of their internal structure. I'm not sure why I believe this; perrhaps (in my mind, at least) the action of picking up and grasping the mouse becomes associated with the idea of picking up and grasping whatever the mouse is pointing to on screen. This makes the latter seem more real, more "object-like".

This is related, I think, to Rydeheard and Burstall's approach in Computational Category Theory [Rydeheard and Burstall 1988]. This makes the categorical constructions it describes "concrete", by implementing them as functions. The fact that these functions run and "produce something" somehow helps make them real to us.

Perhaps so does the fact that they are implemented in data structures. Good programmers rapidly develop a "feel" for data structures as things "out there in the world", like real-world objects. So perhaps embodying mathematical entities as data structures would in turn transfer this feeling of reality to them.

5.2. Automating subconscious ability to change representation

Category theory is a hugely recursive and self-referential subject, in which an entity can be represented in many different ways. It is easy to get confused when changing representation. Perhaps by displaying such changes visually, we can help the student progress from a stage where such changes require effortful conscious thought to one where they are largely automatic, requiring little conscious monitoring.

We might say that our goal here is to increase the student's n-category number, following Dan Freed's humorous definition that your n-category number is the largest n such that you can think about n-categories for a half hour without getting a splitting headache. (See "This Week's Finds in Mathematical Physics (Week 255)" [Baez 2007b]).

5.3. Using kinaesthetic memory to reduce cognitive load

Here, I'm thinking of such things as the advice given to language learners: when you learn a new word, always say it. The "muscle memory" thus learnt is an additional source of redundancy, and may help if you forget the word's sound or spelling. I've been learning Chinese, and I find that writing the characters over and over again definitely seems to "bed in" some kind of motion memory which operates even if I forget what a character looks like.

So: can we help mathematicians visualise categories by asking them to imagine objects and arrows laid out in space, and to gesture and point at these? Would this store some of the information in kinaesthetic memory, reducing the load on other areas of cognition?

5.4. Use high-quality semiotic morphisms

"Information Visualization and Semiotic Morphisms" [Goguen and Harrell 2003].

5.??? n-categories and the subtlety of equality

[Not sure where I want to put this section now.]

We could use pictures and animations to introduce the topic of "n-categories". In an ordinary category, two different arrows from object 1 to object 2 will represent transformations, but these transformations are seen as entirely unrelated. However, it's often useful to think of transformations as related to one another. In this view, the transformations, i.e. arrows, now become objects in their own right, connected by new second-level arrows. The resulting structure is called a 2-category; and can be further extended by adding third, fourth … level arrows.

This is a simple idea, if taught with suitable examples. It is a valuable organising principle which has much to say about the subtlety of "equality" and "isomorphism". But for historical reasons, most textbooks ignore it, or leave it until after they have covered other more complex and perhaps less generally useful topics. But with the animations I am proposing, this duality between transformations and objects could be made very clear.

Let me justify this by an appeal to a recent paper on how categorifying mathematical concepts can simplify and unify mathematics and theoretical physics. In "From Finite Sets to Feynman Diagrams" [Baez and Dolan 2000], the authors, writing about n-categories as an essential tool for understanding the notion of equality, say:

Will mathematics merely become more sophisticated and specialized, or will we find ways to drastically simplify and unify the subject? Will we only build on existing foundations, or will we also reexamine basic concepts and seek new starting-points? Surely there is no shortage of complicated and interesting things to do in mathematics. But it makes sense to spend at least a little time going back and thinking about simple things. This can be a bit embarrassing, because we feel we are supposed to understand these things completely already. But in fact we do not. And if we never face up to this fact, we will miss out on opportunities to make mathematics as beautiful and easy to understand as it deserves to be.

6. Conclusion

Mathematicians acquire metaphors by accident. Instead, let's engineer them through words and images. I want to see category theory with force-feedback gloves, William Lawvere on an Xbox.

7. References

John Baez and James Dolan 2000. "From Finite Sets to Feynman Diagrams". Marked as to appear in Mathematics Unlimited - 2001 and Beyond, edited by Björn Engquist and Wilfried Schmid. arxiv.org/PS_cache/math/pdf/0004/0004133v1.pdf

John Baez 2004. "Quantum Quandaries: A Category-Theoretic Perspective". Published in Structural Foundations of Quantum Gravity, edited by Steven French, Dean Rickles and Juha Saatsi, Oxford U. Press, 2006. The page cited is math.ucr.edu/home/baez/quantum/node5.html

John Baez 2006. "How to Teach Stuff". math.ucr.edu/home/baez/teaching.html

John Baez 2007a. "Advice for the Young Scientist". math.ucr.edu/home/baez/advice.html

John Baez 2007b. "This Week's Finds in Mathematical Physics (Week 255)". math.ucr.edu/home/baez/week255.html

John Baez and Aaron Lauda 2008. "A prehistory of n-categorical physics". math.ucr.edu/home/baez/history.pdf

John Baez and Mike Stay 2008. "Physics, Topology, Logic and Computation: A Rosetta Stone". math.ucr.edu/home/baez/rosetta.pdf

Toby Bartels 2000. "Quantum Gravity Seminar Week 1, Track 1". math.ucr.edu/home/baez/qg-fall2000/qg1.1.html

Bruce Bartlett, Urs Schreiber and John Baez 2007. "Interview of John Baez and Urs Schreiber", January 13, 2007. math.ucr.edu/home/baez/interview2.html

Ronald Brown and Timothy Porter 2008. "Category Theory and Higher Dimensional Algebra: potential descriptive tools in neuroscience". arxiv.org/PS_cache/math/pdf/0306/0306223v1.pdf

Pierre Cartier 2001. "A Mad Day's Work: from Grothendieck to Connes and Kontsevich. The Evolution of Concepts of Space and Symmetry". Bulletin (New Series) of the American Mathematical Society, Volume 38, Number 4. www.msri.org/publications/books/sga/from_grothendieck.pdf

David Corfield 2003. Towards a Philosophy of Real Mathematics, Cambridge University. Press, 2003.

María Ángeles Galán García 2004. Categorical Unification. Ph.D. Thesis, Department of Computing Science, Umea University. www.diva-portal.org/diva/getDocument?urn_nbn_se_umu_diva-245-1__fulltext.pdf

Joseph Goguen 1989. "What is Unification? A Categorical View of Substitution, Equation and Solution". In Resolution of Equations in Algebraic Structures, Volume 1: Algebraic Techniques, pp. 217-261. Edited by Maurice Nivat and Hassan Aï}t-Kaci, Academic Press, 1989. citeseer.ist.psu.edu/166243.html

Joseph Goguen 1991. "A Categorical Manifesto". Mathematical Structures in Computer Science, Vol. 1, No. 1. (1991), pp. 49-67. citeseer.ist.psu.edu/goguen91categorical.html

Joseph Goguen 1992. "Sheaf Semantics for Concurrent Interacting Objects". Mathematical Structures in Computer Science, Vol. 2, No. 2. (1992), pp. 159-191. citeseer.ist.psu.edu/goguen92sheaf.html

Joseph Goguen and D. Fox Harrell 2003. "Information Visualization and Semiotic Morphisms". www-cse.ucsd.edu/~goguen/papers/sm/vzln.html

Michael Healy 2000. "Category Theory Applied to Neural Modeling and Graphical Representations ", minor revision of Paper NN0648 in IJCNN 2000 at Como, Italy. citeseer.ist.psu.edu/healy00category.html

Hoobler 1977. Book review of Sheaf theory by B.R.Tennison, Bulletin of the American Mathematical Society, Volume 83, Number 4, July 1977. projecteuclid.org/DPubS/Repository/1.0/Disseminate?handle=euclid.bams/1183538905&view=body&content-type=pdf_1

Pentti Kanerva 1988. "Dual Role of Analogy in the Design of a Cognitive Computer". In Advances in Analogy Research: Integration of Theory and Data from the Cognitive, Computational, and Neural Sciences. Workshop. Sofia, Bulgaria, July 17-20, 1998. faculty.cs.tamu.edu/choe/mirror/kanerva.ANALOGY98-kanerva.pdf

Marquis 2004. "Brief Historical Sketch" section in article on "Category Theory", Stanford Encyclopedia of Philosophy. www.seop.leeds.ac.uk/archives/sum2004/entries/category-theory/#Bri

Modelling4All. "Welcome to Modelling4All project wiki". Modelling4All wiki page. modelling4all.wikidot.com/

Natural Transformation. "Natural Transformation". Wikipedia page. en.wikipedia.org/wiki/Natural_transformation

J.J.O'Connor and E.F.Robertson 2007. Obituary for Gregory Maxwell Kelly, School of Mathematics and Statistics, University of St Andrews. www-groups.dcs.st-and.ac.uk/~history/Biographies/Kelly_Max.html

Jocelyn Paine 2000. "Generalisation is an adjunction". www.j-paine.org/generalisation.html

Jocelyn Paine 2005. "Excelsior: bringing the benefits of modularisation to Excel". In Proceedings of EuSpRIG 2005. www.j-paine.org/eusprig2005.html

Brian Rotman 2005. "Gesture in the Head: Mathematics and Mobility", Mathematics and Narrative conference, Mykonos, July 2005. www.thalesandfriends.org/en/papers/pdf/rotman_paper.pdf

David Rydeheard and Rod Burstall 1986. "A categorical unification algorithm". In Proc. Category Theory and Computer Programming. Lecture Notes in Computer Science 240, Springer, pp. 493-505.

David Rydeheard and Rod Burstall 1988. Computational Category Theory. Prentice-Hall. www.cs.man.ac.uk/~david/categories/book/book.pdf

Urs Schreiber 2007. "Re: Gerbes in The Guardian", "The n-Category Café" blog post, August 22, 2007 2:18 pm. golem.ph.utexas.edu/category/2007/08/gerbes_in_the_guardian.html#c011485

Todd Trimble 2007. "Re: Gerbes in The Guardian", "The n-Category Café" blog post, August 22, 2007 2:40 pm. golem.ph.utexas.edu/category/2007/08/gerbes_in_the_guardian.html#c011487

Walter Whitely 2002. "Teaching To See Like a Mathematician". www.math.yorku.ca/~whiteley/Teaching_to_see.pdf