Knowlus logo
The truth is in here

Пролог

Решатель Пролога основан на библиотеке tuProlog, у которой удалены JavaLibrary, IOLibrary и IOISOLibrary для предотвращения вмешательства пользователей в систему. Предикаты ISO стандарта оставлены. Документацию по прологу можно прочитать здесь (pdf).

Создание классификатора на Прологе следует начинать с формирования списка атрибутов и выделения среди них входных и выходных на вкладке Атрибуты. Текст Пролог-программы вводится на вкладке Программа

Проверить работу Пролог-программы можно на закладке с исходным кодом. Сообщения программы и Exceptions, будут выведены на экран.

Задача Пролог-программы на платформе Knowlus вычислить значения выходных атрибутов по значениям входных атрибутов. Значения входных атрибутов добавляются в теорию в виде факта:

input(['название входного атрибута'(значение),...]).
Значения выходных атрибутов вычисляются системой, как подстановка для переменной Х при поиске решения для цели
output(X).
Чтобы получить значение входного атрибута a можно воспользоваться вспомогательной функцией attribute, у которой первый аргумент - название атрибута, второй - список атрибутов со значениями (кортеж):
input(X), V is attribute('a', X).

Функция attribute выдает ошибку и прерывает выполнение программы, если атрибута a нет в кортеже. Для случаев, когда программа должна работать и при отсутствии некоторых атрибутов в кортеже, можно использовать предикат attribute(+название атрибута, +кортеж, -значение атрибута).

fire(address, input) - вызов других решателей на платформе Knowlus.
address - текстовый адрес (URI) решателя в формате /id_решателя#id_компонента. Если компонент находится в том же контейнере, что и Пролог программа, то id_решателя можно не указывать.
input - список со входным атрибутами и их значениями (кортеж).
Результат выполнения fire - список с выходными атрибутами и их значениями (кортеж): ['название выходного атрибута'(значение),...].

Предикаты со значениями атрибутов можно вставить в код по нажатию Ctrl-Пробел.

На поиск решения платформой Knowlus выделяется 1 с. процессорного времени и низким приоритетом. Этого вполне хватает для большинства пролог-программ с умеренной степенью рекурсии.

ЧАВО

Malformed goal.

Скорее всего, вы не поставили точку в конце цели.

Почему tuProlog?

Из свободных библиотек rule-based engine только у tuProlog есть механизм ограничения доступа к объектам Java.

en_US © 2012-2016 Ilya Ashikhmin
Request result: