You are currently browsing the category archive for the ‘kraken’ category.

In the late 1970’s, the notion of an affordance was coined by J.J. Gibson to describe the manner in which an individual’s environment plays a part in explaining the possible actions an individual can take. For example, a dog can drink water in a forest cut by a stream in a manner that would be impossible for that dog in a desert. Likewise, a tall tree provides an opportunity for a man to see beyond a nearby hill, an opportunity that fades when the tree is cut down.

An affordance, according to [Chemero 2000], is an “immediate opportunity for behavior” by an organism. To put it another way, affordances are relationships between agents and their environments that have some causal impact on how the agent acts. Moreover, these affordances are part of the way that agents look at the world: when you see a flight of stairs going up, you see a way to climb to a higher floor. For ecological psychologists like Chemero and Gibson, perception is not restricted to sights, sounds, tastes, touches, and smells. Beyond sense perception, agents see the things around them as instruments to be manipulated.

To make things sound more odd to the unacquainted, affordances are neither objective nor subjective relationships. Because an affordance is a relationship between an agent and something else, and the removal of the agent removes the relationship altogether, an affordance is not an objective thing that can be studied in isolation of its subjects. If you take the animals out of a forest, the stream running through it no longer affords the possibility of taking a drink: there can’t be any drinks if there are no drinkers. However, the existence of an affordance does not soley reside in the mind of an agent – it’s not subjective in the sense of a thought or emotion. Regardless of whether you believe that a dog can drink water without a source of water nearby, the dog will still be thirsty.

The odd nature of affordances can be better understood by considering the claim in [Chemero 2001] that affordance descriptions are not predicates – no property is said to inhere in any object in the environment. When we describe a stream as affording the opportunity to take a drink, we can’t merely stop with a formal representation that looks like

(affords-taking-a-drink   the-stream   that-dog)

Part of the reason is that it’s not just the stream itself as an object that affords drinking for the dog. The edge of the stream, for example, can’t be a five-foot cliff that would frustrate the dog’s efforts. The stream can’t be crawling with crocodiles, nor can it be frozen over. There are lots of features in the environment that together determine whether or not the dog can quench its thirst – the stream is only a convenient target for predication, not an accurate one.

Unsurprisingly, placement matters when it comes to possible activities. Some actions possible in a New Jersey motel are impossible on the surface of the moon. Thus, a principled way of describing affordances is needed that does representational justice to place and environment while avoiding the bog of fanciful what-ifs (heights, crocodiles, and ice).


Following Bittner 2011, a spatial region can’t simply be recognized to have a quality like forested or polluted, where the intended meaning is distributed across the region.  That is, we expect a forested acre of land to be covered by trees; the discovery of only two small trees on that acre would smack of deceit.  So by a distributed quality of a spatial region, we understand that quality to be found throughout most, if not all of the region’s parts.

The problem is, the parts of a region aren’t exactly enumerable – you can always specify finer and finer levels of precision by which to identify parts.  It turns out that the precision you end up using goes a long way in determining whether a (distributed) quality is actually present.  So we define the presence of a quality in a region with the notion of granularity-sensitive homogeneity: Given a granularity W, a quality Q, and a breakdown of a region R into parts, then R is homogeneous with respect to Q when the area of R is roughly the same size (based on W) as the total area of R‘s sub-regions that have Q.

For example, let’s imagine a big tract of mostly-forested land.  We break down that tract into parts (like cells in a raster), and decide for each cell whether we’d consider it forested or not (say, using remote sensing).  Turns out that we have a few small ponds on our land that each take up one of our parts/cells.  To determine whether we can attribute the quality of being forested to this region, we compare its area to the area of parts/cells that are determined to be forested.  The answer depends on the level of precision we use, which is tossed into a simple formula to provide our answer.

Distributed qualities like forested are interesting to contrast with a lot of the commonplace holistic qualities we usually run into, like being electronic, sleepy, or profitable.  Distributed qualities depend quite a bit on the qualities of their parts in a way that’s irrelevant to holistic qualities.  However, some qualities of spatial regions are neither distributed nor holistic: the quality of being a habitat for badgers depends on processes that relate some parts of a region in a variety of ways.

And two months later, I’ve got both a new daughter and a new project.  Huzzah!

This new project builds Tom Bittner‘s work on vagueness and granularity in geographic regions.  A recent paper of his presents a formal system for classifying geographic regions based on their qualities.

It turns out that things get tricky when you want to apply a quality (like forested) to something like a region, because we don’t expect every part of that region to harbor a tree.  A bit more practically, we don’t expect a reasonable raster of a forested region to necessarily have trees in every cell – a raster where 99 out of 100 cells are forested is probably good enough.  What Tom does is give this intuition a rigorous formal treatment.

So I started a new project on Github called kraken where I’ll write up an implementation of his system in Clojure.  For the geoinformatics portion of this code, I’m taking a look at the GeoScript libraries; it looks like someone’s even started up a Clojure GeoScript library.

The initial phase of kraken is aimed to produce a faithful implementation of Tom’s system.  After this, I want to open up the classification of geographic regions to affordances.  I’m going to take a long look at what it means to associate an affordance (such as a habitat) to a region, which means I’ll take the time to write about how affordances tie into theories of dispositions, occurrences, and qualities.  I have a feeling that I’ll end up writing kraken in more of a logic-programming way, possibly with the Jena rules via seabass.  Part of the question there is whether RDF-Sparql will make sense for doing the semantic work needed.  Can’t wait to find out.