A variable in a logic programming language which is initially undefined ("unbound") but may get bound to a value or another logic variable during unification of the containing clause with the current goal. The value to which it is bound may contain other variables which may themselves be bound or unbound.
For example, when unifying the clause
sad(X) :- computer(X, ibmpc).
with the goal
the variable X will become bound to the atom "billgates" yielding the new subgoal "computer(billgates, ibmpc)".