问题标签 [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.
owl - 重新分类使用 SWRLJessTab Protege 断言的实例
我正在使用 Protege 3.4,我构建了我的本体,并使用 SWRL 和 sqwrl built ins 使用 SWRL 规则对其进行了扩展。规则对本体类的实例进行分类;RHS 是一个实例的类断言。它工作成功,但是当我更改 LHS 中原因的值时,没有进行重新分类,实例被断言为同一个类
为什么会这样?如何重新分类实例?
例如:SWRL 规则: 1. Message(?m) hasInterest(?m,?i) hasCategory(?m,?c) sqwrl:makeset(?s1,?i) sqwrl:makeset(?s2,?c) sqwrl:交点(?s3,?s1,?s2) sqwrl:size(?n,?s3) swrlb:greaterThan(?n,0) -> Ham(?m)
- Message(?m) hasInterest(?m,?i) hasCategory(?m,?c) sqwrl:makeset(?s1,?i) sqwrl:makeset(?s2,?c) sqwrl:difference(?s3,?s1 ,?s2) sqwrl:size(?n,?s3) swrlb:greaterThan(?n,0) -> 垃圾邮件(?m)
因此,例如,一旦消息实例被归类为 ham ,每当我更改 i 或 c 的值时,它将始终是 ham 。
owl - SWRL 选择正确的值?
我正在尝试创建一个拉丁方格的本体并让推理器解决它(从一个简单的 2x2 方格开始并从那里开始)但没有取得多大成功。
我遇到的主要问题是以查看正方形缺少哪些值的方式编写规则。我使用 dataProperty hasValue作为整数。就像是:
提前致谢。
sparql - 根据 SWRL 规则更新数据类型属性值
嗨
,我在 protege 4.3 中为 users 制作了一个本体,假设我的类 user 的本体子类中的 1 个是:
1-“Interest”,而“interest”类有子类:“onlineGaming”、“onlineMovie”、“onlineshoping”。 ..每个子类都有个人:每天,每周一次,每月一次)
,并且我为每个用户都有3个数据类型属性:(互联网速度,互联网流量,价格)
基于问卷收集的数据
我只需要从这个本体推断这3个数据类型的重要性属性因素是针对互联网用户的,
我需要在 protege 中制定一些 SWRL 规则来推断用户兴趣权重,例如,如果用户每天都做 onlineMovie,则为 internetTraffic 数据属性添加 +3。
我应该如何在 SWRL 规则中正确地写这个?
我的第二个问题是如何为 sparql 中的每个用户获取这 3 个数据类型属性的值并保存结果?
谢谢你的帮助
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)))
owl - 在 Protege 上创建的本体是 OWL FULL 还是 OWL DL?
我对 Protege 上的本体有疑问。当我们在 Protege 上创建一个带有推理规则的本体时,这个本体是在 OWL FULL 中还是在 OWL DL 中?
sparql - 序数尺度的公理化或基于规则的定义
我想创建一个序数规模类,成为生物医学研究本体中“ ”的兄弟类categorical value specification
粗略地说,量表中的每一项都比上一项“多”。
我想我需要在我的序数比例实例中指出每个项目的等级或顺序。另外,我想强制规定顺序量表的实例在每个等级上只有一个且只有一个项目,没有间隙。因此,带有项目排名的序数量表1, 2, 3
会通过推理,但带有排名1,2,2
或的量表1,2,4
会被认为是不一致的。我想它可以在 OWL 或 SWRL 中实现?我只是不知道怎么做。
似乎这些人已经将其设想为 ordered rdf:lists
,但我还没有看到实现。
owl - 使用 OWLAPI 对 SWRL 规则进行 OWL-XML 序列化
OWLAPI 用来序列化 SWRL 规则的 OWL-XML 序列化格式在哪里指定?例如,通过使用 Protege 序列化一个简单的规则(据我所知,它使用 OWLAPI),我得到以下代码:
这与 SWRL 规范 [1] 不同:
并根据 [2] 中介绍的建议:
谢谢![1] https://www.w3.org/Submission/SWRL/ [2] http://dl.acm.org/citation.cfm?id=2890050
protege - SWRL 除以十进制
似乎 SWRL 除函数不接受小数。这是我的查询:
这是 protege sqwrl 选项卡中的输出错误:
如何在 swrl 语法中进行十进制除法?
sparql - Protege FuzzyOWL2 插件模糊查询
我正在学习模糊本体。有几种不同的方法,如 F-swrl 、owl2 模糊插件、 fsparql。但 owl2 模糊插件似乎是最著名的模糊化插件。
一些研究人员只使用了 SWRL,而另一些研究人员则使用了 SWRL 和fuzzyowl2 插件的组合来实现模糊本体。
我下载了 blurWine.owl,其中包括许多类、数据/对象属性和数据类型。但是没有模糊查询的例子。
我不知道查询是否应该在模糊推理选项卡或 SWRL 规则中运行。我需要一个简单的模糊查询示例,使用这个本体来更好地理解模糊本体。