السلام عليكم ورحمه الله وبركاته
لدي استفسار حول صحة الحل وكيفية عمل الاستدعاء الذاتي للمثال الاتي

حيث بدايه الكود الذي قمت بكتابته في برنامج prolog :
domains
Color=string
predicates
ge(symbol,synbol,symbol,symbol,integer)
ask
go(Color)
clauses
ge(turquoise,greenishblue,ligthgreen,silicaalpo,7).
ge(amethyst,purple,mauve,silicamn,9).
ge(onyx,red,yellowbrown,silicaf,6.5).
ge(supphire,blue,allcolors,silica,8).
ge(emerald,green,lightgreen,silicabe,8).
ge(diamond,white,yellowligth,coal,10).
ask:-
write("What color stone you want to search for?"),nl,readln(Color),nl,write(" the color is"),nl,go(Color).
go("greenishblue"):-
تقبلوو ودي واحترامي ^^" ..