
На Пролог это переводится в виде такогоправила:
мать( X, Y) :- родитель( X,Y), женщина( X).
Запятая между двумя условиями указывает каконъюнкцию условий. Это означает, что они должныбыть выполнены оба одновременно.
Рис. 1. 3. Графыотношений родительродителя, матьи отпрыск,
определенных через другие отношения.
Такие отношения как родитель, отпрыски мать можно изобразить в виде диаграмм,приведенных на рис. 1.3. Они нарисованы с учетомследующих соглашений. Вершины графасоответствуют объектам, т.е. аргументамотношений. Дуги между вершинами соответствуютбинарным (двуместным) отношениям. Дугинаправлены от первого аргумента к второму.Унарные отношения на диаграмме изображаютсяпросто пометкой соответствующих объектов именемотношения. Отношения, определяемые через другиеотношения, представлены штриховыми дугами. Такимобразом, любую диаграмму следует понимать так:если выполнены отношения, изображенныесплошными дугами, тогда и отношение,изображенное штриховой дугой, тоже выполнено. Всоответствии с рис. 1.3, отношение родительродителяможно сразу записать на Прологе:
родительродителя( X, Z):- родитель( X, Y),
родитель( Y, Z).
Здесь уместно сделать несколько замечаний овнешнем виде нашей программы. Пролог дает почтиполную свободу расположения текста на листе. Такчто можно вставлять пробелы и переходить к новойстроке в любом месте текста по вкусу. Вообще мыхотим сделать так, чтобы наша программа имелакрасивый и аккуратный вид, а самое главное, легкочиталась. Для этого мы часто будем помещатьголову предложения и каждую цель на отдельнойстроке. При этом цели мы будем писать с отступом,чтобы сделать разницу между головой и целямиболее заметной. Например, правило родительродителяв соответствии с этими соглашениями запишетсятак:
