This paper defines unification, the pattern matching process used in logic programming, and presents various alternatives for constructing algorithms.