# Region connection calculus

The region connection calculus (RCC) is intended to serve for qualitative spatial representation and reasoning. RCC abstractly describes regions (in Euclidean space, or in a topological space) by their possible relations to each other. RCC8 consists of 8 basic relations that are possible between two regions:
* disconnected (DC)
* externally connected (EC)
* equal (EQ)
* partially overlapping (PO)
* tangential proper part (TPP)
* tangential proper part inverse (TPPi)
* non-tangential proper part (NTPP)
* non-tangential proper part inverse (NTPPi)
From these basic relations, combinations can be built. For example, proper part (PP) is the union of TPP and NTPP.

## Axioms

RCC is governed by two axioms.
* for any region x, x connects with itself
* for any region x, y, if x connects with y, y connects with x

## Remark on the axioms

The two axioms describe two features of the connection relation, but not the characteristic feature of the connect relation. For example, we can say that an object is less than 10 meters away from itself and that if object A is less than 10 meters away from object B, object B will be less than 10 meters away from object A. So, the relation 'less-than-10-meters' also satisfies the above two axioms, but does not talk about the connection relation in the intended sense of RCC.

## Composition table

The composition table of RCC8 are as follows:
| R$_2$(b, c)→ R$_1$(a, b)↓ | DC | EC | PO | TPP | NTPP | TPPi | NTPPi | EQ |
| DC | * | DC, EC, PO, TPP, NTPP | DC, EC, PO, TPP, NTPP | DC, EC, PO, TPP, NTPP | DC, EC, PO, TPP, NTPP | DC | DC | DC |
| EC | DC, EC, PO, TPPi, NTPPi | DC, EC, PO, TPP, TPPi, EQ | DC, EC, PO, TPP, NTPP | EC, PO, TPP, NTPP | PO, TPP, NTPP | DC, EC | DC | EC |
| PO | DC, EC, PO, TPPi, NTPPi | DC, EC, PO, TPPi, NTPPi | * | PO, TPP, NTPP | PO, TPP, NTPP | DC, EC, PO, TPPi, NTPPi | DC, EC, PO, TPPi, NTPPi | PO |
| TPP | DC | DC, EC | DC, EC, PO, TPP, NTPP | TPP, NTPP | NTPP | DC, EC, PO, TPP, TPPi, EQ | DC, EC, PO, TPPi, NTPPi | TPP |
| NTPP | DC | DC | DC, EC, PO, TPP, NTPP | NTPP | NTPP | DC, EC, PO, TPP, NTPP | * | NTPP |
| TPPi | DC, EC, PO, TPPi, NTPPi | EC, PO, TPPi, NTPPi | PO, TPPi, NTPPi | PO, TPP, TPPi, EQ | PO, TPP, NTPP | TPPi, NTPPi | NTPPi | TPPi |
| NTPPi | DC, EC, PO, TPPi, NTPPi | PO, TPPi, NTPPi | PO, TPPi, NTPPi | PO, TPPi, NTPPi | PO, TPP, NTPP, TPPi, NTPPi, EQ | NTPPi | NTPPi | NTPPi |
| EQ | DC | EC | PO | TPP | NTPP | TPPi | NTPPi | EQ |
* "*" denotes the universal relation, no relation can be discarded.
Usage example: if a TPP b and b EC c, (row 4, column 2) of the table says that a DC c or a EC c.

## Examples

The RCC8 calculus is intended for reasoning about spatial configurations. Consider the following example: two houses are connected via a road. Each house is located on an own property. The first house possibly touches the boundary of the property; the second one surely does not. What can we infer about the relation of the second property to the road?
The spatial configuration can be formalized in RCC8 as the following constraint network:
Using the RCC8 composition table and the path-consistency algorithm, we can refine the network in the following way:
That is, the road either overlaps (PO) property2, or is a tangential proper part of it. But, if the road is a tangential proper part of property2, then the road can only be externally connected (EC) to property1. That is, road PO property1 is not possible when road TPP property2. This fact is not obvious, but can be deduced once we examine the consistent "singleton-labelings" of the constraint network. The following paragraph briefly describes singleton-labelings.
First, we note that the path-consistency algorithm will also reduce the possible properties between house2 and property1 from { DC, EC } to just DC. So, the path-consistency algorithm leaves multiple possible constraints on 5 of the edges in the constraint network. Since each of the multiple constraints involves 2 constraints, we can reduce the network to 32 (2$^5$) possible unique constraint networks, each containing only single labels on each edge ("singleton labelings"). However, of the 32 possible singleton labelings, only 9 are consistent. (See qualreas for details.) Only one of the consistent singleton labelings has the edge road TPP property2 and the same labeling includes road EC property1.
Other versions of the region connection calculus include RCC5 (with only five basic relations - the distinction whether two regions touch each other are ignored) and RCC23 (which allows reasoning about convexity).

## RCC8 use in GeoSPARQL

RCC8 has been partially implemented in GeoSPARQL as described below:

## Implementations

* GQR is a reasoner for RCC-5, RCC-8, and RCC-23 (as well as other calculi for spatial and temporal reasoning)
* qualreas is a Python framework for qualitative reasoning over networks of relation algebras, such as RCC-8, Allen's interval algebra and more.