|  |  |  | 
6.3.2. 
  Фреймы и графы
  
 Минский в 
  свой работе [Minsky, 1975] определил фрейм как "структуру данных 
  для представления стереотипных ситуаций". Эту структуру он наполнил самой 
  разнообразной информацией: об объектах и событиях, которые следует ожидать в 
  этой" ситуации, и о том, как использовать информацию, имеющуюся во фрейме. 
  Идея состояла в том, чтобы сконцентрировать все знания о данном классе объектов 
  или событий в единой структуре данных, а не распределять их между множеством 
  более мелких структур вроде логических формул или порождающих правил. Такие 
  знания либо сосредоточены в самой структуре данных, либо доступны из этой структуры 
  (например, хранятся в другой структуре, связанной с фреймом).
  
 Таким образом, 
  по существу, фрейм оказался тем средством, которое помогло связать декларативные 
  и процедурные знания о некоторой сущности в структуру записей, которая состоит 
  из слотов и наполнителей (filler). Слоты играют ту же роль, что 
  и поля в записи, а наполнители — это значения, хранящиеся в полях. Однако, как 
  будет сказано ниже, фреймы отличаются от привычных программных структур вроде 
  записей в языке PASCAL.
  
 Каждый фрейм 
  имеет специальный слот, заполненный наименованием сущности, которую он представляет. 
  Другие слоты заполнены значениями разнообразных атрибутов, ассоциирующихся с 
  объектом. Это могут быть и процедуры, которые необходимо активизировать всякий 
  раз, когда осуществляется доступ к фрейму или его обновление. Идея состоит в 
  том, чтобы выполнение большей части вычислений, связанных с решением проблемы, 
  явилось побочным эффектом передачи данных во фрейм или извлечения данных из 
  него.
  
 Фрейм также 
  можно рассматривать как сложный узел в особого вида ассоциативной сети. Как 
  правило, фреймы организованы в виде "ослабленной иерархии" (или "гетерархии"), 
  в которой фреймы, расположенные ниже в сети, могут наследовать значения слотов 
  разных фреймов, расположенных выше. (Гетерархия — это "запутанная 
  иерархия", т.е. ациклический граф, в котором узлы могут иметь более одного 
  предшественника.)
  
 Фундаментальная 
  идея состоит в том, что свойства и процедуры, ассоциированные с фреймами в виде 
  свойств узлов, расположенных выше в системе фреймов, являются более или менее 
  фиксированными, поскольку они представляют те вещи или понятия, которые в большинстве 
  случаев являются истинными для интересующей нас сущности, в то время как фреймы 
  более нижних уровней имеют слоты, которые должны быть заполнены наиболее динамической 
  информацией, подверженной частым изменениям. Если такого рода динамическая информация 
  отсутствует из-за неполноты наших знаний о наиболее вероятном состоянии дел, 
  то слоты фреймов более нижних уровней заполняются данными, унаследованными от 
  фреймов более верхних уровней, которые носят глобальный характер. Данные, которые 
  передаются в процессе функционирования системы от посторонних источников знаний 
  во фреймы нижних уровней, имеют более высокий приоритет, чем данные, унаследованные 
  от фреймов более верхних уровней.
  
Среди связей в системе фреймов особо нужно выделить связи между экземплярами и классами и связи между классами и суперклассами. Узел Компьютер имеет связь с узлом Машина, которая представляет отношение "класс-суперкласс", а узел sol2, представляющий конкретный компьютер (тот, на котором я работаю), имеет связь с узлом Компьютер, которая представляет отношение "экземпляр-класс". Свойства и отношения, которые в типичной семантической сети кодируются маркировкой связей между узлами, теперь кодируются с помощью представления слот-заполнитель. Кроме того, со слотами может быть ассоциирована любая дополнительная информация, например процедуры вычисления значения этого слота в случае отсутствия явного его заполнения, процедуры обновления значения слота при изменении значения другого слота, ограничения на величины, хранящиеся в слотах, и т.д.
|  |  |  |