我想尝试以下规则:
[(not Person)(?x) -> NonHuman(?x)
,此处提供-https://github.com/protegeproject/swrlapi/wiki/SWRLLanguageFAQ#does-swrl-support-classical-negation
Protege 5.5.0支持经典否定吗?如果是,我如何使以下规则正确?预先感谢!
来自https://github.com/protegeproject/swrlapi/issues/63:
[不幸的是,SWRLAPI的解析器不支持规则中的OWL类表达式。没有列入时间表的时间表。
幸运的是,可以使用“规则”视图:Windows>视图>本体视图>规则。
实际上,在这种特殊情况下,您不需要SWRL。只需在通用类公理部分中输入(not Person) SubClassOf NonHuman
,或者,如果您不喜欢GCI公理,则首先定义NonPerson
。
不要忘记OWA。
编辑:使用内置的swrlb:notEqual()
帮助了我。
最终结果:Person(?x) ^ swrlb:notEqual(?x) -> NonHuman(?x)