Система , основанная на знаниях ( KBS ), — это компьютерная программа , которая рассуждает и использует базу знаний для решения сложных задач . Системы, основанные на знаниях, были в центре внимания ранних исследователей искусственного интеллекта в 1980-х годах. Этот термин может относиться к широкому спектру систем. Однако все системы, основанные на знаниях, имеют два определяющих компонента: попытку явно представить знания, называемую базой знаний , и систему рассуждений , которая позволяет им выводить новые знания, известную как машина вывода .
База знаний содержит факты и правила, специфичные для домена [1] о проблемной области (а не знания, неявно встроенные в процедурный код, как в обычной компьютерной программе). Кроме того, знания могут быть структурированы с помощью онтологии категоризации , фреймов , концептуального графа или логических утверждений. [2]
Механизм вывода использует методы рассуждения общего назначения для вывода новых знаний и решения проблем в проблемной области. Чаще всего он использует прямую или обратную цепочку . Другие подходы включают использование автоматизированного доказательства теорем , логического программирования , систем досок и систем переписывания терминов , таких как правила обработки ограничений (CHR). Эти более формальные подходы подробно описаны в статье Википедии о представлении знаний и рассуждениях .
Термин «система, основанная на знаниях» часто использовался взаимозаменяемо с « экспертной системой », возможно, потому, что почти все самые ранние системы, основанные на знаниях, были разработаны для экспертных задач. Однако эти термины говорят нам о различных аспектах системы:
Сегодня практически все экспертные системы основаны на знаниях, при этом архитектура систем, основанных на знаниях, используется в широком спектре типов систем, предназначенных для решения различных задач.
Первые системы, основанные на знаниях, были в первую очередь экспертными системами, основанными на правилах. Они представляли факты о мире как простые утверждения в плоской базе данных и использовали доменно-специфические правила для рассуждений об этих утверждениях, а затем для их дополнения. Одной из самых известных из этих ранних систем была Mycin , программа для медицинской диагностики.
Явное представление знаний с помощью правил имело ряд преимуществ:
Позже [ когда? ] архитектуры для рассуждений, основанных на знаниях, такие как архитектура доски BB1 ( система доски ), [4] позволили самому процессу рассуждения быть затронутым новыми выводами, обеспечивая рассуждения метауровня. BB1 позволяла контролировать сам процесс решения проблем. Различные виды решения проблем (например, сверху вниз, снизу вверх и оппортунистическое решение проблем) могли выборочно смешиваться на основе текущего состояния решения проблем. По сути, решатель проблем использовался как для решения проблемы уровня предметной области, так и для решения своей собственной проблемы управления, которая могла зависеть от первой.
Другими примерами системных архитектур, основанных на знаниях и поддерживающих рассуждения на метауровне, являются MRS [5] и SOAR .
В 1980-х и 1990-х годах, в дополнение к экспертным системам, другие приложения систем, основанных на знаниях, включали управление процессами в реальном времени, [6] интеллектуальные обучающие системы, [7] и решатели проблем для определенных областей, таких как анализ структуры белка, [8] планировка строительной площадки, [9] и диагностика неисправностей компьютерных систем. [10]
По мере того, как системы, основанные на знаниях, становились все более сложными, методы, используемые для представления базы знаний, становились все более изощренными и включали логику, системы переписывания терминов, концептуальные графы и фреймы .
Например, фреймы — это способ представления знаний о мире с использованием методов, которые можно рассматривать как аналоги объектно-ориентированного программирования , в частности, классов и подклассов, иерархий и отношений между классами и поведения [ уточнение необходимо ] объектов. С более структурированной базой знаний рассуждения теперь могут происходить не только с помощью независимых правил и логического вывода, но и на основе взаимодействий внутри самой базы знаний. Например, процедуры, хранящиеся как демоны на [ уточнение необходимо ] объектах, могут запускаться и могут реплицировать поведение цепочки правил. [11]
Другим достижением 1990-х годов стала разработка автоматизированных систем рассуждений специального назначения, называемых классификаторами . Вместо того, чтобы статически объявлять отношения категоризации в базе знаний, классификатор позволяет разработчику просто объявлять факты о мире и позволять классификатору выводить отношения. Таким образом, классификатор также может играть роль машины вывода. [12]
Самым последним [ на? ] достижением систем, основанных на знаниях, стало принятие технологий, особенно вида логики, называемой логикой описания , для разработки систем, использующих Интернет. Интернету часто приходится иметь дело со сложными, неструктурированными данными , на которые нельзя положиться, чтобы они соответствовали определенной модели данных. Технология систем, основанных на знаниях, и особенно способность классифицировать объекты по требованию, идеально подходит для таких систем. Модель для таких видов систем, основанных на знаниях, известна как Семантическая паутина . [13]