Since variable names play an important role in providing co-indexation between the argument of a verb and a property of that argument, designated by another predicate, terms such as 'elect(A, B, C)' and 'elect(D, E, F )' are considered to be different symbols.
a pattern like: was converted to the regular expression: The first argument of the macro/2 predicate is the name of the regular expression whereas the second argument states that the regular expression is a sequence of the symbols 'elect(A,B,C)','cperson(C)','chairman(C,D)' and so on.