问题标签 [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 - SWRLb - 大于和小于触发
我在使用 SWRL 规则时遇到问题。我有一个机器人应该在出现两种异常情况时通知人类。对于我的测试用例,我使用了用户的压力:
如果张力小于 14,则机器人提示张力过低:
(:hasTension :Charles ?x) ∧ GreaterThan(?x, "14.0"^^xsd:float) → (:hasAlert :Samii "你的压力很大"^^xsd::string)
如果张力大于 14,机器人会提示张力过高。
(:hasTension :Charles ?x) ∧ lessThan(?x, "14.0"^^xsd:float) → (:hasAlert :Samii "你的张力很低"^^xsd::string)
我正在使用带有颗粒推理器的 OWL API(颗粒的 openllet 叉)。为此,我有使用内置swrlb:greaterThan和swrlb:lessThan的 SWRL 规则。对于测试,我添加了公理
:查尔斯 :hasTension "10"^^xsd:float
并查询数据属性
:Samii :hasAlert ?alert
但是当我查询本体时,我收到两个警报:一个是大于,另一个是小于。我认为我的规则格式正确,API 没有任何警告或错误表明内置函数未实现,所以我相信规则应该按我的预期工作。知道为什么我会收到意外警报吗?
资源
我的测试“主要”
核心:
和我的本体
我的测试用例的输出:
owl - Protege inconsistent ontologies warning
Followed this intro youtube.com/playlist?list=PLea0WJq13cnAfCC0azrCyquCN_tPelJN1 to create the ontology. It is a little reduced http://prntscr.com/bo4l3w and I added canBeTutor (meaning somebody can become tutor for somebody) object property on my own. As far as I understand, I can add SWRL rules and then launch reasoner to create new knowledge. So I added prntscr.com/bo4lk7 . I started Hermit reasoner prntscr.com/bo4lqx . But obtained inconsistent ontologies warning prntscr.com/bo4lu0 . Clicked Explain button and got the following explanation http://prntscr.com/bo4lyg . My onto is here synoparser.ru/onto/protege.owl 1. Could you please tell what that mean? 2. Just for general understanding. I read that reasoner can create new knowledge. Does that mean just relations, or also individuals and classes? 3. Where can I find readoner added knowledge in Protege 5 ?
owl - SWRL:将规则限制为特定的个人
假设有一个类 "Food" 包含个人 "Grain" 和 "Fruit" 。如果我想选择 Grain,我可以将food_type
数据属性分配给个人
并运行此代码:
但是如果我想在不需要 财产的情况下做这项工作(选择Grain
个人)怎么办?food_type
是否可以仅通过名称直接指向特定的个人?
owl - 如何在具有一种特殊关系的本体中定义一个类?
我想定义两个类,它们的成员是节点,它们是几个链接的范围。
在第一类中,其中一个链接具有类型Highway
,而在第二类中,它们都不是类型Highway
。
我可以使用 SWRL 制作第一堂课,但第二堂课是不可能的,因为似乎没有否定这样的表达。
我可以使用通用类公理来定义它们吗?
就像是:
drools - Protege 中规则引擎的用例是什么?
在使用 SWRLTab 和 SQWRLTab 在 Protege 中编写新规则时,我们在 SWRL 中定义约束规则,并使用 FaCT++、Pellet 等语义推理器或 Drools 或 Jess 等规则引擎使用 SQWRL 进行查询。但是由于 Protege 限制了它的功能,我们不能使用 Drools/Jess 来定义复杂的本体规则或用他们自己的编程语言编写规则。
我的问题是:当我们无法使用 Drools 和 Jess 的完整功能时,Protege 中的目的是什么?
rdf - SWRL 到猫头鹰公理
我是 OWL 的新手。我需要知道如何将 SWRL 中的以下规则转换为 OWL 公理。
规则:
Taxon(?x), Taxon(?y), family(?y, "Myctophidae"), scienceName(?x, "Mirounga leonina") → is_predator_of(?x, ?y)
在哪里:
“Taxon”是一个类,“family”和“scientificName”是一个数据类型属性,“is_predator_of”是一个对象属性。
我阅读了一些关于如何解决转换的帖子,但我无法在 Protégé 中完成,即使使用 ROWL 中的插件,任何贡献都将受到欢迎。非常感谢!
owl - SWRL 是否支持个人枚举声明?
我在 OWL 本体中做一些 SWRL 规则,如下所示:
H350
, H350i
,H400
和H401
是一些有名字的个体。正如我们所见,这些 SWRL 规则的模式是相似的。所以我认为也许我们可以只用一条规则替换这些规则,如下所示:
我在 Protege 的“规则”选项卡中尝试了这种语法,但没有奏效。SWRL 是否支持这样的单个枚举语句?
protege - swrl 规则的 else 分支
我想问是否可以在SWRL中表达规则的else分支?我知道它可以表达 p->q 但我希望能够断言 r 如果 non(p)
例如 HeavyPrecipitation(?x) -> hasObservationTag(?x,FalsePositiveOutlier)
现在我想说别的 hasObservationTag(?x,TruePositiveOutlier)
如何才能做到这一点?
谢谢
java - 在 OWL API 中结合推理器以支持 OWL DL + SQWRL
我需要在 OWL 2 DL 本体上计算一些 SQWRL 规则。
问题是:
- 当前的 OWL 2 DL 推理器仅支持 SWRL 内置函数
- 唯一的 SQWRL SWRLAPI 引擎是 drools-swrlapi,它是 OWL 2 RL,无法处理我的 DL 本体
我考虑两种可能的解决方案:
- 在 Java 中直接使用 OWLAPI 在 OWL 2 DL 推理器(如 Pellet)之上执行 SQWRL
- 不知何故同时使用两个推理器(Pellet 和 Drools-SWRLAPI)并避免使用静态 Java 代码
所以我的问题是:是否有可能将两个推理器结合起来,这样它们就不会发生冲突?
喜欢
- 使用 DL 推理器进行预计算推理
- 在 Drools-SWRLAPI 上运行生成的本体以执行 SQWRL
- 将其放回 DL 推理器并验证/计算更多推论
- 环形
谢谢!