Public Repository

Last pushed: a year ago
Short Description
CLP(QS) is a novel approach for spatial reasoning within Constraint Logic Programming.
Full Description

----------------------------VERSION----------------------------
CLP(QS) version 0.3 (2016) Education Edition

----------------------------AUTHORS----------------------------
C. Schultz, M. Bhatt, P.A. Wałęga.

----------------------------DESCRIPTION----------------------------

CLP(QS) is a novel Declarative Spatial Reasoning system capable of representing and reasoning about high-level, qualitative spatial knowledge about the world. We systematically formalize and implement the semantics of a range of qualitative spatial calculi using a system of non-linear polynomial equations in the context of a classical Constraint Logic Programming (CLP) framework.

Supported spatial reasoning tasks include:

  • purely qualitative reasoning with complete unknowns
  • mixed numerical-qualitative reasoning
  • qualification
  • instantiation - generating numerical configurations of objects that satisfy qualitative constraints
  • dynamic geometry - modifying a given numerical configuration in order to satisfy qualitative constraints
  • approximate reasoning - generating numerical configurations that best approximate a set of inconsistent spatial constraints

----------------------------HOW TO RUN----------------------------

Install docker.
Download CLP(QS):

docker pull spatialreasoning/clpqs

To run CLP(QS) within SWI-Prolog:

docker run -t -i spatialreasoning/clpqs

To run some simple exercises, try:

(a) Incidence relation between point P and circle C - purely qualitative reasoning:

point(P), circle(C), incidence(interior, P, C).

(b) Incidence contradiction - purely qualitative reasoning:

point(P),
circle(C),
incidence(interior, P, C),
incidence(exterior, P, C).

(c) Mixed numerical-qualitative reasoning - circle C1 has centre (0,0) and radius 5, circle C2 has centre (5,5) and unspecified radius:

circle(C1, point(0,0), 5),
circle(C2, point(5,5), _),
size(SizeRelation, C1, C2),
topology(TopoRelation, C1,C2).

(d) qualification:

circle(C1, point(0,0), 5),
circle(C2, point(5,5), 10),
size(SizeRelation, C1, C2),
topology(TopoRelation, C1,C2).

A pre-release version of a comprehensive tutorial with code exercises is available on request.

----------------------------FURTHER READING----------------------------

M. Bhatt, J.H. Lee, and C. Schultz. “CLP(QS): A Declarative Spatial Reasoning Framework”. In: Proceedings of the 10th International Conference on Spatial Information Theory (COSIT-11). Belfast, ME, USA, 2011.

C. Schultz and M. Bhatt. “A Numerical Optimisation Based Characterisation of Spatial Reasoning”. In: Rule Technologies. Research, Tools, and Applications: 10th International Symposium (RuleML 2016). Stony Brook, NY, USA, 2016.

C. Schultz and M. Bhatt. “Spatial Symmetry Driven Pruning Strategies for Efficient Declarative Spatial Reasoning”. In: Proceedings of the 12th International Conference on Spatial Information Theory (COSIT-15). Santa Fe, New Mexico, USA, 2015.

Docker Pull Command
Owner
spatialreasoning

Comments (0)