SWRL:将规则限制为特定个人

时间:2016-08-08 13:19:43

标签: owl protege owl-api swrl

让我们说有一个课程" Food"包含个人" Grain"和#34;水果" 。 如果我想选择Grain我可以为个人分配food_type数据属性

(class) Food
    (ind_1) Grain   food_type ---> "grain_food"
    (ind_2) Fruit   food_type ---> "fruit_food"

并运行此代码:

  Food(?x) ^ food_type(?x,"grain_food") -> sqwrl:select(?x)

但如果我想做这项工作(选择Grain个人)而不需要food_type属性怎么办?是否可以直接指向特定的个人名称?

1 个答案:

答案 0 :(得分:3)

您所询问的内容并不完全清楚,但是,您可以在SWRL规则中使用个人。例如,如果你有一个 c 的个人 c ,你可以这样做:

C(c)⟶sqwrl:选择(c)

只要 sqwrl:select 不一定需要变量(即,只要它可以直接接受个人),这应该没问题。如果它需要一个变量,而不是一个直接的个体(我认为这会违背意图),我想你可以使用某种等式谓词,比如swrbl:equal

swrlb:equal(c,?x)⟶sqwrl:select(?x)