Эксперт – человек, который обладает ценными уникальными знаниями.
Как бы получить ценные знания на халяву?
Такая проблема давно волновала айтишников, и придумали они «экспертные системы». Экспертные системы получили коммерческое распространение ещё до появления персоналок. Основа экспертной системы – «база знаний».
База знаний представляет собой базу данных (перечень фактов) и правила вывода (решающие правила). Самое любимое всеми свойство систем управления базами данных (СУБД) это возможность формировать ответы на запросы. Но запрос делается только по уже внесённым в базу данных фактам!
А вот база знаний позволяет из уже записанных в базу данных фактов делать выводы, то есть, устанавливать новые, не записанные до тех пор, факты. Иметь компьютерную прогу, которая умеет это делать, чрезвычайно полезно,даже если вы – реальный эксперт.
Дело в том, что правила вывода представляют собой, так называемое, процедурное представление знаний.
Преимущества процедурного представления видны на примере инженерного калькулятора. Он не содержит таблицы синусов, логарифмов и т.д, а всякий раз их мгновенно вычисляет с помощь. Зашитых в калькулятор алгоритмов. Это и делает калькулятор компактным, ибо процедурное представление допускает колоссальное сжатие знаний.
«Знание немногих принципов компенсирует незнание многих фактов» -говорил ещё Гельвеций.
Правила вывода нагляднее всего представить можно спомощь системы продукций. Это просто высказываения типа ЕСЛи…ТО…ИНАЧЕ… Продукции легко программируются на любом алгоритмическом языке, включая ФОРТРАН, Паскаль, бейсик. Можно их запрограммировать и непосредственно в СУБД ACCESS Microsoft Office, в которой вы привыкли вести базы данных. Несколько более искусственно, правила вывода будут выглядеть в Excel, но тоже без особых проблем.
Если порыться в интернете, можно найти так называемые оболочки экспертных систем, написанные на различых языках, например, Prolog. Их много в свободном доступе. И часто они очень не плохи. Оболочка не содержит в себе конкретных знаний, и правила вывода представлены в ней абстрактно.
«Я сделал экспертную оболочку» - как бы говорят программисты.
«И не царское это дело, ещё и конкретными знаниями её заполнять».
И это FATAL ERROR.
Дело в том, что знания бывают тривиальные и не очень. Пример тривиальных знаний –так называемые трюизмы. Примеры: «Река Волга впадает в Каспийское море. Лошади кушают овес и сено.»
Экспертная система не знает, как нетривиальные знания отличить от тривиальных!
Это может только человек.
И запрограммировать поиск отличий – весьма проблематично, если вообще возможно.
И обычный, хотя и продвинутый юзер, врач или юрист, останавливается перед выбором: или погрязнуть в изучении IT, или оставить всё, как есть. И чаще всего выбирает второй путь.
А на самом деле возможно плодотворное решение. Надо начать, мало по малу, создавать свою простенькую базу знаний. Любым доступным способом.
Лучше всего, пожалуй, в СУБД Access. Потому что в качестве сухого остатка (в худшем случае!) будет знание СУБД.
Пока вы её будете делать, вы хорошо прочувствуете разницу между тривиальными и нетривиальными знаниями в вашей области. И, когда вы сами дойдёте до пределов применимости правил вывода в виде продукций, вы будете твердо знать, что делать дальше.
А чем полезна база знаний для самого эксперта? У неё не болит голова! Она не устаёт! Она очень быстро будет делать выводы вместо вас. Под вашим неусыпным контролем.
А если войдёте в азарт, то и программирование в Прологе покажется вам приятной и выгодной забавою.