Совместное построение онтологий и Пролог

Какие технологии подходят для создания веб-страницы, которая позволяет пользователям добавлять факты, редактировать факты и запрашивать эту информацию? Я создавал базу знаний и правила вывода на Прологе, но хотел бы сделать раздел фактов и запросы доступными в Интернете. В частности, я ищу следующие функции:

  • Веб-интерфейс, в котором конечные пользователи могут добавлять и редактировать факты, например «курение вызывает рак с вероятностью 0,02». Желательно, чтобы это было что-то доступное и не предполагающее написание Пролога или другого кода (например, выбор темы, отношения и объекта из трех списков). Здесь также было бы неплохо иметь некоторую функциональность для проверки того, существуют ли уже какие-то концепции в базе знаний (например, если пользователь вводит факт о раке, а концепция рака уже присутствует в базе знаний, это должно быть показано, желательно также родственные понятия). Может быть, некоторые выпадающие меню или списки могли бы этого добиться.
  • Функциональность для управления профилями пользователей, паролями, привилегиями и т. Д.
  • Веб-интерфейс, в котором конечные пользователи могут запрашивать раздел фактов, например «каковы причины рака?». Правила, которые вычисляют ответы на запросы, не будут редактироваться конечными пользователями (вместо этого я хочу сделать это). Они просто видят результаты в удобном для восприятия формате.
  • Язык, который является Прологом или столь же мощным, как Пролог, который я (а не конечные пользователи) могу использовать для создания правил вывода (которые генерируют ответы на запросы пользователей).
  • Если возможно, некоторые средства для конечных пользователей, чтобы получить графическое представление базы знаний.

Краткое изложение того, что я имею в виду с точки зрения программы на Прологе:

%This kind of thing should be entered by end users in a friendly interface (i.e. not code like here).    
causes(smoking, cancer, prob(0.05)).
causes(cancer, death, prob(0.1)).

%This kind  of thing should be entered by me (and not end users)
inferCauses(C, E, prob(P)):-
    causes(C, E, prob(P)).
inferCauses(C, E, prob(P)):-
    causes(C, I, prob(P1)),
    causes(I, E, prob(P2)),
    P is P1 * P2.

%This should be entered by end users, again in a friendly interface
?-whyCancer?

Я знаю об отличных SWISH и Pengines, но не уверен, являются ли они полноценными редакторами онтологий или они могут быть связаны с существующими редакторами онтологий.

Я также изучал правила Protegé, OWL и SWRL, но не уверен, что они такие же мощные, как Prolog. или каким образом они могут взаимодействовать с Prolog.

Любая помощь будет принята с благодарностью! Спасибо.

/ JCR


person Community    schedule 12.04.2019    source источник
comment
добавлять и редактировать факты, например курение вызывает рак с вероятностью 0,02. Желательно, чтобы это было что-то графическое и не предполагало написания Пролога или другого кода - что может быть проще, чем объявить это как факт? Вы хотите нарисовать график, чтобы представить факты или что-то в этом роде? Может быть, использовать комбинацию javascript (например, D3) и pengines?   -  person user27815    schedule 12.04.2019
comment
Например, отредактируйте что-нибудь вроде: bl.ocks.org/benzguo/4370043, чтобы при рисовании край, который делает такие факты, как: причины (курение, рак, вероятность (0,05)).   -  person user27815    schedule 12.04.2019
comment
Может быть, я был немного неясен в исходном посте. Под графическим я имел в виду графический интерфейс, который мог, например, включать выбор субъекта, отношения и объекта из трех списков ... Не обязательно должны быть стрелки и тому подобное.   -  person    schedule 12.04.2019
comment
Если вы посмотрите здесь номер 11: вы можете увидеть пример взаимодействия javascript gui с pengines https://swish.swi-prolog.org/?code=https://raw.githubusercontent.com/samwalrus/reactome_notebook/master/reactome_pengine.swinb   -  person user27815    schedule 12.04.2019
comment
Выглядит интересно!   -  person    schedule 12.04.2019
comment
acade.oup.com/bioinformatics/article/34/16/2856/ 4956665 Подробнее   -  person user27815    schedule 12.04.2019
comment
@ user27815 Спасибо! Я прочитаю газету.   -  person    schedule 12.04.2019
comment
@GuyCoder Звучит хорошо, стоит ли мне просто опубликовать свой вопрос на общедоступном форуме (или связаться с вами в частном порядке? Какое имя пользователя в этом случае?).   -  person    schedule 12.04.2019
comment
@GuyCoder, да, я. :)   -  person user27815    schedule 12.04.2019
comment
@GuyCoder круто, без проблем :)   -  person user27815    schedule 12.04.2019


Ответы (1)


Дополнительная информация об этом здесь .

person Community    schedule 22.04.2019