DemonScript

DemonScript - язык, предназначенный для представления обыденных знаний и проведения логических выводов в условиях неполноты информации. Базовой конструкцией, с которой работает DemonScript является семантическая сеть, состоящая из узлов, соединённых направленными рёбрами. В задачах искусственного интеллекта узлы представляют конкретные или абстрактные сущности (ящик, птица, множество всех птиц и т.д.), а рёбра - отношения между сущностями.

В отличие от языка Prolog:

DemonScript доступен для различных платформ (Windows, Mac, Linux). Можно также простые примеры запускать в он-лайн непосредственно на сайте.

Приведём пример простой программы на DemonScript. Пусть есть три ящика a, b и с. Известно, что ящик a находится внутри c, а ящик b не находится внутри c. Необходимо ответить на вопросы: находится ли b внутри a?; может ли a находится в b?; если может, то в каком случае?

edges @in                                           // типы отношений
nodes $a, $b, $c                                    // объекты

var X,Y,Z
Mind.add(                                           // свойства отношения in:
  !X.@in.X,                                         // антирефлексивность
   X.@in.Z & Z.@in.Y -> X.@in.Y                     // транзитивность
   Z.@in.X & Z.@in.Y -> X.@in.Y | Y.@in.X | (X==Y), // образует дерево
)
   
$a.@in.$c = True                                    // ящик a внутри ящика c
$b.@in.$c = False                                   // ящик b не внутри ящика c

Mind.set_graph(GRAPH)                               // логический вывод

out $b.@in.$a                                       //> False (нет)
out $a.@in.$b                                       //> Undef (возможно)

if $a.@in.$b == Undef {                             // не запрещено, поэтому
   $a.@in.$b = True                                 // пусть a внутри b
   var Models = Mind.get_models(GRAPH, @in)         // все возможные модели
   for M in Models:                                  
      out M                                         // выводим их
}


Учебник

Справочник

Примеры

Контакты

DemonScript может использоваться в любых некоммерческих проектах. Мы приглашаем к сотрудничеству по его тестированию и разработке различных алгоритмов описания обыденных знаний. Просим также сообщать о любых замеченных ошибках, как на сайте, так и при работе с DemonScript. С нами можно связаться по адресу: ds@qudata.com