Good question. Like @larsman (well, it seems to me, @FredFoo, I think) can be a big topic. And his answer is really good.
How can your question be caused by the need for a custom language (using one of the main Prolog applications), here I offer syntactic sugar for fictitious DSL (which means that it is completely empty now ...)
:- op(500, fx, all).
:- op(500, fx, now).
:- op(600, xfx, are).
:- op(700, fx, if).
:- op(399, fx, it).
:- op(398, fx, is).
:- op(397, fx, not).
:- op(701, xfx, then).
all summers are warm.
if it is not summer then it is winter.
now it is winter.
SWI-Prolog is kind enough to redden these operations that are stored, that is, can be easily requested. These are higher priority words declared: that is now.
?- now X.
X = it is winter.
source
share