问题标签 [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 投票
0 回答
274 浏览

ontology - Protegé 4.3 上的 SWRL 规则用于初始化变量

我正在努力了解如何在使用本体(写在 OWL 上)和 SWRL 规则时初始化变量的值。为了测试这个初始化问题,我(在 Protegé 4.3 上)创建了一个名为 的测试类,该类Test的一个个体名为Indiv,一个属性名为Prop,具有Test域和int范围。之后,我创建了这样的规则:Test(Indiv)->Prop(Indiv,5). 如果我正确理解了先前的解释,现在Indiv应该5在其Prop属性上具有 a,但我看不到任何事情发生(可能这是另一个问题,我如何在 Protegé 上看到规则所做的更改?)

0 投票
1 回答
3707 浏览

owl - Protégé-OWL / SWRL 中的本体属性定义

我需要在 Protégé 中实现一个 OWL 本体,它包含两个类:s1s2,它们都是System类的实例。这两个类是由连接类连接起来的,连接类s1_s2包含属性omega。该属性必须根据以下法律取值:

欧米茄 = 1 * s1.complete

我如何在 Protégé 中实现它,这样我将来可以在 SWRL 规则中使用它?

具有类之间连接的类图片段

0 投票
2 回答
4236 浏览

rdf - SWRL 规则不推断新的对象和数据属性断言

我创建了这个包含两个类的本体:Blood-SugarServicesBlood-Sugar有两个数据属性:范围为 xsd:int 的hasValu和范围为 xsd:string 的hasStatut。对象属性triggerServiceBlood-Sugar作为域,将Service作为范围。

我想用这个规则推断一个数据属性断言:

Blood_Sugar(?x) ∧ hasValue(?x, ?y) ∧ swrlb:greaterThan(?y, 126) ∧ swrlb:lessThan(?y, 500) → hasStatut(?x, "High")

然后我想用这个规则推断一个新的对象属性:

Blood_Sugar(?x) ∧ hasStatut(?x, "High") ∧ Service(?s) → triggerService(?x, ?s)

但是,当我创建规则应适用的个体时,推理器并没有给我想要的结果。这是一个演示此行为的本体:

0 投票
2 回答
2677 浏览

owl - 根据 SWRL 规则为属性赋值(Protege 4.3 使用 Pellet 作为推理器)

我的问题与 SWRL 规则有关,实际上已经被另一个用户问过(请参阅Protégé-OWL / SWRL 中的本体属性定义)。尽管如此,在按照如何让它工作的说明之后,我还是没有成功。

在我的本体中,我必须处理一些复杂的时间事实(与时间间隔等有关),因此我导入了Time Ontology。在解决实际问题之前,我先考虑一个简单的示例,测试如何根据 SWRL 规则为数据属性分配值。这个简单的例子处理一个类Person。还有一个BirthYear类(Time Ontology 中Instant类的子类)。对象属性BornInYear,域Person和范围BirthYearPerson与他/她的出生年份联系起来。我想计算这个人当年的年龄,因此我制定了这个 SWRL 规则:

人(?p) ∧bornInYear(?p, ?birthYear) ∧ 减法(?age, 2014, ?birthYear) → 年龄(?p, ?age)

在创建Person类的个人并断言他/她的BirthYear具有 value"1977"之后,我希望 Pellet 计算出这个人的年龄是37。这不会发生。知道为什么吗?SWRL 规则是否正确?(为了知道该值37是否被断言到数据属性age,我查看了个人 p 的“属性断言”视图。我还确保在推理器首选项中选中了“对象属性断言”复选框.) 我的示例本体如下所示:

0 投票
0 回答
230 浏览

semantic-web - Protege 4.2 和规则编辑器

我正在使用 protege 4.2 并使用带有颗粒推理器的规则编辑器,尝试在规则编辑器上编写规则,但无法理解我如何推断或执行它们并找出一些结论,比如我的规则是如果人有症状纤颤和肌肉疼痛,那么他患有疾病muscle_pain 如何使用这里的规则来写纤颤,肌肉疼痛和肌肉疼痛都是个体,但人是阶级

0 投票
1 回答
767 浏览

java - 通过OWL API访问本体

我想使用 Eclipse 通过 OWL API 访问我的本体和 SWRL 规则。任何人都可以提供可以告诉我该怎么做的确切程序吗?

我尝试了以下代码,但似乎没有得到任何响应。请记住,我的 Java 技能很差。

我需要一个关于如何处理和解决这个问题的确切程序。

我已经拥有的代码是:

0 投票
1 回答
784 浏览

protege - SWRL 规则内的析取

我正在使用 Protege 4.3 来制定一些 SWRL 规则。是否可以编写一个包含析取的规则例如:

表示所有年龄 < 10> 30的人

0 投票
1 回答
547 浏览

reasoning - SWRL 规则中的相等指令不起作用

我正在使用 Protege 4.3 来制定一些 SWRL 规则。

我有一个名为“Person”的类,一个名为“name”的属性。

我从班级中创建了具有不同名称的个体,有些名称相同。

我想编写一个规则来创建名为“sameName”的属性实例来绑定具有相同名称的人。所以我写了以下规则:

该规则给出了正确的结果,但包括每个人与他自己,意味着也将每个人与他自己进行比较,所以我添加了 notEqual(?p1,?p2) 来强制推理器不要像这样将一个人与自己进行比较:

结果是空的。我错过了什么?

0 投票
1 回答
34 浏览

semantic-web - 语义网络推理器和动态规则注入

是否有任何即时接受规则(SWRL)的语义网络推理器(例如 Pellet)?或规则必须在启动推理器之前进行硬编码

0 投票
1 回答
428 浏览

java - 使用 OWL API 发出 SWRL 请求

我正在处理使用 Protégé 生成的 OWL 文件。我在我的 Java 代码中使用 OWL API。我有一组定义的类,例如:

SpeciesA ⊑ Species ⊓ ∃hasPart.Fruit ⊓ =hasShape.round SpeciesA
是子类 Species,hasPart 一些 Fruit,hasShape 值为 Round。

这一切都在 Protégé 中定义,然后导出到 OWL,然后加载到我的 Java 本体中。如果我创建一个物种的个体 x 并且我拥有这些属性

  • hasPart(x,FruitA)
  • 有形状(x,圆形)

我检索我的个人所属的每个类(在这种情况下,这应该包括 SpeciesA)。

我完全不确定我应该使用什么:我可以使用 SWRL Species(?x)^hasPart(?x,Fruit)^hasShape(?x,"$Round$") 还是应该使用 Reasoner ?

我真的对Protégé“等同于”和个人财产感到困惑。