我正在使用 Protege 3.4,我构建了我的本体,并使用 SWRL 和 sqwrl built ins 使用 SWRL 规则对其进行了扩展。规则对本体类的实例进行分类;RHS 是一个实例的类断言。它工作成功,但是当我更改 LHS 中原因的值时,没有进行重新分类,实例被断言为同一个类
为什么会这样?如何重新分类实例?
例如:SWRL 规则: 1. Message(?m) hasInterest(?m,?i) hasCategory(?m,?c) sqwrl:makeset(?s1,?i) sqwrl:makeset(?s2,?c) sqwrl:交点(?s3,?s1,?s2) sqwrl:size(?n,?s3) swrlb:greaterThan(?n,0) -> Ham(?m)
- Message(?m) hasInterest(?m,?i) hasCategory(?m,?c) sqwrl:makeset(?s1,?i) sqwrl:makeset(?s2,?c) sqwrl:difference(?s3,?s1 ,?s2) sqwrl:size(?n,?s3) swrlb:greaterThan(?n,0) -> 垃圾邮件(?m)
因此,例如,一旦消息实例被归类为 ham ,每当我更改 i 或 c 的值时,它将始终是 ham 。