JessTab в Протеже - PullRequest
       12

JessTab в Протеже

0 голосов
/ 09 июня 2019

Я использую Jess с Protege, я создал def template Person с slots (name, age and adress),, и я создал еще один def template, который extends первый с дополнительным слотом (пол), теперь я хочу удалить первый и заменить его новым, и я не хочу терять экземпляры, я хочу, чтобы экземпляры первого были расширены на второй, как я могу это сделать? спасибо

Сначала я попытался изменить структуру шаблона def с помощью функции "replace$ ", но она не работает, затем я попробовал функцию" modify ", но она просто изменяет значение слота

(deftemplate Person (slot name(type string)) (slot age(type integer)) (slot adress(type string)))

(deftemplate Personne (slot name(type string)) (slot age(type integer)) (slot adress(type string)) (slot sexe (type string) ))

(assert( Person (name "Bryan") (age "25") (adress "New York")))

(assert( Person (name "Omar") (age "35") (adress "Algeria")))

(assert( Person (name "Sara") (age "30") (adress "Moroco")))

Когда я пытался использовать функцию "replace$ "в правиле, у меня не было синтаксической ошибки, синтаксис правильный, но когда я выполняю (запускаю) он не работает, правило не выполняется.

1 Ответ

0 голосов
/ 09 июня 2019

Нет способа изменить сами экземпляры во время одного запуска программы.Но вы можете сохранить их в файл, отредактировать файл и загрузить обратно.

...