问题标签 [sqwrl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
566 浏览

owl - 如何在 sqwrl 查询中编写 OR 操作

对于 sqwrl 查询中的 AND 操作,它就像:

Symptom(fever) ^ Symptom(vomiting) ^ Disease(?y) ^ hasSymptom(?y,fever) ^ hasSymptom(?y,vomiting) -> sqwrl:select(?y)

从上面的规则,它是选择具有两种症状的疾病。sqwrl 查询中的 OR 操作呢?我想选择有症状发烧或有呕吐症状的疾病?任何帮助将不胜感激。

0 投票
1 回答
107 浏览

protege - Jess 只考虑最后一个映射的实例

我在 Protege 的 Jess Tab 中有一个问题,我正在构建一个包含 1 个消息类和 3 个实例的本体:消息 1 消息 2 消息 3,每个都有 3 个数据类型属性:类别、兴趣、类。对于每条消息,我想将其分类为如果类别和兴趣相同,则为 ham,否则为垃圾邮件。分类应使用 Jess 规则完成,根据该规则,类插槽/属性应更改为 ham 或垃圾邮件,因此我为此使用 modify-instance,因为消息实例的兴趣可以随时间变化,所以它不是一个静态分类(或者我需要重新分类它)这是 protege 中 message1 的一个示例: 在此处输入图像描述

所以我使用 Jess Tab 将实例映射到 Jess Engine : 在此处输入图像描述

这是我的规则的屏幕截图: 在此处输入图像描述 当我键入(运行)时,Jess 引擎将只正确分类 1 个实例,即最后一个实例 message3,我的意思是我必须一次只向引擎发送 1 个实例,否则它不会' t 正确分类所有消息。

我试图以其他方式打印分类值并且它工作正常(在我的示例中,3 条消息应归类为 ham ) 在此处输入图像描述 在此处输入图像描述

当我添加这两个规则时,结果是“火腿/垃圾邮件”打印进入了 for 循环。我之前问过一个问题,我得到的答案是发生无限循环,因为规则不断触发,因为动作(RHS)中的“if”总是正确的: 在此处输入图像描述

这是 Jess 的一个功能,它认为最后收到的实例。有没有办法强制 Jess 引擎一次考虑多条消息?为什么会发生无限循环?

我真的被困在这部分,迫切需要速度来完成我的论文。因此,感谢您的帮助。(我已经在 Protege 中的 swrl busing SWRL+Jess Tab 中实现了这些规则,并且这些规则运行良好,问题是事实在本体中被断言,我希望它们被修改而不是断言,所以这就是我使用 Jess 规则的原因,你认为我在写作轨道上,或者我应该更好地使用 Sweet Rules?)

我通过对事实的槽值进行限制但没有更改来更新规则如下:

(defrule MAIN::test2 (object (is-a http://www.owl-ontologies.com/Ontology1496039955.owl#Message) (OBJECT ?o)) (object (OBJECT ?o) (http://www.owl-ontologies.com/Ontology1496039955.owl#interests $?i)) (object (OBJECT ?o) (http://www.owl-ontologies.com/Ontology1496039955.owl#category $?c&:(eq (intersection$ $?i $?c) ))) (object (OBJECT ?o) (http://www.owl-ontologies.com/Ontology1496039955.owl#class $?cl&:(neq $?cl "spam"))) => (modify-instance ?o (http://www.owl-ontologies.com/Ontology1496039955.owl#class spam)))

0 投票
0 回答
237 浏览

protege - SWRL 除以十进制

似乎 SWRL 除函数不接受小数。这是我的查询:

这是 protege sqwrl 选项卡中的输出错误:

如何在 swrl 语法中进行十进制除法?

0 投票
0 回答
105 浏览

ontology - 在 protege 中运行多个 SWRL 规则序列

我有几个使用彼此结果的 SWRL 规则。
目前,我可以通过 SWRL/SQWRL 选项卡一一运行规则。

有没有办法连续运行这些规则,而我不必一个接一个地运行它们?

0 投票
0 回答
53 浏览

java - SQWRL - 添加新规则

我是 SQWRL 的新手,我必须添加一条新规则。我知道如何执行查询。

我添加新规则的查询是:

但我有一个错误:无效的 SWRL atom predicate 'pizza:BigPizza'。而且我不知道如何解决它,因为 BigPizza 是新规则。

:)

0 投票
1 回答
211 浏览

ontology - SQWRL 查询以选择分组集的差异

假设我有这些信息

我的个体都是不同的。我对每个人都断言了男性和女性的班级。而且我还拥有属性 hasHairColor 以它的价值断言给每个人。

问题是,我如何查询所有头发颜色与黑色不同的男性(本体可能有许多其他头发颜色)?

到目前为止,我已经用错误的结果尝试了这个查询......

我在连接的方式上遗漏了一些东西。结果有效,但仅当其中一组只有一个元素时(即,如果我尝试删除金发女郎)

我将 Protege 5.2 与 SWRL 和 SQWRL Tab 2.0.5 一起使用

提前致谢

0 投票
1 回答
181 浏览

ontology - 如何使用 SQWRL 查询与另一个班级的个人相关的班级?

我是 SQWRL 的新手,所以我正在对我在课程中创建的本体进行一些测试。

在那个本体中,有一个名为 BallpointPen 的类,它有一些圆珠笔作为子类;此外,还有一个名为 PenCharacteristic 的类,它具有笔作为个体的可能特征。

我想验证哪些圆珠笔(BallpointPen 类的子类)具有 Refillable 特征它是 PenCharacteristic 类的个体)。为此,我声明了以下 SQWRL 查询:

tbox:sca(?x, BallpointPen) ^ hasCharacteristic(?x, Refillable) -> sqwrl:select(?x)

它应该指出两个答案:MyInnovativeBallpointPen 和 RefillableBallpointPen 类,但它没有显示任何结果。有人可以帮我吗?

0 投票
0 回答
52 浏览

ontology - 是否有机会将从 SQWRL 查询中获得的结果放入一个类中?

我需要在一个空类中添加从 sqwrl 查询中获得的个人。使用 swrl 规则可以做到这一点,但我不能使用 sqwrl 做到这一点。

是否有机会将从 SQWRL 查询中获得的结果放入一个类中?

例如在这张图片中我有这个结果: 在此处输入图像描述

我怎样才能把列v放在一个类中?有人能帮我吗?

0 投票
0 回答
97 浏览

owl - 通过 SWRL 或 SQWRL 检查 OWL 本体中的属性等价性

我有属性P1, P2P3P1相当于P2P3的交集。如何编写一条规则,将P1并找到P2P3的交集作为等效属性。

我知道 SWRL 仅适用于 A-Box 个人。这里有任何黑客吗?还是我错过了一些替代方法?

非常感谢设计此类规则的任何帮助。谢谢!

0 投票
0 回答
291 浏览

protege - swrl 规则不返回推断的属性

我需要帮助弄清楚为什么我在 Protege 中的SWRL规则没有推断出任何属性。例如,我有一个规则来计算一堵墙的门面积:

当我在SQWRL上运行规则时,我得到了一个结果,但是这个结果没有显示在本体中。我已经在推理器上启用了推断对象属性断言,但它仍然不会返回结果。请提供任何帮助。