Я обнаружил, что следующий метод можно использовать для обработки термина, преобразования его в список, вызова предиката a2.pl, а затем преобразования его обратно в термин.
%% term_to_atom([[v,b],":-",[[[n,=]]]],B).
%% B = '[[v,b],":-",[[[n,=]]]]'.
%% ?- string_atom(A,'[[v,b],":-",[[[n,=]]]]').
%% A = "[[v,b],\":-\",[[[n,=]]]]".
%% swipl -s a2.pl -t a --quiet "b" "c" "[[v,b],\":-\",[[[n,=]]]]"
%% ['[[v,b],":-",[[[n,=]]]]']
%% ?- term_to_atom(A,'[[v,b],":-",[[[n,=]]]]').
%% A = [[v, b], ":-", [[[n, =]]]].