SWRL 规则不正确

SWRL rule does not the right thing

我有一个 ontology 许愿门徒,现在我想实施规则。

我有一个人有文字 PANEL = "R1-2B"。我喜欢制定一个规则,如果这个值是 "R1-2" 那么这个人有对象 属性 "isGiveWaySign"。

我已经尝试了一些东西,但我的 SWRL 做的并不像想象的那样。我只得到 man new 类 而不是只设置一个对象 属性.

我的方法是这样的:

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

我是不是漏掉了什么?

我在堆栈溢出时使用优秀的血压示例解决了这个问题。我已经简化了我的 ontology 并且可以确定我的问题的解决方案:

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

对上述更适合我的解决方案的更正:

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