# Review and Comparison: Onto-Cartography & Promise Theory

### Introduction

This is my first post here, although I've lurked for five or six years. I came up with this idea when I noticed similarities in these two books and reread them - both tackle some flavor of practical ontology, but from different angles. [The first](https://www.jstor.org/stable/10.3366/j.ctt1g0b0mc) is primarily a philosophy text and [the other's](http://markburgess.org/promises.html) the basis for CFEngine, a "configuration management system" for computer networks. One works with words, the other theorems - one has agents, the other machines. I think there's a lot of overlap in how these ontologies behave and what concepts we can draw from them, so here's a hybrid casual review and attempt to extract the marrow.

###   
Onto-Cartography: An Ontology of Machines and Media

This book is part of a current trend in philosophy to take objects just as seriously as subjects (OOO, or object-oriented ontology). One of the better motivations for this trend is global warming and existential risk more broadly - the idea that some objects are "hyperobjects" too multifarious or widely-distributed for people to deal with them directly. This book tries to come at this sort of problem from another angle, by maintaining materialism while making everything an agent no matter how non-agentic it looks. 

The "machines" of the title are just things that perform functions, in the mathematical sense - to be worth discussing you've got to be changing inputs into outputs. Any machine in this sense is also made of tinier machines doing things to each other. (This also includes abstract concepts, which are taken as different from concrete ones only in that they're "multiply-instantiated" in the world.) The exceptions here being "dormant objects" that don't affect things any longer, like a book that no one alive has read, and "dark objects" that exist theoretically but have no effect on anything yet, like a planet outside of our light cone. In the opposite direction some objects are "bright" or "rogue" and interact a *lot* with others or have massive influence, like the Sun does for Earth or clocks do for the structure of our days.

The book's proposal is that we can tinker with these machines by understanding the smaller machines they're made of, their levels of "gravity" for other machines and what sorts of relations they have with each other. When you find a situation defined heavily by one machine, you can introduce alternatives that are brighter and restructure everything, or break it down and remove an offending part that makes it less powerful.

Ontocartographers would, as their name suggests, map these machines and their relations and try to alter both for the better. Just like a machine is made of smaller machines, any group of machines that's well-coordinated is itself a machine, and most problems machines face are problems of their parts coordinating. Where a layman would first ask what a thing is, what it's made of, etc. a dashing ontocartographer would ask what it does and what's being done to it.

There's a deeper level of philosophy in this book that may have gone over my head, partly because this is also an attempt to make an OOO-friendly, naturalist, 'flat' ontology. For instance, many machines preserve their organization from moment to moment as a kind of constant "becoming", and are subject to entropy where their component machines are more likely to be in different places the more they function in a given timescale. They each have some ability to do things they aren't doing right now, and form one giant system where everything influences everything else. They can also "mediate" each other, carrying the products of one system to another, although this doesn't come up very much.

Ultimately I found this the more accessible of the two, but I feel that it lacks application on its own. It achieves the typical level of abstraction I'd expect from ontology but doesn't use many examples to raise itself back toward concreteness or to provide real programs for changing system x or y. Out of the two methods this is the one I could imagine a science-fiction protagonist using without any trouble, but that I'd have problems implementing myself. 

###   
Promise Theory: Principles and Applications

It surprised me when I first learned that "ontologist" is a job title, but this is a good attempt to make one version of it rigorous and possibly computable. There are ties to information theory, decision theory and queueing theory here, but they're not very fleshed out in the book. On the ground-level we're basically doing directed graphs with additional, optional structures for the information we want to capture and paying attention to things like symmetries where agents reach equilibrium with each other. 

Promises are a kind of communication where one agent shows an intention to do something and another "assesses" the likelihood of it happening. They cut out parts of possibility space for other agents, and they're idempotent - a promise to promise to do x is the same as a promise to do x. (Cutely, there's also an empty promise, which is always considered to be made and kept.) The motivation here is to replace obligations with something more local to the object-under-discussion. The idea that a flower "agrees" with a beam of light to point towards it is of course a map-level abstraction, but no more so than saying the flower is "forced" to do it, and the latter needs room in the model for something doing the forcing.

Just like before, agents are made of agents as far down as discussion requires, and perfect coordination between agents looks and behaves like an agent. Promises can't always be kept by agents, though, and sometimes their failure leads to catastrophic changes. Even worse, two agents can give promises that are incompatible, or one agent make a deceptive promise that has a communicated intention and an incompatible, uncommunicated one. The task of a promise theorist is to prevent or deal with these kinds of failures and get agents to coordinate.

Some tools for doing that in big networks of promises include measuring how often promises are kept, finding which things have in-degree or out-degree zero (that is, they only take or give promises), appointing "queue dispatchers" that promise to process promises to and from other agents, and looking for goals that exist over many of an agent's communicated intentions. (There are also other things that just seem technical to me, like parametrized promise bundles where one promise is made to use information from some external agent to specify choices made in the rest of the promises.)

On my first read I found this book pretty imposing, but between that and my second I tried reading more mathematical texts and found a lot of this to be very approachable or even seemingly obvious. There's a point where the structure provided to bolster this relatively simple idea seems overdone or inelegant, and I wish there had been more material on connections with other fields of mathematics, but I appreciate how seriously it treats its subject and wish more nonfiction would follow its lead. 

###   
Conclusions

Promise theorists and ontocartographers are both dealing with coordination problems, but from different angles. Promise theory is designed for building up coordination, while ontocartography is wants to understand and change coordinations that exist already. In both cases there's a sense that every object or agent has its own subjectivity - both authors use the term "world" for this - that encompasses everything that interacts with it. Just like dark objects could be floating out there far away from us, promises are dark for any agent that's not in their scope. And where every machine's behavior matters because it could do something different, promises provide a way to quantify which decision a machine "selects" and why.

To finish, here are a few ideas I've had for less obvious extensions or combinations: 

*   There are only so many promises an average agent can make within a given timespan without decoordinating.
*   It's possible to broadcast promises to agents you're not aware of at first, as a kind of scope development.
*   Gravity can be expressed as a prior like trust for a group of agents to make promises to a given agent.
    *   Alternatively, the non-local, multiply-instantiated force of obligation could be introduced for bright objects that seem to twist the status quo at a fundamental level.
    *   Or thirdly, this could be described as a form of strong equilibrium for promises made with a given agent.
*   Promise dispatchers and machinic mediators do the same work, bridging gaps between agents.
*   Promisers have a failure mode in their communication not reaching anyone; it's possible to restrict agents by promising to prevent their communication of promises.
*   Agents that exclusively give or take promises are signs of unfinished (or intentionally simplified) models.
    *   Every agent can be expressed as an opportunist (out-degree 0) or an altruist (in-degree 0).