协作本体构建与Prolog

时间:2019-04-12 08:38:15

标签: prolog owl protege swrl

哪种技术适合创建允许用户添加事实,编辑事实并查询此信息的网页?我一直在Prolog中建立知识库和推理规则,但想在网络上访问事实部分和查询。更具体地说,我正在寻找以下功能:

  • 最终用户可以在其中添加和编辑事实的Web界面,例如“吸烟导致癌症的可能性为0.02”。优选地,这应该是可访问的东西,并且不涉及编写Prolog或其他代码(例如,从三个列表中选择主题,关系和对象)。在这里,具有一些功能来查看知识库中是否已经存在某些概念也将是一件很不错的事情(例如,如果用户要输入有关癌症的事实,而知识库中已经存在癌症的概念,则应显示出来,最好还有相关概念)。也许某些下拉菜单或列表可以实现此目的。
  • 用于管理用户个人资料,密码,特权等的功能
  • 最终用户可以在其中查询事实部分的Web界面,例如“什么是引起癌症的原因?”。计算查询答案的规则将不是最终用户编辑的内容(我想这样做)。他们只是以易于理解的格式查看结果。
  • Prolog或与Prolog一样强大的语言,我(而非最终用户)可以使用它来创建推理规则(该规则可生成对用户查询的答案)。
  • 如果可能的话,最终用户可以通过某种方式获得知识库的图形表示。

关于Prolog程序的含义摘要:

%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 and Pengines,但是我不确定它们是否是成熟的本体编辑器,或者是否可以将它们连接到现有的本体编辑器。

我也一直在研究Protegé,OWL和SWRL规则,但是我不确定它们是否像Prolog一样强大,或者它们可以以什么方式与Prolog交互。

任何帮助将不胜感激!谢谢。

/ JCR

1 个答案:

答案 0 :(得分:0)

有关此here的更多信息。