Знання, доступні системі, складають базу знань цієї системи.
Приклад. Розглянемо таку базу знань.
Ф1. Заєць їсть траву.
Ф2. Вовк їсть м’ясо.
Ф3. Заєць є м’ясом.
П1. Якщо А є м’ясом, а В їсть м’ясо, то В їсть А.
П2. Якщо А їсть м’ясо, то А є хижаком.
П3. Якщо А їсть В, то В є жертвою.
П4.Якщо хижак вимирає, жертва експоненційно розмножується.
П5. Якщо жертва вимирає, хижак вимирає.
Даний приклад фактично є фрагментом неформалізованого опису моделі
Лотки-Вольтерра, добре відомої в екології. Відмітимо, що подібна база знань
може лягти в основу простої експертної системи.
Літерами Ф позначені факти, які відображають елементарні знання; і їх
безпосередній аналіз дозволяє експертній системі відповідати на найпростіші
запитання, такі, як "Чи їсть вовк м’ясо?". Для позитивної відповіді на це та
подібні йому запитання досить просто знайти відповідний факт у базі знань.
Принципово іншим є запитання типу "Чи є вовк хижаком?". Відповідь на
нього простим пошуком знайти неможливо: такого факту в базі знань немає. Тому
для відповіді на це запитання необхідно застосовувати правила, які
дозволяють на основі існуючих фактів отримувати нові знання, тобто нові
факти. Такі правила позначені у нашому прикладі літерою П. Так, для відповіді на
поставлене запитання досить знання факту Ф2 і правила П2.
Безумовно, до бази знань можна було б зразу включити твердження "Вовк є
хижаком". Але легко побачити, що, якщо, крім вовків розглядати інших хижаків
(ведмедів, лисиць та ін.), то безпосередньо включати до бази знань факти, що вони
є хижаками, явно недоцільно. Взагалі, все, що може бути виведене логічним
шляхом, не варто оголошувати як факти.
Нарешті, процедури визначають, яким саме чином слід застосовувати
правила. Часто ці процедури є складовою частиною мови, якою програмується
експертна система (це відноситься в першу чергу до спеціалізованих мов штучного
інтелекту, таких як Лісп, Пролог, Пленер). Якщо ж таких процедур недостатньо,
програміст має сам подбати про їх написання.
З формалізацією знань пов’язано багато проблем, деякі з них можна
проілюструвати уже на цьому простому прикладі.
Проблема виключень. Правило П1, взагалі кажучи, невірне: з того, що хтось
їсть м’ясо, зовсім не випливає, що він їсть саме зайців. Ще більш показовий такий
приклад: на перший погляд, ніхто нібито не піддає сумніву твердження "якщо A -
птах, то А літає". Саме у такому вигляді його, як правило, формулюють люди-
експерти, і саме в такому вигляді воно може потрапити до бази знань. Але, якщо
відомо, що А - пінгвін, висновок стає невірним.
Проблема неповних знань. Іноді може виникнути така ситуація. З’ясовується
питання про те, чи призведе завіз мангустів в деяку країну до зникнення кролів, в
ситуації коли твердження про те, чи їдять мангусти кролів, у базі знань немає. У
46