The Dimensionally Extended 9-Intersection Model (DE-9IM) is a topological model and a standard used to describe the spatial relations of two regions (two geometries in two-dimensions, R2), in geometry, point-set topology, geospatial topology, and fields related to computer spatial analysis. The spatial relations expressed by the model are invariant to rotation, translation and scaling transformations.

The matrix provides an approach for classifying geometry relations. Roughly speaking, with a true/false matrix domain, there are 512 possible 2D topologic relations, that can be grouped into binary classification schemes. The English language contains about 10 schemes (relations), such as "intersects", "touches" and "equals". When testing two geometries against a scheme, the result is a spatial predicate named by the scheme.

The model was developed by Clementini and others based on the seminal works of Egenhofer and others. It has been used as a basis for standards of queries and assertions in geographic information systems (GIS) and spatial databases.

Matrix model The DE-9IM model is based on a 3×3 intersection matrix with the form:

where is the dimension of the intersection (∩) of the interior (I), boundary (B), and exterior (E) of geometries a and b.

The terms interior and boundary in this article are used in the sense used in algebraic topology and manifold theory, not in the sense used in general topology: for example, the interior of a line segment is the line segment without its endpoints, and its boundary is just the two endpoints (in general topology, the interior of a line segment in the plane is empty and the line segment is its own boundary).

In the notation of topological space operators, the matrix elements can be expressed also as

The dimension of empty sets (∅) are denoted as −1 or (false). The dimension of non-empty sets (¬∅) are denoted with the maximum number of dimensions of the intersection, specifically for points, for lines, for areas. Then, the domain of the model is .

A simplified version of values are obtained mapping the values to (true), so using the boolean domain . The matrix, denoted with operators, can be expressed as

The elements of the matrix can be named as shown below:

Both matrix forms, with dimensional and boolean domains, can be serialized as "DE-9IM string codes", which represent them in a single-line string pattern. Since 1999 the string codes have a standardThe "OpenGIS Simple Features Specification For SQL", Revision 1.1, was released at May 5, 1999. It was the first international standard to establish the format conventions for DE-9IM string codes, and the names of the "Named Spatial Relationship predicates based on the DE-9IM" (see section with this title). format.

For output checking or pattern analysis, a matrix value (or a string code) can be checked by a "mask": a desired output value with optional asterisk symbols as wildcards — that is, "" indicating output positions that the designer does not care about (free values or "don't-care positions"). The domain of the mask elements is , or for the boolean form.

The simpler models 4-Intersection and 9-Intersection were proposed before DE-9IM for expressing spatial relationsM. J. Egenhofer, J. Sharma, and D. Mark (1993) "A Critical Comparison of the 4-Intersection and 9-Intersection Models for Spatial Relations: Formal Analysis ", In: Auto-Carto XI . (and originated the terms 4IM and 9IM). They can be used instead of the DE-9IM to optimize computation when input conditions satisfy specific constraints.

Illustration Visually, for two overlapping polygonal geometries, the result of the function DE_9IM(a,b) looks like: b   a Interior Boundary Exterior Interior

    Boundary

    Exterior

This matrix can be serialized. Reading from left-to-right and top-to-bottom, the result is . So, in a compact representation as string code is ''.

Spatial predicates

Any topological property based on a DE-9IM binary spatial relation is a spatial predicate. For ease of use "named spatial predicates" have been defined for some common relations, which later became standard predicates. The spatial predicate functions that can be derived from DE-9IM include:

Predicates defined with masks of domain :

Name (synonym) Intersection matrix and mask code string(boolean OR between matrices)Meaning and definitionEquivalent Equals a and b are topologically equal. "Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other".JTS Technical Specifications of 2003.Within & Contains T*F**FFF* Disjoint a and b are disjoint: they have no points in common. They form a set of disconnected geometries.not Intersects FF*FF**** Touches(meets) a touches b: they have at least one point in common, but their interiors do not intersect. FT******* F**T***** F***T**** Contains a contains b: geometry b lies in a, and the interiors intersect. Another definition: "a contains b iff no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a".M. Davis (2007), "Quirks of the 'Contains' Spatial Predicate".Within(b,a) T*****FF* Covers a covers b: geometry b lies in a. Other definitions: "At least one point of b lies in a, and no points of b lie in the exterior of a", or "Every point of b is a point of (the interior or boundary of) a".CoveredBy(b,a) T*****FF* *T****FF* ***T**FF* ****T*FF*

Predicates that can be obtained from the above by logical negation or parameter inversion (matrix transposition), as indicated by the last column:

Intersects a intersects b: geometries a and b have at least one point in common.not Disjoint T******** *T******* ***T***** ****T**** Within (inside) a is within b: a lies in the interior of b.Contains(b,a) T*F**F*** CoveredBy a is covered by b (extends Within): geometry a lies in b. Other definitions: "At least one point of a lies in b, and no points of a lie in the exterior of b", or "Every point of a is a point of (the interior or boundary of) b".Covers(b,a) T*F**F*** *TF**F*** **FT*F*** **F*TF***

Predicates that utilize the input dimensions, and are defined with masks of domain :

Crosses or a crosses b: they have some but not all interior points in common, and the dimension of the intersection is less than that of at least one of them. The following mask selection rules must only be checked when (except for line / line inputs, which are allowed), otherwise the predicate is false: T*T****** T*****T** 0******** Overlaps a overlaps b: they have some but not all points in common, they have the same dimension, and the intersection of the interiors of the two geometries has the same dimension as the geometries themselves. The following mask selection rules must only be checked when , otherwise the predicate is false: T*T***T** 1*T***T**

Notice that:

The topologically equal definition does not imply that they have the same points or even that they are of the same class.

The output of have the information contained in a list of all interpretable predicates about geometries a and b.

All predicates are computed by masks. Only Crosses and Overlaps have additional conditions about and .

All mask string codes end with *. This is because EE is trivially true, and thus provides no useful information.

The Equals mask, T*F**FFF*, is the "merge" of Contains (T*****FF*) and Within (T*F**F***): .

The mask T*****FF* occurs in the definition of both Contains and Covers. Covers is a more inclusive relation. In particular, unlike Contains it does not distinguish between points in the boundary and in the interior of geometries. For most situations, Covers should be used in preference to Contains.

Similarly, the mask T*F**F*** occurs in the definition of both Within and CoveredBy. For most situations, CoveredBy should be used in preference to Within.

Historically, other terms and other formal approaches have been used to express spatial predicates; for example region connection calculus was introduced in 1992 by Randell, Cohn and Cohn.

Properties The spatial predicates have the following properties of binary relations:

Reflexive: Equals, Contains, Covers, CoveredBy, Intersects, Within Anti-reflexive: Disjoint Symmetric: Equals, Intersects, Crosses, Touches, Overlaps Transitive: Equals, Contains, Covers, CoveredBy, Within

Interpretation

The choice of terminology and semantics for the spatial predicates is based on reasonable conventions and the tradition of topological studies. Relationships such as Intersects, Disjoint, Touches, Within, Equals (between two geometries a and b) have an obvious semantic: Equals a = b that is Within Intersects Touches

The predicates Contains and Within have subtle aspects to their definition which are contrary to intuition. For example, a line L which is completely contained in the boundary of a polygon P is not considered to be contained in P. This quirk can be expressed as "Polygons do not contain their boundary". This issue is caused by the final clause of the Contains definition above: "at least one point of the interior of B lies in the interior of A". For this case, the predicate Covers has more intuitive semantics (see definition), avoiding boundary considerations.

For better understanding, the dimensionality of inputs can be used as justification for a gradual introduction of semantic complexity: {|class="wikitable" |- !Relations between !Appropriate predicates !Semantic added |- |point/point |Equals, Disjoint |Other valid predicates collapses into Equals. |- |point/line |adds Intersects |Intersects is a refinement of Equals: "some equal point at the line". |- |line/line |width="180"|adds Touches, Crosses, ... |Touches is a refinement of Intersects, about "boundaries" only. Crosses is about "only one point".

Coverage on possible matrix results The number of possible results in a boolean 9IM matrix is 29=512, and in a DE-9IM matrix is 39=6561. The percentage of these results that satisfy a specific predicate is determined as following,

On usual applications the geometries intersects a priori, and the other relations are checked.

The composite predicates "Intersects OR Disjoint" and "Equals OR Different" have the sum 100% (always true predicates), but "Covers OR CoveredBy" have 41%, that is not the sum, because they are neither logical complements or independent relations; similarly "Contains OR Within", have 21%. The sum 25 % + 12.5 % = 37.5 % is obtained when ignoring overlapping lines in "Crosses OR Overlaps", because the valid input sets are disjoint.

Queries and assertions The DE-9IM offers a full descriptive assertion about the two input geometries. It is a mathematical function that represents a complete set of all possible relations about two entities, like a Truth table, the Three-way comparison, a Karnaugh map or a Venn diagram. Each output value is like a truth table line, that represent relations of specific inputs.

As illustrated above, the output '212101212' resulted from DE-9IM(a,b) is a complete description of all topologic relations between specific geometries a and b. It says to us that .

By other hand, if we check predicates like Intersects(a,b) or Touches(a,b) — for the same example we have "Intersects= and Touches=" — it is an incomplete description of "all topologic relations". Predicates also do not say any thing about the dimensionality of the geometries (it doesn't matter if a and b are lines, areas or points).

This independence of geometry-type and the lack of completeness, on predicates, are useful for general queries about two geometries: {|border="0" class="wikitable" | !interior/boundary/exterior semantic !usual semantic |- !Assertions |style="background-color:#DDC" align="center"|more descriptive " a and b have " |style="background-color:#DDC" align="center"|less descriptive " a Touches b " |- !Queries