Geometry

Up: Corpus of Examples
Previous: Ontology
Next: Probability

Set theoretic primitives (over pointsets or other non-empty sets)

P(S1,S2) -- Predicate: S1 is a subset of S2.

PP(S1,S2) -- Predicate: S1 is a proper subset of S2.

DC(S1,S2) -- Predicate: S1 and S2 have no points / elements in common.

C(S1,S2) -- Predicate: S1 and S2 have points / elements in common.

PC(S1,S2) -- Predicate: S1 and S2 have points / elements in common, but neither is a subset of the other.

S1 union S2 -- Function.

S1 intersect S2 -- Function.

in(E,S) -- Predicate: E is an element of S.

empty --- Constant. The empty point-set.

set_union(SS : set[set[sort]]) : set[sort] -- Function. The union of all sets in the collection SS.

The remaining RCC-8 primitives over regions:

rcc_TPP(R1,R2 : region) -- R1 is a tangential proper part of R2

rcc_NTPP(R1,R2 : region) -- R1 is a non-tangential proper part of R2

rcc_O(R1,R2 : region) -- R1 and R2 have interior points in common.

rcc_OV(R1,R2 : region) -- R1 and R2 overlap; that is, they have interior points in common, but neither is a subset of the other.

rcc_DS(R1,R2 : region) -- R1 and R2 are disjoint; they have no interior points in common.

rcc_EC(R1,R2 : region) -- R1 and R2 are externally connected; they have boundary points in common but no interior points in common.

Surfaces

Let SU be a surface, and P a point in S. P is a surface interior point of SU if some subset of SU containing P is homeomorphic to the plane; else P is an surface boundary point. We define the analogues to RCC-8 primitives as follows:

surf_TPP(S1,S2 : surface) -- S1 is a proper subset of S2; S1 and S2 have some boundary points in common.

surf_NTPP(S1,S2 : surface) -- S1 is a proper subset of S2; S1 and S2 have no boundary points in common.

surf_O(S1,S2 : surface) -- S1 and S2 have some interior point in common.

surf_OV(S1,S2 : surface) -- S1 and S2 have some interior points in common and neither is a subset of the other.

surf_DS(S1,S2 : surface) -- S1 and S2 have no interior points in common.

surf_EC(S1,S2 : surface) -- S1 and S2 have boundary points in common but no interior points.

Note that the usual composition tables for RCC-8 do not apply to these surface relations. They do not apply even if S1 and S2 are both subsets of the boundary of some region.

Other topological primitives.

boundary(R : region) : surface -- Function. The boundary of a region is a surface.

interior(PS : point-set) : point-set -- Function. The interior of point-set PS.

closure(PS : point-set) : --- Function. The closure of point-set PS.

connected(PS : point-set) -- Predicate. PS is connected.

blob(PS : point-set) -- Predicate. PS is homeomorphic to a sphere (i.e. one simple solid blob.)

thickly_connected(PS : point-set) -- Predicate. The interior of PS is connected.

connected_component(PS1,PS2 : point-set) --- Predicate. PS1 is a connected component of PS2.

tcc(PS1, PS2 : point-set) --- PS1 is a thickly connected component of PS2.

surf_thick_conn(PS: point-set) -- Predicate. PS is surface thickly connected; that is, the set of all surface-interior points of PS is connected.

stcc(PS1,PS2 : point-set) -- Predicate. PS1 is a surface thickly connected component of PS2.

bounded(PS : point-set) --- Predicate. PS is bounded.

complement(PS : point-set) : point-set --- Function. The complement of R.

outside(R : region) : point-set --- Function. The closure of the unbounded connected component of the complement of R.

Other geometric primitives

sphere(X : distance) : region. Function. Unit sphere of radius X.

diameter(PS : point set) : distance. Function. Diameter of point set PS.

right_prism(R : region; S1,S2 : surface): Predicate. R is a right prism with ends S1,S2.

projection(PS1, PS2 : point-set) : point-set --- Function. The projection of PS1 onto the planar surface PS2.

congruent(PS1,PS2 : point_set) --- Predicate. Point sets PS1 and PS2 are congruent.

brick(X1,X2,X3 : distance) : region --- Function. The rectangular solid [0,X1] X [0,X2] X [0,X3]

plane(SU : surface) -- Predicate. SU is a plane.

planar(SU : surface) --- Predicate. P is planar.

plane_separates(SU : surface; X1,X2 : pointset) -- Predicate. Plane SU separates X1 from X2.

out_normal(R : region; P : point) : direction -- Function. The normal to region R at boundary point P pointing outward from R.

convex_hull(PS : point-set) : point-set -- Function.

convex(PS : point-set) -- Predicate.