SquareDanceReasoning

Documentation for SquareDanceReasoning.

This document is intended as a guide to programmers and theory of operation. Once it is working well enough and made sufficiently usable, I might write a users' guide for square dance choreographers.

Overview

Dancer represents a dancer. A dancer is identified by its couple_number and its gender.

The location and facing direction of a Dancer at a given time is represented by DancerState. See Coordinate System to learn how dancer location and facing direction are described.

See Motion Primitives for the simplest of operations for moving dancers around.

One of the goals of SquareDanceReasoning is to identify what formation the dancers are in. See Hierarchy of Supported Square Dance Formations for a list of the formations that SquareDanceReasoning can currently recognize.

Some of the reasoning, including formation recognition, is performed using a rule based expert system. See Hierarchy of Knowledge Base Rules for a list of the rules that are implemented.

To facilitate recognizing formations, the relative position predicates in_front_of, behind, left_of, and right_of are provided.