ВУЗ:
Составители:
Рубрика:
43
Теперь усложним задачу с целью дать возможность пользо-
вателю формулировать вопрос грамматически правильно, а также
для того, чтобы вводить любые виды отношений. Факты мы при-
ведем к универсальному виду f(объект1,отношение,объект2), а
также введем синонимы для имен объектов и отношений. В дан-
ном случае под термином синоним будем понимать как
граммати-
ческое видоизменение слова, так и другое слово, которое мы счи-
таем семантически эквивалентным исходному.
При данной организации БЗ и приведенном ниже алгоритме
обработки запроса имена объектов и отношений, множества сино-
нимов различных отношений и множество синонимов различных
объектов не должны пересекаться. Например, если есть факты
ф("кирилл","хобби","шахматы")},
ф("кирилл","любить","татьяна")},
соб("татьяна",["татьяну",...])
сот("хобби",["нравится","увлекается","любит","любить"])
сот("любить",["любит"]),
то на вопрос: "кирилл любит татьяну" вы получите ответ
"Нет!", поскольку в качестве имени отношения будет выбрано
"хобби".
Состав базы знаний.
ф("кирилл","хобби","хоккей")
ф("петров","хобби","лыжи")
ф("ирина","хобби","кино")
ф
("татьяна","хобби","гимнастика")
ф("кирилл","хобби","гимнастика")
ф("петров","любить","ирина")
ф("ирина","любить","кирилл")
ф("кирилл","любить","татьяна")
соб("кирилл",["кириллу","кириллом","кирилла","кирилле"])
соб("петров",["петрову","петровым","петрова","петрове"])
соб("ирина",["ирине","ириной","ирины","ирину"])
соб("гимнастика",["гимнастикой","гимнастики","гимнастикой",
"гимнастике","гимнастику"])
соб("татьяна",["татьяне","татьяной","татьяны","татьяну
"])
сот("хобби",["нравится","увлекается"])
сот("любить",["любит"])
44
Текст программы.
domains
список=symbol*
facts – f1
ф(symbol,symbol,symbol)
соб(symbol,список)
сот(symbol,список)
кто(symbol)
что(symbol)
отн(symbol)
временно(symbol)
predicates
nondeterm repeat
nondeterm ответить(symbol)
ответ1(symbol,symbol,symbol)
ответ2(symbol,symbol)
ответ3(symbol,symbol)
ответ4(symbol)
ответ5(symbol,symbol)
ответ6(symbol)
ответ7(symbol)
анализ_КтоОтношениеЧто(symbol)
nondeterm поиск_кто(symbol)
nondeterm поиск_что(symbol)
nondeterm поиск_отношения(symbol)
искать_синоним_кто(symbol)
искать_синоним_отношения(symbol)
искать_синоним_что(symbol)
загрузить_список(список)
спросить
goal
consult("hobbyNew2.dbs",f1),
repeat,
спросить,
retractall(кто(_)),
retractall(что(_)),
retractall(отн(_)),
Теперь усложним задачу с целью дать возможность пользо- Текст программы.
вателю формулировать вопрос грамматически правильно, а также domains
для того, чтобы вводить любые виды отношений. Факты мы при- список=symbol*
ведем к универсальному виду f(объект1,отношение,объект2), а facts – f1
также введем синонимы для имен объектов и отношений. В дан- ф(symbol,symbol,symbol)
ном случае под термином синоним будем понимать как граммати- соб(symbol,список)
ческое видоизменение слова, так и другое слово, которое мы счи- сот(symbol,список)
таем семантически эквивалентным исходному. кто(symbol)
При данной организации БЗ и приведенном ниже алгоритме что(symbol)
обработки запроса имена объектов и отношений, множества сино- отн(symbol)
нимов различных отношений и множество синонимов различных временно(symbol)
объектов не должны пересекаться. Например, если есть факты predicates
ф("кирилл","хобби","шахматы")}, nondeterm repeat
ф("кирилл","любить","татьяна")}, nondeterm ответить(symbol)
соб("татьяна",["татьяну",...]) ответ1(symbol,symbol,symbol)
сот("хобби",["нравится","увлекается","любит","любить"]) ответ2(symbol,symbol)
сот("любить",["любит"]), ответ3(symbol,symbol)
то на вопрос: "кирилл любит татьяну" вы получите ответ ответ4(symbol)
"Нет!", поскольку в качестве имени отношения будет выбрано ответ5(symbol,symbol)
"хобби". ответ6(symbol)
Состав базы знаний. ответ7(symbol)
ф("кирилл","хобби","хоккей") анализ_КтоОтношениеЧто(symbol)
ф("петров","хобби","лыжи") nondeterm поиск_кто(symbol)
ф("ирина","хобби","кино") nondeterm поиск_что(symbol)
ф("татьяна","хобби","гимнастика") nondeterm поиск_отношения(symbol)
ф("кирилл","хобби","гимнастика") искать_синоним_кто(symbol)
ф("петров","любить","ирина") искать_синоним_отношения(symbol)
ф("ирина","любить","кирилл") искать_синоним_что(symbol)
ф("кирилл","любить","татьяна") загрузить_список(список)
соб("кирилл",["кириллу","кириллом","кирилла","кирилле"]) спросить
соб("петров",["петрову","петровым","петрова","петрове"]) goal
соб("ирина",["ирине","ириной","ирины","ирину"]) consult("hobbyNew2.dbs",f1),
соб("гимнастика",["гимнастикой","гимнастики","гимнастикой", repeat,
"гимнастике","гимнастику"]) спросить,
соб("татьяна",["татьяне","татьяной","татьяны","татьяну"]) retractall(кто(_)),
сот("хобби",["нравится","увлекается"]) retractall(что(_)),
сот("любить",["любит"]) retractall(отн(_)),
43 44
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »
