SNePS — это система представления знаний , рассуждений и действий (KRRA), разработанная и поддерживаемая Стюартом С. Шапиро и его коллегами из Университета штата Нью-Йорк в Буффало .
SNePS одновременно является системой KRRA на основе логики , фрейма и сети . Она использует утверждающую модель знаний, в которой база знаний (KB) SNePS состоит из набора утверждений (предложений) о различных сущностях. Ее предполагаемая модель — это интенсиональная область ментальных сущностей — сущности, задуманные некоторым агентом, и предложения, в которые он верит. Интенсиональность в первую очередь достигается отсутствием встроенного оператора равенства, поскольку любые два синтаксически различных термина могут иметь немного разные фрегеанские смыслы .
SNePS имеет три стиля вывода: основанный на формулах, выведенный из его логической личности; основанный на слотах, выведенный из его фреймовой личности; и основанный на путях, выведенный из его сетевой личности. Однако все три интегрированы и работают вместе.
SNePS может использоваться как автономная система KRR. Она также использовалась вместе с ее интегрированным действующим компонентом для реализации разума интеллектуальных агентов ( когнитивных роботов ) в соответствии с архитектурой агента GLAIR (многоуровневая когнитивная архитектура ). Исследовательская группа SNePS часто называет своих агентов Кэсси.
Как логическая система, SNePS KB состоит из набора терминов, функций и формул над этими терминами. Набор логических связок и квантификаторов расширяет обычный набор, используемый логиками первого порядка , все они принимают один или несколько наборов аргументов произвольного размера. В соответствии с предполагаемым использованием SNePS для представления разума интеллектуального агента , владеющего естественным языком , предложения являются первоклассными сущностями предполагаемой области, поэтому формулы на самом деле являются функциональными терминами, обозначающими предложения. SNePSLOG, язык ввода-вывода логического лица SNePS, выглядит как наивная логика в том, что функциональные символы (включая «предикаты») и формулы (фактически обозначающие предложения термины) могут быть аргументами функций и могут быть квантифицированы по ним. Однако базовая SNePS является логикой первого порядка, в которой функциональные символы и формулы пользователя овеществлены .
Формульный вывод реализован как механизм вывода в стиле естественной дедукции , в котором есть правила введения и исключения для связок и квантификаторов. Формульный вывод SNePS является обоснованным, но не полным, поскольку правила вывода, которые менее полезны для понимания естественного языка и рассуждений здравого смысла, не были реализованы.
Термин, обозначающий предложение, в базе знаний SNePS может быть «утвержденным», то есть рассматриваться как истинный в базе знаний. Логика SNePS является параконсистентной версией логики релевантности , так что противоречие не подразумевает ничего вообще. Тем не менее, SNeBR, подсистема пересмотра убеждений SNePS, заметит любое явное противоречие и вовлечет пользователя в диалог для его исправления. SNeBR является системой поддержания истины на основе предположений (ATMS) и удаляет статус утверждения любого предложения, поддержка которого была удалена.
Как система на основе фреймов, каждый функциональный термин SNePS (включая пропозиционально-значимые термины) представлен фреймом со слотами и заполнителями. Каждый слот может быть заполнен набором других терминов произвольного размера. Однако циклы не могут быть построены. SNePSUL, пользовательский язык SNePS, является языком ввода-вывода для взаимодействия с SNePS в его облике как системы на основе фреймов.
SNePSLOG может использоваться в любом из трех режимов. В двух режимах caseframe (набор слотов), связанный с каждым функциональным термином, определяется системой. В режиме 3 пользователь объявляет, какой caseframe должен использоваться для каждого функционального символа.
В выводе на основе слотов любой пропозиционально-значимый фрейм считается подразумевающим фрейм с любым из его слотов, заполненных подмножеством его заполнителей. В текущей реализации это не всегда обосновано.
Как сетевая система, SNePS является пропозициональной семантической сетью , таким образом, первоначальное значение "SNePS" как "Система обработки семантической сети". Это представление получается путем рассмотрения каждой отдельной константы и каждого функционального термина как узла сети, а каждого слота как направленной помеченной дуги от узла-фрейма, в котором он находится, к каждому узлу в его заполнителе. В предполагаемой интерпретации каждый узел обозначает ментальную сущность, некоторые из которых являются предложениями, и каждое предложение, представленное в сети, представлено узлом, который его обозначает. Некоторые узлы являются переменными логики SNePS, и они ранжируются по узлам и только по узлам.
Правила вывода на основе пути могут быть определены, хотя сами по себе они не представлены в SNePS. Правило вывода на основе пути указывает, что некоторая помеченная дуга r может быть выведена как присутствующая из некоторого узла n в некоторый другой узел m только в случае, если данный путь существует от n до m . Доступен обширный рекурсивный набор конструкторов путей.
SNePS использовался для различных задач KRR, для понимания и генерации естественного языка , для рассуждений на основе здравого смысла и для когнитивной робототехники . Он использовался в нескольких курсах KR по всему миру.
SNePS реализован как платформенно-независимая система на Common Lisp и распространяется бесплатно.