我的实例的名称为(screenshot of the said names in Protégé),插槽为(image here)。
我需要做的是:了解插槽的价值" DESCRIPTION",获取实例的名称,以便我可以在我的Java程序中使用它。
我想到了defrule
,但它是否允许我将结果放在全局变量中?你可以指导我这样做吗?
答案 0 :(得分:0)
您确实可以将规则与全局结合使用:
(defglobal ?*desc* = "")
写一条规则:
(defrule getDescription
(SystemEauDeRefroidissement
(http..#description ?d))
=>
(bind ?*desc* ?d))
如果您只有SystemEauDeRefroidissement
的单个实例,则可能会有效。您可以使用Jess API检索全局值:
Context ctxt = rete.getContext();
Variable var = ctxt.getVariable( "desc" );
String desc = var.stringValue( ctxt );
我没有测试任何这个。
编辑如果您有说明,则可以编写规则(现在更多采用Protégé风格:
(object
(is-a http..#SystemEauDeRefroidissement)
(OBJECT ?sedr)
(http..#description ...)
=>
(bind ?*sedr* ?sedr))
我不知道你是如何将描述值插入Jess环境的,所以这就是省略号的原因。