Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Снимите пометку с вложений, которые необходимо удалить
Перетащите файлы сюда или используйте кнопку для добавления файлов
Вложения и другие параметры
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр

Сообщения в этой теме

Автор _Swetlana
 - июня 8, 2014, 11:36
Цитата: Тайльнемер от июня  7, 2014, 12:21
Цитата: Bhudh от июня  6, 2014, 19:13
Оно требует дополнительного отношения «быть братом».
Что такое «требует»?
Не поняла вопрос. Откройте толковый словарь, прочитайте определение шурина.

Декларативные языки программирования (в отличии от императивных) описывают проблемную ситуацию, которая у вас возникла.
Возникла следующая проблемная ситуация: как описать родственные отношения, чтобы система могла отвечать на запросы типа:
является ли некто шурином Y, или для некты перечислить всех его шуринов, или кому некто является шурином, или напечатать все пары шуряк - зятёк.
Вначале делаете всё на естественном языке. Затем переписываете на пролог, в данном случае одна строчка на ЕЯ - одна строчка на прологе. Пролог - язык самого высокого уровня.

Вы по сути составляете базу данных. Только в обычных БД только факты, а у вас еще правила типа "если - то". Для описания генеалогии какие-то отношения нужно принять за базовые, они будут истинными фактами, другие отношения будут через них определяться с помощью правил "если-то". Для описания отношения "быть кому-то шурином" (на ЕЯ! не на прологе) вы используете отношения "быть родителем кого-то", "быть братом кого-то", "быть мужем кого-то", "быть мужчиной", "быть женщиной". Родитель, муж, мужчина, женщина - базовые, брат - небазовое, т.к. может быть определено через базовые.

Теперь переписываем на пролог, один к одному. Но. Вы знаете, что нельзя быть братом самому себе, а система не знает. Она рассуждает так. У васи и васи есть общий родитель сидор, вася - мужчина, значит вася является братом васи.
Вы должны сообщить об этом системе в явном виде. Поэтому в правиле для брата появляется дополнительное условие X <>Y.
Автор Тайльнемер
 - июня 7, 2014, 12:21
Цитата: Bhudh от июня  6, 2014, 19:13
Оно требует дополнительного отношения «быть братом».
Что такое «требует»?
Автор Bhudh
 - июня 6, 2014, 19:41
Во. Шурин трєбує аж 4 2арных и 2 1арных.
Автор _Swetlana
 - июня 6, 2014, 19:33
Цитата: Fobee от июня  6, 2014, 18:44
Композиция отношений.

есть(Вася,шурин(Вася, Петя)) - добавили фиктивный аргумент и представили тернарное отношение как композицию двух бинарных.
:o
вася и петя - константы (в прологе константы с маленькой буквы пишут), заменим их свободными переменными X и Y.

% шурин и брат - правила вывода; родитель, муж, мужчина, женщина - истинные факты.
clauses
родитель(сидор, вася). родитель(сидор, ася).

муж(петя, ася).

мужчина(вася). мужчина(петя).

женщина(ася).

шурин(X, Y) если
    брат(X, Z) и
    женщина(Z) и
    муж(Y, Z).

брат(X, Y) если
    родитель(Z, X) и
    родитель(Z, Y) и
    мужчина(X) и
    X <> Y.
Автор Bhudh
 - июня 6, 2014, 19:13
Оно требует дополнительного отношения «быть братом».
Автор Тайльнемер
 - июня 6, 2014, 19:07
«быть шурином» — это уже бинарное отношение.
Автор Bhudh
 - июня 6, 2014, 19:01
А холостой Ваня может иметь шурина Петю?
Автор Fobee
 - июня 6, 2014, 18:57
В каком смысле жена?
Автор Bhudh
 - июня 6, 2014, 18:56
А жена? :eat:
Автор Fobee
 - июня 6, 2014, 18:44
Цитата: Bhudh от июня  6, 2014, 18:42
Цитата: _Swetlana от июня  6, 2014, 16:41Нужен пример трёхарного отношения, которое не сводится к бинарному.
Ваня - шурин Пети. :green:

Композиция отношений.

есть(Вася,шурин(Вася, Петя)) - добавили фиктивный аргумент и представили тернарное отношение как композицию двух бинарных.