Системы искусственного интеллекта. Гудков П.А. - 11 стр.

UptoLike

Составители: 

11
того, чтобы все ответы могли быть собраны вместе в случае, если вопрос
допускает несколько вариантов ответов. Остальные части предиката удаляют
избыточные данные на выходе, затем компонуют его и распечатывают
выходные данные.
На рис. 2.1 показана блок-схема с основными информационными
потоками в системе.
Рис. 2.1. Информационные потоки в программе GEOBASE
В схематической форме код для высокоуровневого функционирования
программы будет выглядеть следующим образом:
loop:-
write("Query: "),readln(STR),STR >< "",
scan(STR,LIST), % Возвращает список символов
filter(LIST,LIST1), % Удаляет знаки пунктуации и
посторонние символы
pars(LIST1,E,Q), % Обрабатывает запрос
findall(A,eval(Q,A),L),
unik(L,L1), % Удаляет повторяющиеся объекты
(например, Найти реки штатов,
граничащих с Техасом)
write_list(0,L1),
write_unit(E),listlen(L1,N),
write_solutions(N), !, loop.
loop.
Получение запроса
Фильтр
Синтаксический
анализатор
Процессор запросов
Низкоуровневые
функции реляционного
доступа
Компоновка
Ответ
Конкретизация
связей
Неформализованная форма
вопроса, содержащая связи и
информацию о его структуре
Начало
того, чтобы все ответы могли быть собраны вместе в случае, если вопрос
допускает несколько вариантов ответов. Остальные части предиката удаляют
избыточные данные на выходе, затем компонуют его и распечатывают
выходные данные.
     На рис. 2.1 показана блок-схема с основными информационными
потоками в системе.


        Начало


    Получение запроса


         Фильтр

                            Неформализованная форма
    Синтаксический          вопроса, содержащая связи и
      анализатор            информацию о его структуре


   Процессор запросов             Компоновка                 Ответ


     Низкоуровневые
  функции реляционного      Конкретизация
         доступа            связей

         Рис. 2.1. Информационные потоки в программе GEOBASE

     В схематической форме код для высокоуровневого функционирования
программы будет выглядеть следующим образом:
loop:-
  write("Query: "),readln(STR),STR >< "",
  scan(STR,LIST),         % Возвращает список символов
  filter(LIST,LIST1),     % Удаляет знаки пунктуации и
                            посторонние символы
  pars(LIST1,E,Q),        % Обрабатывает запрос
  findall(A,eval(Q,A),L),
  unik(L,L1),             % Удаляет повторяющиеся объекты
                            (например, Найти реки штатов,
                            граничащих с Техасом)
  write_list(0,L1),
  write_unit(E),listlen(L1,N),
  write_solutions(N), !, loop.
loop.

                                                                      11