В Блэкберне и Босе я натолкнулся на следующее определение:
compose(Term,Symbol,ArgList):- Term =.. [Symbol|ArgList].
compose
определяется по-разному в SWI-Prolog.Интересно, имеет ли SWI-Prolog что-то похожее на приведенное выше определение.
PS Очевидно, что легко определить мой собственный предикат, но я сначала хотел проверить.