问题标签 [swrl]

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 投票
1 回答
1840 浏览

jena - 如何在 fuseki 中逐步定义非常简单的自己的规则?

我请求您帮助了解如何在 fuseki 中创建我自己的属性规则。我已经阅读了 Jena 和 Fuseki 关于推理器和规则的文档,但我不明白如何创建(逐步)简单的规则。我发现的例子都集中在 OWL 推理器上。

我不清楚 config.ttl 文件中写了什么以便 fuseki 考虑到我对本体的规则。我通过 sparql 客户端将 Sparql 点与 python 一起使用,并且我不掌握 java 代码和应用程​​序。

我的目的是创建下一个规则:

SWRL 语法的原理是:

提前致谢。


使用一种解决方案进行编辑

以 inference_rules.rules 为例:

0 投票
1 回答
95 浏览

instance - 数据属性的属性链

根据 protege 4.x 文档,对象属性存在属性链,但是在我的情况下,我需要包含如下数据属性:

稍微解释一下,假设我们有一条名为“Hollywood”的街道。这条街道由几段(一段是交叉路口之间的街道的一部分)组成,其名称应与街道名称“Hollywood”相同。请注意,街道概念与段不同,因此它们不是子类,但它们具有上述关系(构建)。

一种解决方案是使 has_name 成为 Object 属性,然后每个名称都应该是一个对象(实例)。

这对我来说似乎不太好,因为我认为使用数据类型更好。

另一种解决方案是使用 SWRL,如下所示:

这不起作用!!!!你能帮我找出原因或找到合适的解决方案吗?

0 投票
1 回答
178 浏览

owl - SWRL 和 Rolification 无法返回我想要的

我已经开发了一个本体,我想在 protege 中添加以下 SWRL:

有了这个,我希望在来自detailed_pa​​rtition (?d) 的个体和被分类为divider_intersection 的节点之间添加一个对象属性is_divided_at,如果它是构建车道(?l) 的段(?s) 的范围然后构建详细的?分区(?d)。如此处所述,我正在寻找 NamedIndividuals,因此我认为 SWRL 应该可以完成这项工作。

进一步研究,我发现 Rolification ( 1 , 2 , 3 ) 作为一个可能的答案,但是我以前从未使用过它,但我做了以下链:

我仍然没有得到答案。知道有什么问题吗?

0 投票
1 回答
1026 浏览

java - How to use swrl builtin in owlapi with pellet?

I try to use swrl in java owl-api with pellet. I have looked at : owl2 and swrl tutorial test of builtin swrl in pellet and swrl definition

I manage to use swrl for simple inference like : A(?x) -> B(?x)

But I'm stuck when it is need to use "builtin" swrl predicat like (equal, greaterThan, lesserThan, etc...) I think there is a problem somewhere is my test program (probably in namespaces) but I can't find where.

The expected output is :

but the actual output is :

The A class is not found. Here the code of my program :

The test program run using this :

Can someone can help me to fix-it ?

0 投票
1 回答
583 浏览

protege4 - 如何使用 swrl 添加可变数量的值

这是我第一篇关于堆栈溢出的帖子,所以我请求一个令人鼓舞的回复:)(奖励声誉)

我正在尝试使用 SWRL 为我做一些计算。为了模仿这个问题,我使用 protege 4.3 创建了一个小型本体。它只有两个类 Parent 和 Son。实例包括 1 个父 (John) 和三个儿子 (son1、son2、son3)。约翰使用“hasSon”对象属性与 3 个儿子相关联。使用“hasAge”数据类型属性(整数)提及每个儿子的年龄。

问题 1:我需要首先使用 hasSon 属性检查有多少实例与给定的 Parent(John) 链接。这如何在 SWRL 中实现?

问题 2:在知道儿子的数量之后,我必须将他们的年龄相加才能再次使用 SWRL 获得所有儿子的总年龄?

对我来说,这需要一个类似加法(a=a+b)的循环,但我不知道这将如何在 SWRL 中工作。我已为您附上了 OWL 代码。(请注意,在实际的本体中,链接的实例不是 3 个而是变化的,计算它们是问题的一部分)提前致谢

0 投票
1 回答
468 浏览

owl - SWRL - 取决于其他规则断言的规则

目前我正在开发一个本体来表示特定用户可能对某事有的偏好。例如,用户可能将MediaVolumeLevel偏好设置为VolumeLevel_3

不同级别(班级的个人MediaVolumeLevel)是: VolumeLevel_1, VolumeLevel_2, VolumeLevel_3 and VolumeLevel_4

user 和 Preference 由 objectProperty 链接hasMediaVolumeLevelPreference

objectProperty 断言需要通过 SWRL 规则从其他 User 方面推断出来。例如,如果用户有听力障碍,则MediaVolumeLevel需要设置为VolumeLevel_4.So:

这工作正常。但是,由于我还有其他 SWRL 规则也可以MediaVolumeLevel为相同的用户推断,例如:

并且 SWRL 仅支持单调推理,推理器将断言 VolumeLevels (VolumeLevel_4VolumeLevel_3)。

我需要的是一条规则,以某种方式,只有在没有更高级别已经断言的情况下才会断言偏好。在给定的示例中,即使hasContext(?u,NoisyRoom)为真,唯一断言的级别应该是VolumeLevel_4因为其他规则断言了它。

对此有何建议?使用 SWRL 可以实现我想要的吗?我正在使用 Protege 4.3 和 Pellet Reasoner

谢谢,MFV。

0 投票
0 回答
80 浏览

protege - 如何推断新的数据类型属性

我创建了一个简单的本体并正在尝试执行一个SWRLrule(请参阅 owl 文件)。我使用 Pellet 推理器,但没有找到推理的结果。我的规则是:规则:Patient(?x), hasBloodSugar(?x, ?y), hasBloodSugarLevel(?y, 90) -> hasPatientStateLevel(?x, "Normal")。请告诉我我做错了什么?

0 投票
1 回答
686 浏览

datetime - SWRL 和当前日期时间

我正在尝试使用与 protege 一起使用的 swrl 选项卡,我想知道是否有任何方法可以在规则中断言当前时间和日期。另外我需要知道我是否可以减去 2 个数据属性(类型:dateTime)。

先感谢您

0 投票
1 回答
127 浏览

owl - 如何根据基数对类中的个体进行分类

我创建了这个本体,它包含两个类 Car、Person 和对象属性 hasCar,其中 Person 作为域,Car 作为范围。

我想对 multiCarOwner 和 OnlyCar 人中的个人(Persons)进行分类,这是代表这一点的本体:

但是,当我创建个人时,推理器没有给我想要的结果,我希望“OnlyCar”类具有作为成员:“具有恰好 1 辆汽车的个人”。

推理的结果是部分的,因为 protegé 中的个人选项卡显示以下内容:

图 1

图 2

上面的图片显示“Bob”个人作为 CarOwner 成员,但我希望“bob”作为“onlyCar”类的成员。

-我面临 OWA 问题?- 有办法完成我想要的吗?

0 投票
1 回答
101 浏览

owl - SWRL - 使用课堂知识

我想使用在类之间建模的知识。例如,我模拟了一辆汽车,一辆公共汽车有 4 个轮子,一辆自行车有 2 个轮子。现在,我想表达一下自行车会翻倒(如果你不让它们保持平衡——不称职的司机)。如果我添加一个实例“CB450”,subClassOf Bike,规则应该启用推理:can(CB450,Tip)。方法:

我没有找到任何方法在 SWRL 或 Jena 规则中表达此规则。有没有可能?

我知道它可以以不同的方式建模,但我需要在实例中使用类关系作为规则。

我使用 Protege 5.16 和颗粒 2.3.1。请参阅下面的示例本体