其他分支的swrl规则

时间:2016-11-22 12:11:28

标签: protege swrl

我想问一下是否有可能在SWRL中表达规则的else分支? 我知道它可以表达p-> q但我希望能够断言r如果非(p)

示例 HeavyPrecipitation(?x) - > hasObservationTag(ΔX,FalsePositiveOutlier)

现在我想说 else hasObservationTag(?x,TruePositiveOutlier)

如何做到这一点?

感谢

1 个答案:

答案 0 :(得分:2)

在像(p->q)这样的规则中,没有办法说(not(p) -> ...);在OWL-DL + SWRL中永远不可能。

但是,你可以为你的具体用途做一些可能的解决方法:

  1. OWL:ComplementOf(ClassExpression):工作就像否定了 ClassExpression

  2. SWRL:DifferentIndividualsAtom(Arg1,Arg2):有用排除 价值或范围

  3. 它们是表达看起来像否定的东西的唯一方式。

    在您的示例中:

    then-rule   ClassAtom(HeavyPrecipitation,?x) -> propertyAtom(hasObservationTag,?x,FalsePositiveOutlier)
    
    else-rule   ClassAtom(ComplementOf(HeavyPrecipitation),?x) -> propertyAtom(hasObservationTag,?x,TruePositiveOutlier)
    

    注意:开放世界假设和DL的否定是棘手的;有时两个规则('然后'和其他')可以同时为真(主要取决于你的类的定义方式)。有时你的规则都不适用:它完全取决于你如何向你的个人申报课程。