1

每个人,

我习惯了 Protégé,但现在,我正在尝试使用 Protégé 插件 SWRLTab。

问题是我真的不熟悉 SWRL 规则语法。让我们玩得开心我的问题:

我有一个著名的本体,叫做“pizza”。假设我有一个 4cheesesPizza,Pizza 的子类。

我不想在 Protégé 的“等效于”选项卡中写“hasTopping 正好 4 CheesyTopping”的东西,但我想用 SWRL 规则语法写它。(是的,我知道这很愚蠢,但这是一个例子,在我的真实情况下,写一个规则是有意义的)。

我尝试了类似的东西,Pizza(?p) ^ hasTopping(?p,?t)但接下来,我很受阻。我不知道该怎么办。

此外,当我启动 OWL + SWRL -> Drools 时,在推断公理中已经有 100 多行,这是不可读的。

如果有人有解决方案,

谢谢,克莱门特

4

1 回答 1

1

你想在 SWRL 中做的事情是不可能的。即 SWRL 将需要计算与特定类型hasTopping的特定个体相关的个体数量。SWRL 不能这样做,但 OWL 推理器可以,因此您在 Protege 中指定的是正确的方法。pPizza

作为 SWRL 语法的示例,假设您有类ExpensiveTopping,并且ExpensivePizza您可以在 SWRL 选项卡中添加一条规则来确定昂贵的披萨:

Pizza(?p) ^ hasTopping(?p,?t) ^ ExpensiveTopping(?t) -> ExpensivePizza(?p).

于 2018-02-03T05:34:40.157 回答