DE-9IM

Last updated
DE-9IM-logoSmall.png

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.

Contents

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 [1] [2] based on the seminal works of Egenhofer and others. [3] [4] 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:

(1)

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

I(a)=ao  B(a)=∂a  E(a)=ae

(2)

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

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

(3)

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

(4)

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 standard [5] 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 {0,1,2,F,*}, or {T,F,*} for the boolean form.

The simpler models 4-Intersection and 9-Intersection were proposed before DE-9IM for expressing spatial relations [6] (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: [7]

b  DE9IM b.svg
a
DE9IM a.svg
InteriorBoundaryExterior
Interior DE9IM II.svg

  

DE9IM IB.svg

  

DE9IM IE.svg

  

Boundary
DE9IM BI.svg

  

DE9IM BB.svg

  

DE9IM BE.svg

  

Exterior
DE9IM EI.svg

  

DE9IM EB.svg

  

DE9IM EE.svg

  

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 '212101212'.

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: [4] [8]

Predicates defined with masks of domain {T,F,*}:
Name (synonym)Intersection matrix and mask code string
(boolean OR between matrices)
Meaning and definition [4] Equivalent
Equals
II ∧ ~IE ∧ ~BE ∧ ~EI ∧ ~EB

(5)
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". [9]
Within & Contains
T*F**FFF*
Disjoint
~II ∧ ~IB ∧ ~BI ∧ ~BB

(6)
a and b are disjoint: they have no point in common. They form a set of disconnected geometries.
not Intersects
FF*FF****
Touches
(meets)
~II ∧ (IBBIBB)

(7)
a touches b: they have at least one point in common, but their interiors do not intersect.
FT*******F**T*****F***T****
Contains
II ∧ ~EI ∧ ~EB

(8)
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". [10]
Within(b,a)
T*****FF*
Covers
(IIIBBIBB) ∧ ~EI ∧ ~EB

(9)
a covers b: geometry b lies in a. Other definitions: "At least one point of b lies in a, and no point of b lies 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:
Intersectsa 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***
CoveredBya is covered by b (extends Within): geometry a lies in b. Other definitions: "At least one point of a lies in b, and no point of a lies 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 {0,1,T,*}:
Crosses
or
dim(any) = 1
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: [11]
(II=0) for lines,  (IIIE) when ,  (IIEI) when

(10)
T*T******
T*****T**
0********
dim(any) = 1
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:
(IIIEEI) for points or surfaces,  (II=1 ∧ IEEI) for lines

(11)
T*T***T**
dim = 0 or 2
1*T***T**
dim = 1

Notice that:

Properties

The spatial predicates have the following properties of binary relations:

Interpretation

Examples of spatial relations. TopologicSpatialRelarions2.png
Examples of spatial relations.

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

Equals
a = b that is (ab = a) ∧ (ab = b)
Within
ab = a
Intersects
ab ≠ ∅
Touches
(ab ≠ ∅) ∧ (aοbο = ∅)

The predicates Contains and Within have subtle aspects to their definition which are contrary to intuition. For example, [10] 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:

Relations betweenAppropriate predicatesSemantic added
point/pointEquals, DisjointOther valid predicates collapses into Equals.
point/lineadds IntersectsIntersects is a refinement of Equals: "some equal point at the line".
line/lineadds 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,

ProbabilityName
93.7%Intersects
43.8%Touches
25%Crosses (for valid inputs, 0% otherwise)
23.4%Covers and CoveredBy
12.5%Contains, Overlaps (for valid inputs, 0% otherwise) and Within
6.3%Disjoint
3.1%Equals

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=true and Touches=true" — 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:

interior/boundary/exterior semanticusual semantic
Assertionsmore descriptive
" a and b have DE-9IM(a,b)='212101212' "
less descriptive
" a Touches b "
Queriesmore restrictive
" Show all pair of geometries where DE-9IM(a,b)='212101212' "
more general
" Show all pair of geometries where Touches(a,b) "

For usual applications, the use of spatial predicates also is justified by being more human-readable than DE-9IM descriptions: a typical user have better intuition about predicates (than a set of interiors/border/exterior intersections).

Predicates have useful semantic into usual applications, so it is useful the translation of a DE-9IM description into a list of all associated predicates, [14] [15] that is like a casting process between the two different semantic types. Examples:

Standards

The Open Geospatial Consortium (OGC) has standardized the typical spatial predicates (Contains, Crosses, Intersects, Touches, etc.) as boolean functions, and the DE-9IM model, [16] as a function that returns a string (the DE-9IM code), with domain of {0,1,2,F}, meaning 0=point, 1=line, 2=area, and F="empty set". This DE-9IM string code is a standardized format for data interchange.

The Simple Feature Access (ISO 19125) standard, [17] in the chapter 7.2.8, "SQL routines on type Geometry", recommends as supported routines the SQL/MM Spatial [18] (ISO 13249-3 Part 3: Spatial) ST_Dimension, ST_GeometryType, ST_IsEmpty, ST_IsSimple, ST_Boundary for all Geometry Types. The same standard, consistent with the definitions of relations in "Part 1, Clause 6.1.2.3" of the SQL/MM, recommends (shall be supported) the function labels: ST_Equals, ST_Disjoint, ST_Intersects, ST_Touches, ST_Crosses, ST_Within, ST_Contains, ST_Overlaps and ST_Relate.

The DE-9IM in the OGC standards use the following definitions of Interior and Boundary, for the main OGC standard geometry types: [19]

SubtypesDimInterior (I)boundary (B)
Point, MultiPoint0Point, PointsEmpty
LineString, Line1Points that are left when the boundary points are removed.Two end points.
LinearRing1All points along the geometry.Empty.
MultilineString1Points that are left when the boundary points are removed.Those points that are in the boundaries of an odd number of its elements (curves).
Polygon2Points within the rings.Set of rings.
MultiPolygon2Points within the rings.Set of rings of its elements (polygons).
NOTICE: exterior points (E) are points p not in the interior or boundary, so not need extra interpretation, E(p)=not(I(p) or B(p)).

Implementation and practical use

Most spatial databases, such as PostGIS, implements the DE-9IM() model by the standard functions: [20] ST_Relate, ST_Equals, ST_Intersects, etc. The function ST_Relate(a,b) outputs the standard OGC's DE-9IM string code.

Examples: two geometries, a and b, that intersects and touches with a point (for instance with and ), can be ST_Relate(a,b)='FF1F0F1F2' or ST_Relate(a,b)='FF10F0102' or ST_Relate(a,b)='FF1F0F1F2'. It also satisfies ST_Intersects(a,b)=true and ST_Touches(a,b)=true. When ST_Relate(a,b)='0FFFFF212', the returned DE-9IM code have the semantic of "Intersects(a,b) & Crosses(a,b) & Within(a,b) & CoveredBy(a,b)", that is, returns true on the boolean expression ST_Intersects(a,b) AND ST_Crosses(a,b) AND ST_Within(a,b) AND ST_Coveredby(a,b).

The use of ST_Relate() is faster than direct computing of a set of correspondent predicates. [7] There are cases where using ST_Relate() is the only way to compute a complex predicate — see the example of the code 0FFFFF0F2, [21] of a point that not "crosses" a multipoint (a object that is a set of points), but predicate Crosses (when defined by a mask) returns true.

It is usual to overload the ST_Relate() by adding a mask parameter, or use a returned ST_Relate(a,b) string into the ST_RelateMatch() function. [22] When using ST_Relate(a,b,mask), it returns a boolean. Examples:

Synonyms

See also

Standards:    Software:    Related topics:

Related Research Articles

<span class="mw-page-title-main">PostGIS</span> Geospatial extension for the PostgreSQL Database

PostGIS is an open source software program that adds support for geographic objects to the PostgreSQL object-relational database. PostGIS follows the Simple Features for SQL specification from the Open Geospatial Consortium (OGC).

In geometry, an incidence relation is a heterogeneous relation that captures the idea being expressed when phrases such as "a point lies on a line" or "a line is contained in a plane" are used. The most basic incidence relation is that between a point, P, and a line, l, sometimes denoted P I l. If P I l the pair (P, l) is called a flag. There are many expressions used in common language to describe incidence (for example, a line passes through a point, a point lies in a plane, etc.) but the term "incidence" is preferred because it does not have the additional connotations that these other terms have, and it can be used in a symmetric manner. Statements such as "line l1 intersects line l2" are also statements about incidence relations, but in this case, it is because this is a shorthand way of saying that "there exists a point P that is incident with both line l1 and line l2". When one type of object can be thought of as a set of the other type of object (viz., a plane is a set of points) then an incidence relation may be viewed as containment.

<span class="mw-page-title-main">Bounding volume</span> Closed volume that completely contains the union of a set of objects

In computer graphics and computational geometry, a bounding volume for a set of objects is a closed region that completely contains the union of the objects in the set. Bounding volumes are used to improve the efficiency of geometrical operations, such as by using simple regions, having simpler ways to test for overlap.

<span class="mw-page-title-main">Arrangement of hyperplanes</span> Partition of space by a hyperplanes

In geometry and combinatorics, an arrangement of hyperplanes is an arrangement of a finite set A of hyperplanes in a linear, affine, or projective space S. Questions about a hyperplane arrangement A generally concern geometrical, topological, or other properties of the complement, M(A), which is the set that remains when the hyperplanes are removed from the whole space. One may ask how these properties are related to the arrangement and its intersection semilattice. The intersection semilattice of A, written L(A), is the set of all subspaces that are obtained by intersecting some of the hyperplanes; among these subspaces are S itself, all the individual hyperplanes, all intersections of pairs of hyperplanes, etc. (excluding, in the affine case, the empty set). These intersection subspaces of A are also called the flats ofA. The intersection semilattice L(A) is partially ordered by reverse inclusion.

In computer science, the Boolean is a data type that has one of two possible values which is intended to represent the two truth values of logic and Boolean algebra. It is named after George Boole, who first defined an algebraic system of logic in the mid 19th century. The Boolean data type is primarily associated with conditional statements, which allow different actions by changing control flow depending on whether a programmer-specified Boolean condition evaluates to true or false. It is a special case of a more general logical data type—logic does not always need to be Boolean.

In formal ontology, a branch of metaphysics, and in ontological computer science, mereotopology is a first-order theory, embodying mereological and topological concepts, of the relations among wholes, parts, parts of parts, and the boundaries between parts.

<span class="mw-page-title-main">Null (SQL)</span> Marker used in SQL databases to indicate a value does not exist

In SQL, null or NULL is a special marker used to indicate that a data value does not exist in the database. Introduced by the creator of the relational database model, E. F. Codd, SQL null serves to fulfil the requirement that all true relational database management systems (RDBMS) support a representation of "missing information and inapplicable information". Codd also introduced the use of the lowercase Greek omega (ω) symbol to represent null in database theory. In SQL, NULL is a reserved word used to identify this marker.

Simple Features is a set of standards that specify a common storage and access model of geographic features made of mostly two-dimensional geometries used by geographic databases and geographic information systems. It is formalized by both the Open Geospatial Consortium (OGC) and the International Organization for Standardization (ISO).

In mathematics, intersection theory is one of the main branches of algebraic geometry, where it gives information about the intersection of two subvarieties of a given variety. The theory for varieties is older, with roots in Bézout's theorem on curves and elimination theory. On the other hand, the topological theory more quickly reached a definitive form.

A spatial relation specifies how some object is located in space in relation to some reference object. When the reference object is much bigger than the object to locate, the latter is often represented by a point. The reference object is often represented by a bounding box.

A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.

JTS Topology Suite is an open-source Java software library that provides an object model for Euclidean planar linear geometry together with a set of fundamental geometric functions. JTS is primarily intended to be used as a core component of vector-based geomatics software such as geographical information systems. It can also be used as a general-purpose library providing algorithms in computational geometry.

<span class="mw-page-title-main">Region connection calculus</span>

The region connection calculus (RCC) is intended to serve for qualitative spatial representation and reasoning. RCC abstractly describes regions by their possible relations to each other. RCC8 consists of 8 basic relations that are possible between two regions:

A geographic data model, geospatial data model, or simply data model in the context of geographic information systems, is a mathematical and digital structure for representing phenomena over the Earth. Generally, such data models represent various aspects of these phenomena by means of geographic data, including spatial locations, attributes, change over time, and identity. For example, the vector data model represents geography as collections of points, lines, and polygons, and the raster data model represent geography as cell matrices that store numeric values. Data models are implemented throughout the GIS ecosystem, including the software tools for data management and spatial analysis, data stored in a variety of GIS file formats, specifications and standards, and specific designs for GIS installations.

XPath is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) in 1999, and can be used to compute values from the content of an XML document. Support for XPath exists in applications that support XML, such as web browsers, and many programming languages.

<span class="mw-page-title-main">Relation (mathematics)</span> Relationship between two sets, defined by a set of ordered pairs

In mathematics, a relation on a set may, or may not, hold between two given members of the set. As an example, "is less than" is a relation on the set of natural numbers; it holds, for instance, between the values 1 and 3, and likewise between 3 and 4, but not between the values 3 and 1 nor between 4 and 4, that is, 3 < 1 and 4 < 4 both evaluate to false. As another example, "is sister of" is a relation on the set of all people, it holds e.g. between Marie Curie and Bronisława Dłuska, and likewise vice versa. Set members may not be in relation "to a certain degree" – either they are in relation or they are not.

<span class="mw-page-title-main">Geospatial topology</span> Type of spatial relationship

Geospatial topology is the study and application of qualitative spatial relationships between geographic features, or between representations of such features in geographic information, such as in geographic information systems (GIS). For example, the fact that two regions overlap or that one contains the other are examples of topological relationships. It is thus the application of the mathematics of topology to GIS, and is distinct from, but complementary to the many aspects of geographic information that are based on quantitative spatial measurements through coordinate geometry. Topology appears in many aspects of geographic information science and GIS practice, including the discovery of inherent relationships through spatial query, vector overlay and map algebra; the enforcement of expected relationships as validation rules stored in geospatial data; and the use of stored topological relationships in applications such as network analysis. Spatial topology is the generalization of geospatial topology for non-geographic domains, e.g., CAD software.

GeoSPARQL is a standard for representation and querying of geospatial linked data for the Semantic Web from the Open Geospatial Consortium (OGC). The definition of a small ontology based on well-understood OGC standards is intended to provide a standardized exchange basis for geospatial RDF data which can support both qualitative and quantitative spatial reasoning and querying with the SPARQL database query language.

Vector overlay is an operation in a geographic information system (GIS) for integrating two or more vector spatial data sets. Terms such as polygon overlay, map overlay, and topological overlay are often used synonymously, although they are not identical in the range of operations they include. Overlay has been one of the core elements of spatial analysis in GIS since its early development. Some overlay operations, especially Intersect and Union, are implemented in all GIS software and are used in a wide variety of analytical applications, while others are less common.

A spatial join is an operation in a geographic information system (GIS) or spatial database that combines the attribute tables of two spatial layers based on a desired spatial relation between their geometries. It is similar to the table join operation in relational databases in merging two tables, but each pair of rows is correlated based on some form of matching location rather than a common key value. It is also similar to vector overlay operations common in GIS software such as Intersect and Union in merging two spatial datasets, but the output does not contain a composite geometry, only merged attributes.

References

  1. Clementini, Eliseo; Di Felice, Paolino; van Oosterom, Peter (1993). "A small set of formal topological relationships suitable for end-user interaction". In Abel, David; Ooi, Beng Chin (eds.). Advances in Spatial Databases: Third International Symposium, SSD '93 Singapore, June 23–25, 1993 Proceedings. Lecture Notes in Computer Science. Vol. 692/1993. Springer. pp. 277–295. doi:10.1007/3-540-56869-7_16. ISBN   978-3-540-56869-8.
  2. Clementini, Eliseo; Sharma, Jayant; Egenhofer, Max J. (1994). "Modelling topological spatial relations: Strategies for query processing". Computers & Graphics. 18 (6): 815–822. doi:10.1016/0097-8493(94)90007-8.
  3. Egenhofer, M.J.; Franzosa, R.D. (1991). "Point-set topological spatial relations". Int. J. GIS. 5 (2): 161–174. doi: 10.1080/02693799108927841 .
  4. 1 2 3 4 Egenhofer, M.J.; Herring, J.R. (1990). "A Mathematical Framework for the Definition of Topological Relationships" (PDF). Proceedings of the 4th International Symposium on Spatial Data Handling. Archived from the original (PDF) on 2010-06-14.
  5. The "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).
  6. M. J. Egenhofer, J. Sharma, and D. Mark (1993) "A Critical Comparison of the 4-Intersection and 9-Intersection Models for Spatial Relations: Formal Analysis Archived 2010-06-14 at the Wayback Machine ", In: Auto-Carto XI Archived 2014-09-25 at the Wayback Machine .
  7. 1 2 Chapter 4. Using PostGIS: Data Management and Queries
  8. JTS: Class IntersectionMatrix, Vivid Solutions, Inc., archived from the original on 2011-03-21
  9. JTS Technical Specifications of 2003.
  10. 1 2 3 M. Davis (2007), "Quirks of the 'Contains' Spatial Predicate".
  11. ST_Crosses
  12. Randell, D.A.; Cui, Z; Cohn, A.G. (1992). "A spatial logic based on regions and connection". 3rd Int. Conf. on Knowledge Representation and Reasoning. Morgan Kaufmann. pp. 165–176.
  13. Câmara, G.; Freitas, U. M.; Casanova, M. A. (1995). "Fields and Objects Algebras for GIS Operations". CiteSeerX   10.1.1.17.991 .{{cite journal}}: Cite journal requires |journal= (help)
  14. A DE-9IM translator, of all associated predicates of a spatial relation.
  15. 1 2 Note. The Oracle's spatial funcion SDO_RELATE() Archived 2013-07-21 at the Wayback Machine do only a partial translation, internally, offering to user a mask for a or-list of predicates to be checked, instead the DE-9IM string.
  16. "OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 2: SQL option", OGC, http://www.opengeospatial.org/standards/sfs
  17. Open Geospatial Consortium Inc. (2007), "OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option", OGC document 06-104r4 version 1.2.1 (review of 2010-08-04).
  18. ISO 13249-3 Part 3: Spatial, summarized in SQL Multimedia and Application Packages (SQL/MM) Archived 2010-02-14 at the Wayback Machine .
  19. "Encyclopedia of GIS", edited by Shashi Shekhar and Hui Xiong. SpringerScience 2008. pg. 242
  20. ST_Relate() PostGIS function online documentation.
  21. JTS test case of "point A within one of B points", http://www.vividsolutions.com/jts/tests/Run1Case4.html Archived 2016-03-04 at the Wayback Machine
  22. ST_RelateMatch() PostGIS function online documentation.
  23. 1 2 "Encyclopedia of GIS", S. Shekhar, H. Xiong. ISBN   978-0-387-35975-5.
  24. "Multidimensional Region Connection Calculus" (2017), http://qrg.northwestern.edu/qr2017/papers/QR2017_paper_8.pdf
  25. Sabharwal, Chaman L.; Leopold, Jennifer L. (2013). "Identification of Relations in Region Connection Calculus: 9-Intersection Reduced to 3 + -Intersection Predicates". Advances in Soft Computing and Its Applications. Lecture Notes in Computer Science. Vol. 8266. pp. 362–375. doi:10.1007/978-3-642-45111-9_32. ISBN   978-3-642-45110-2.