24.2.
Представление знаний
В определенном
смысле любая компьютерная программа содержит знания. Программа сортировки по
методу "пузырька", написанная на языке BASIC, содержит знания программиста
о том, как упорядочить элементы списка. Так чем же все-таки представление знаний
отличается от обычного программирования?
Разобраться
в сути компьютерной программы, решающей задачу сортировки списков, совсем непросто.
Она, конечно же, содержит знания программиста о методе решения задачи, но, помимо
этих знаний, в ней содержатся и другие:
Языки представления
знания являются языками высокого уровня, специально предназначенными для кодирования
в явном виде фрагментов знаний человека, таких как правила влияния и набор свойств
типовых объектов, причем высокий уровень языка проявляется в том, что от пользователя
скрываются, насколько это возможно, технические подробности механизма представления
знаний. Конечно, пользователь при желании может познакомиться со всеми деталями,
но идея состоит в том, что это совсем не обязательно делать в процессе разработки
программы. В отличие от более привычных языков профаммирования, языки представления
знаний исключительно экономичны в смысле объема программного кода. В значительной
мере это объясняется тем, что заботу о множестве мелочей берет на себя интерпретатор
языка. Можно показать, что большинство из них обладает всеми признаками машины
Тьюринга, другими словами, такие интерпретаторы теоретически способны выполнять
любые вычисления, которые под силу машине, реализующей программу, написанную
на любом из "обычных" языков программирования.
Несмотря на
отмеченные достоинства таких языков, нельзя забывать и о существовании определенных
проблем при их применении.
Вызов со стороны
проблемы представления знаний состоит в том, что мы не можем себе позволить
опустить руки перед сложностями, связанными с передачей знаний от человека программе,
возможностью их адекватной трактовки и неопределенностью знаний.
Сказанное
выше нужно расценивать как констатацию реально существующей ситуации. Я не сомневаюсь,
что дальнейшие исследования методов представления знаний позволят нам лучше
понять смысл этих компромиссов, но в настоящее время мы располагаем методами,
которые вполне устраивают нас на практике.
Отошли в прошлое оживленные дискуссии на отвлеченные темы вроде "Может ли машина мыслить?" или "Как действительно представляются знания в мозге человека?" Сейчас чаще всего задаются вопросом: "Что позволяет сделать данная технология?", а ответ на него может быть получен только программой, в которой сконцентрированы результаты теоретической и практической работы, а не метафизические спекуляции.