Protege swrl规则的else分支

Protege swrl规则的else分支,protege,swrl,Protege,Swrl,我想问一下,是否可以用SWRL表示规则的else分支? 我知道它可以表示p->q,但如果不是(p),我希望能够断言r 范例 重沉淀(?x)->有观测标记(?x,假阳性) 现在我想说else有ObservationTag(?x,TruePositiveOutlier) 如何做到这一点 谢谢像(p->q)这样的规则没有办法说(不是(p)->…);在OWL-DL+SWRL中,这是不可能的 但是,您可以做一些可能是您特定用法的变通方法的事情: OWL:ComplementOf(ClassExpressi

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

范例 重沉淀(?x)->有观测标记(?x,假阳性)

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

如何做到这一点

谢谢

(p->q)
这样的规则没有办法说
(不是(p)->…)
;在OWL-DL+SWRL中,这是不可能的

但是,您可以做一些可能是您特定用法的变通方法的事情:

  • OWL:
    ComplementOf(ClassExpression)
    :像对的否定一样工作 类表达式

  • SWRL:
    DifferentIndividualsAtom(Arg1,Arg2)
    :用于排除 值或范围

  • 它们是表达否定的唯一方式

    关于您的示例:

    then-rule   ClassAtom(HeavyPrecipitation,?x) -> propertyAtom(hasObservationTag,?x,FalsePositiveOutlier)
    
    else-rule   ClassAtom(ComplementOf(HeavyPrecipitation),?x) -> propertyAtom(hasObservationTag,?x,TruePositiveOutlier)
    
    注:在开放世界假设和DL中,否定是棘手的;有时两个规则(“then”和“else”)可以同时为真(主要取决于类的定义方式)。有时你的规则都不适用:这完全取决于你如何对你的个人声明类。

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

    但是,您可以做一些可能是您特定用法的变通方法的事情:

  • OWL:
    ComplementOf(ClassExpression)
    :像对的否定一样工作 类表达式

  • SWRL:
    DifferentIndividualsAtom(Arg1,Arg2)
    :用于排除 值或范围

  • 它们是表达否定的唯一方式

    关于您的示例:

    then-rule   ClassAtom(HeavyPrecipitation,?x) -> propertyAtom(hasObservationTag,?x,FalsePositiveOutlier)
    
    else-rule   ClassAtom(ComplementOf(HeavyPrecipitation),?x) -> propertyAtom(hasObservationTag,?x,TruePositiveOutlier)
    
    注:在开放世界假设和DL中,否定是棘手的;有时两个规则(“then”和“else”)可以同时为真(主要取决于类的定义方式)。有时,您的规则都不适用:这完全取决于您如何对您的个人声明类