Is there a simple way to use the symbol “.” as just an atom like “+”, “*”, “-”, etc

In is simplest way:

:- use_module(library(terms)).

mapdot(In, Out) :-
	In =.. [.,A,B],
	Out = dot(A,B).

term_expansion(In, Out) :-
	mapsubterms(mapdot, In, Out).

hello(a.b) :-
	world(c.d).

Now, if we load this file and list hello/1 we get

?- listing(hello).
hello(dot(a, b)) :-
    world(dot(c, d)).

Not the In =.. [.,A,B] where we cannot write .(A,B) as that would evaluate …

2 Likes