%% representing the graph node(1). node(2). node(3). node(4). node(5). edge(1,2). edge(1,3). edge(2,4). edge(2,5). edge(3,4). edge(3,5). is_color(red). is_color(green). is_color(yellow). %% each node is assigned a color color(X,red):- node(X), not color(X,green), not color(X, yellow). color(X,green):- node(X), not color(X,red), not color(X, yellow). color(X,yellow):- node(X), not color(X,green), not color(X, red). %% constraint checking :- edge(X,Y), is_color(C), color(X,C), color(Y,C).