SWRL规则不正确

时间:2018-08-22 05:07:45

标签: semantics protege rule validationrules swrl

我有一个希望Protege的本体,现在我想执行规则。

我有一个文字为PANEL = "R1-2B"的个人。我喜欢制定一条规则,如果该值为“ R1-2”,那么此人的对象属性为“ isGiveWaySign”。

我已经尝试了一些方法,但是我SWRL所做的却不像预期的那样。我得到的只是新的类,而不仅仅是设置对象属性。

我的方法如下:

PANEL(?a, ?b) ^ swrlb:substring(?b, "R1-2") -> isGiveWaySign(?a)

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

对上述解决方案的更正对我而言更有效:

Panel(?s,?gws)^ swrlb:contains(?gws,“ R1-2”)^ Sign(?s)-> GiveWaySign(?s)

答案 1 :(得分:0)

在堆栈溢出时,我使用出色的血压示例弄清楚了这一点。我简化了本体,可以确定问题的解决方案:

Panel(?s,?gws)^ swrlb:contains(?gws,“ R1-2”)^ Sign(?bs)-> GiveWaySign(?bs)