You're reading the public-facing archive of the Category Theory Zulip server.
To join the server you need an invite. Anybody can get an invite by contacting Matteo Capucci at name dot surname at gmail dot com.
For all things related to this archive refer to the same person.
Consider the task of making an olog that codifies the Wikipedia editorial guidelines. One could start with Wikipedia’s “Five Pillars” as a simple exercise before expanding to a more robust version.
They are[1]:
David Spivak presents the olog in [2], saying, “Ologs are basically categories which have text labels to explain their intended semantic” [2, §7]. The simplest rules for making an olog are as follows:
working draft of a wikipedia olog
[1]: Wikipedia contributors. Wikipedia:Five pillars. Wikipedia, The Free Encyclopedia. https://en.m.wikipedia.org/wiki/Wikipedia:Five_pillars. Accessed March 10, 2024.
[2]: Spivak, D.I.; Kent, R.E. (2012). Ologs: A Categorical Framework for Knowledge Representation. PLoS ONE 7(1): e24274. doi:10.1371/journal.pone.0024274
To make superscripts I only know two hacks. One is to use LaTeX, e.g
this
is made with a LaTeX command. (You can see my source code by clicking on the three dots at right.)
Another is to grab unicode superscripts off someplace like YayText, e.g.
this²
The CQL tool at categoricaldata.net automatically emits Coq code from olog definitions. And TPTP code too. Your other questions have... deep answers
Julius Hamilton said:
- Why does an olog object have to be “a class of things”? Why can’t it be “just anything”?
The reason for this is that, given an olog , a model of is a functor , and a set is a class of things, not an individual.
There are some subtleties. For any individual , you can talk about the singleton . The problem is that all singletons are isomorphic, and the singleton doesn't really "know" its identity. Instead, individuals in ologs should be represented as a relationship between an abstract individual (the terminal object, often written ) and the original set . This is called a [[global element]].
given an olog , a model of
Could you define “model”? Does it mean any sort of real world object which the olog describes?
is a functor , and a set is a class of things, not an individual.
Is it in the definition of ologs that the text labels are actually just a shorthand for a functor from the objects of to a “set of some things” in ?
For any individual , you can talk about the singleton . The problem is that all singletons are isomorphic, and the singleton doesn't really "know" its identity.
What do you mean? I as a human can look at and see what it is. But you mean the singleton lacks any internal structure to express any difference between values of ?
Instead, individuals in ologs should be represented as a relationship between an abstract individual (the terminal object, often written ) and the original set . This is called a [[global element]].
So to represent “the site Wikipedia”, I could consider the class of all websites, and imply one has been chosen by a mapping from the singleton set. What is the text label of the singleton / terminal object, in the olog, though? I would be expecting a sentence, like, “[Wikipedia] [is] [a website]”. If the singleton selects Wikipedia from the collection of all websites, does the word Wikipedia appear on the olog? Where?
Perhaps the sentence would be, “[an individual] [selects] [a website]”?
Julius Hamilton said:
Spencer Breiner wrote:
given an olog , a model of
Could you define “model”? Does it mean any sort of real world object which the olog describes?
is a functor [...]
Spence actually did define "model": in this context, it's a functor from to .
There's no better definition than that. So perhaps what you're asking for is some things that Spivak does with models?
Is this a standard use of the term “model” in category theory? Is it the same notion as that of “model” in logic and model theory? I.e., the idea of mapping a syntax to a semantics; a symbolic notation to some object it describes.
A presheaf is a contravariant functor to . It seems like a fundamental idea that categories are often studied by their mappings into . Does retain a special place in category theory as a way of grounding abstract structures in “real/concrete things”?
Julius Hamilton said:
Is this a standard use of the term “model” in category theory?
No. There are many definitions of "model" in category theory. Apparently this is Spivak's definition of "model of an olog". At least, that's what @Spencer Breiner is telling us.
Julius Hamilton said:
Does retain a special place in category theory as a way of grounding abstract structures in “real/concrete things”?
One reason retains a special place in category theory is that for any two objects in a category there is a set of morphisms from the first object to the second object. This has enormous effects throughout category theory.
If you change this - if you decide to have some other sort of thing of morphisms, a thing that's an object in some category - then you're doing a generalization of category theory called "-enriched" category theory. Then will take the place of in much of your work.
Is there a generalization of the definition of a category where it does not matter what type of object the collection of morphisms form?
Not that I know of. It would seem hard to work with something where you have no clue what type of object the collection of morphisms forms.
What if you left V as a variable, stating that it was simply some category?
So for each pair of objects and the thing of morphisms from to could be an object in some category, but that category could depend on and ?
A model of an olog is a functor from to .
It was said above that this is why an object in an olog should be taken to represent “a class of things”. Why does that imply that?
Does that mean that we can only design ologs so that there would be a possible functor into ?
Does that mean that it is ultimately the structure of that ologs are grounded in? I.e., we could eliminate the idea of “a category with text labels”, and instead just say, “any subcategory of is basically an olog; just assume each set represents a concept.”?
If you answer my last question I'll be able to continue the conversation.
I can't hop around from topic to topic without getting resolution on one at a time.
John Baez said:
If you answer my last question I'll be able to continue the conversation.
I am - my above was being drafted while your last message was sent. My response to your last message is forthcoming.
Okay, thanks.
John Baez said:
So for each pair of objects $x$ and $y$ the thing of morphisms from $x$ to $y$ could be an object in some category, but that category could depend on $x$ and $y$?
My thinking was that it felt undesirable to have to choose a specific, particular category, if it would have so much of a bearing on how the remainder of the theory became. If ologs have a special relationship to in the same way that all categories whose collections of morphisms form sets do, then it makes me wonder why we don’t instead study ologs enriched over other categories. But it would be dissatisfying to not know which enrichment is the best one, to study the world of concepts. Thus, it would be better if there was something which generalized all possible choices, so we did not have to worry that we were studying the potential of ologs from only one angle while missing others. I guess you could study 2-ologs, whose morphisms form categories.
Also, I understand Lawvere created the ETCC, but there were some problems with it, and then he made the ETCS. It seems like the ETCS still considers sets as a kind of fundamental concept you need in order to build up the rest of category theory, I guess.
The original question was, if an olog is an attempt to model semantic and/or conceptual relationships, why should it do so by choosing general classes of entities as one of its fundamental building blocks?
I think it is because ontologies in general do this. So my next thought is about how ontologies represent “specific identity”.
(John Baez, you may or may not realize it, but these conversations are really helpful to me. It may not seem like I developed a clear result, but it actually does help me realize where I need to direct my thinking.)
some thoughts: first, in the modern approach to embedding query languages into lambda calculi using monad comprehensions, the monad can vary, from lists to bags to sets to trees etc. This approach is expressive enough to capture ontologies and more, and e.g. many optimizations work for some monads and not others. Second, the category Set is privileged simply because logicians and computer scientists already know a lot about modeling things with sets, and have tooling as well (theorem provers, etc). Third: when categories are understood as database schemas, a morphism is a foreign key and so a 'morphism between morphisms' doesn't quite make sense. However, categories of queries tend to have nice higher structure, with morphisms between morphisms representing e.g. inclusions between queries. Fourth: Besides CQL, to author ologs, there's algebraic Julia, and EASIK, and many CT libraries in Coq, Haskell etc implement co-presheaves and kan extensions etc
Could you provide an example of “embedding a query language into a lambda calculus using a monad comprehension”?
Can you provide more information on what you mean by a morphism being a “foreign key”?
(Julius Hamilton) It seems like the ETCS still considers sets as a kind of fundamental concept you need in order to build up the rest of category theory, I guess.
FWIW, ETCS (Elementary Theory of the Category of Sets) is not intending to "build up the rest of category theory", it is a different axiomatization of set theory. It is perhaps most useful for doing proofs at the undergraduate level in a style that more easily generalizes to other topoi, than "ZFC style" proofs that emphasize sets composed of concrete elements. In fact, my understanding is that the germ of this project grew in a very practical way out of Lawvere's teaching responsibilities. Here is a very nice and readable summary of the "material set" (ZFC) vs. "structural set" (ETCS) approach that is also a great sales pitch for HoTT
https://golem.ph.utexas.edu/category/2013/01/from_set_theory_to_type_theory.html
As to wether sets are a fundamental concept needed vs. merely a very convenient concept... I encourage you to read the opening chapter of MacLane, and then look through the 10 axioms on Tom Leinster's arxiv paper summarizing ETCS. Can you replace the axioms concerning sets with arrows, along concepts from the "arrows only" approach to category theory that MacLane mentions, and still get everything to work? I found trying to do this to be a very fun and enlightening exercise, and as it seems like you are interested in foundational questions, you might as well.
I have no wisdom or insight to share about ologs, however! Good luck!
Julius Hamilton said:
My thinking was that it felt undesirable to have to choose a specific, particular category, if it would have so much of a bearing on how the remainder of the theory became. [...] It would be dissatisfying to not know which enrichment is the best one, to study the world of concepts. Thus, it would be better if there was something which generalized all possible choices, so we did not have to worry that we were studying the potential of ologs from only one angle while missing others.
This is a trap. Abstraction is a tool for figuring out what features of a situation make something work. If you haven't selected that "something" ahead of time, you have no criteria for success. Think first about why you want to study ologs. What types of structure is required to capture [thing you want to describe using ologs]? That will either tell you a specific V or required properties of the enrichment. And it is preferable to pick a V which works and run with it before generalizing, because otherwise you will not be able to say anything concrete at the end of the day.
Hi @Julius Hamilton,
This is a great set of questions. I'll try to get back to the rest soon.
Julius Hamilton said:
given an olog , a model of
Could you define “model”? Does it mean any sort of real world object which the olog describes?
One of the main insights in categorical logic is that "a model is a mapping". The things that go into the mapping are called "syntax", and the things that come out are "semantics". The remarkable thing is that you have a lot of flexibility in choosing what those mean; not only do you choose what those are, you get to choose what kind of (mathematical) thing they are as well.
To connect this up with classical logic, we can decide that syntax and semantics will be Boolean algebras. Often, we also fix the semantic algebra to be . Now the syntax can be any Boolean algebra (usually thought of as a propositional theory), and a model determines a homomorphism by setting to if and otherwise. However, we can also interpret in other Boolean algebras. For example, if was a theory of individual characteristics ("likes pizza") and is a set of people, then we could also give a model to the power set by sending to .
For ologs, we are deciding that syntax and semantics will be categories and models will be functors. Then we decide that semantics will be sets and functions, but we can absolutely make other decisions, with sets and relations or vector spaces and linear maps being particularly important examples.
Julius Hamilton said:
Could you provide an example of “embedding a query language into a lambda calculus using a monad comprehension”?
Sure, one classic is Wong's thesis, 'querying nested collections' https://www.semanticscholar.org/paper/Querying-Nested-Collections-Wong/b9cd5bc118045ea4ba3d2630eed1f3c3d0d351be
Julius Hamilton said:
Can you provide more information on what you mean by a morphism being a “foreign key”?
If we look at an OLOG schema or EA Sketch such as attached, then every arrow in the diagram denotes relational database theorists call a "foreign key" constraint/skolem function https://en.wikipedia.org/wiki/Foreign_key, basically, these say that in the model, for every row in the source table, there exists a corresponding row in the target table. For example, we might have a (presumably injective) foreign key from Student to Person. SQL databases like Oracle have lots of foreign keys in practice
Screenshot-2024-03-12-at-7.34.02AM.png
I noticed that Spivak presents an example of an olog that includes an object labeled by a proper noun.
I am going to turn to a philosophy forum to explore the question of what characterizes proper nouns as opposed to noun classes. Mathematically, it calls to mind quantifiers. In ZFC, entities with specific identities comes before the ability to define “a class of things sharing a property” (restricted set comprehension).
I may break this thread into new sub-threads to organize some of the different aspects and focus on each one.
Julius Hamilton said:
John Baez said:
So for each pair of objects and the thing of morphisms from to could be an object in some category, but that category could depend on and ?
My thinking was that it felt undesirable to have to choose a specific, particular category, if it would have so much of a bearing on how the remainder of the theory became.
It's an interesting thought, but I don't think we can let the things of morphisms between each different pair of objects be objects in different category without choosing some way for these different categories to "talk to each other". Otherwise we couldn't do much with these morphisms.
Escaping the hold of contingent, arbitrary historical decisions is part of the goal of category theory, but even more important is finding formalisms that really "hum" - that work smoothly and powerfully. @Morgan Rogers (he/him) explained that pretty well.
After decades of work on ordinary -enriched category theory, people were ready to study categories enriched in other categories. Kelly's book Basic Concepts of Enriched Category Theory came out in 1982, and it's quite deep.
You'll notice how I said "categories enriched in other categories" - those second categories are ordinary -enriched categories! So Kelly needed a lot of ordinary category theory to prove theorems about enriched categories. You may consider that a limitation. If so, try doing something better! Improving category theory is always possible - it keeps evolving - but it takes a lot of work and deep thought.
@Julius Hamilton I recommend you take a look at the chapter about databases in Spivak's "Seven sketches...", especially if you have some database knowledge. Basically, an olog diagram contains the structure, the schema. And a functor from an olog to Set defines a possible content for this structure (a model if you will).