问题标签 [reasoner]
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 - 为什么 OWL-DL 推理如此高效?
我一直很难理解为什么OWL-DL 推理在实际应用中如此高效。
例如,我经常使用 Fact++ 推理器处理的 ALCQI 片段中的本体,众所周知,概念可满足性是 PSPACE-complete,逻辑蕴涵是 EXPTIME。
在这里,幻灯片 29 明确指出:
最先进的深度学习推理系统基于画面技术而不是自动机技术
+更容易实施
-不是计算最优的(NEXPTIME,2NEXPTIME)
-->系统高度优化
尽管计算复杂度很高,但在实际应用中的性能却出奇的好:
- 包含数千个概念和数百个公理的知识库
- 优于专门的模态逻辑推理器
一方面证明它们在计算上不是最优的,另一方面它们在现实世界的应用程序中即使对于大量输入也是有效的,但我无法在网上找到解释为什么这是可能的以及如何处理的资源。
明确地说,我错过了我真正想要理解的这一步。
这里有人有想法吗?
java - 使用 Pellet 推理器的 Java 中 OWL 本体的不一致性和可满足性
我正在尝试查看本体是否一致。本体可以是一致的,但仍然可能有一些无法满足的类。我们称它为案例 A。
但我的问题是,当本体不能通过一致性测试时,即不一致(案例B)。我的问题是,即使在Case B中我也无法获得无法满足的本体类。
我的最终目标是处理不可满足的类以对其进行一些更改,并将不一致的本体变为一致的本体。所以,我可以在案例 A中实现我的目标(我可以访问无法满足的类),我处理它们并修改其中的一些。但是,现在,我能为案例 B做些什么呢?
以下代码显示了这两种情况。
对于案例 B,我该怎么办?在这里,它写道:
如果要查找无法满足的类,只需对所有类调用 isSatisfiable 方法即可:
reasoner.isSatisfiable(className);
我将以下代码放在案例 B中:
但我收到一个错误,如:
那么如何处理案例 B中的本体呢?
更新
根据@Ignazio 的评论,在我的问题代码中,在 //CASE B 的位置,我调用了这个新函数:
即使有了这个新功能,也找不到不满意的课程!
我还尝试了@Ignazio在此处发布的代码。对于那里给定的示例,该代码将在几秒钟内运行,但对于我的小型不一致本体,即使在 1 天后,也不会打印任何结果。
还有更多想法如何获得不满意的课程以及他们的理由集吗?
java - 如何理解推理程序 ProgressMonitor 的输出?
我是语义网领域的新手,我正在尝试比较更多的推理者。这是我的代码:
我的输出是这样的:
有人可以解释一下这是什么意思吗?是否有一些关于进度监视器输出的文档?第二个问题:我怎样才能得到推断类/公理的数量?谢谢你的帮助,丽塔
utf-8 - 描述逻辑 UTF-8 解析器
为了加深我对 OWL 和描述逻辑的理解,我很失望我找不到可以将 DL 转换为 Web 本体语法的描述逻辑解析器(“DL German syntax”,如果我没记错的话)。
为了熟悉符号,在 Windows 上,我使用 AutoHotkey 将 UTF-8 符号发送到编辑器(例如:Send {U+2200}
writes ∀
)。这适用于 Sublime Text、VSCode 或 Notepad3 等等,当然还有支持字体,但我可以更进一步,直接使用 DL Syntax 中的推理器或通过转换器来回使用至少一种可用的语法,如曼彻斯特符号 ?
semantic-web - 推理器的实现不适用于稍大的本体。我该如何解决?
我是语义网领域的新手,我正在尝试比较更多的推理者。这是我的代码:
当我尝试在一个小本体(40 个公理)上运行它时,我的代码运行良好。相反,如果我尝试在稍大一点的本体(750 个公理)上运行它,代码将继续运行数小时,但从未达到实际实现。事实上,推断的公理文件仍然是空的。我认为这是由于内存过载或一些隐藏的缓冲区。我希望你能帮我解决这个问题。谢谢,丽塔
ontology - 在 OWLAPI5 中实现 Fact++ 推理器
如何在我的 OWLAPI5 应用程序中添加 Fact++ 推理器?我在 pom.xml 中添加了 Fact++ 依赖项,但是当我运行时,我收到了这个异常:
非常感谢你的每一个建议,丽塔
c# - dotNetRDF 的 RDFS Reasoner 是否支持多个超类类型推断?
我观察到,当使用 StaticRDFSReasoner 或仅使用 RDFSReasoner 时,如果我有这样的模式(TURTLE Notation):
像这样的数据,具有 A 类的实例“a”:
然后我只得到一个推断的 Triple :
但是由于 A 应该是 B 类和 C 类的交集的近似值,所以我也应该得到以下 Triple inferred :
因为“a”应该是 B 类和 C 类的成员。
我在这里查看了 Reasoner 的实现,但仍然无法弄清楚为什么它不起作用:
也许这里有人可以帮助我为什么这不起作用。如果我切换 B 和 C 的顺序,则推断出“a”是 C 类的成员。
parallel-processing - 如何并行化 OWLlink 服务器以进行 Konclude 推理?
在一些文章中,我读到他们将 Konclude 和 Elk 配置为具有不同线程的并行推理器。如何并行化 Konclude 推理?有人可以链接我有关它的有用文档吗?非常感谢丽塔
model - 我必须使用哪个推理器来验证给定的示例?
我已经使用 Jena Lib 创建了一个模型,我想根据特定的 schema.rdf 对其进行验证。但是,当我开始验证时,它说一切正常,但我的模型中存在严重的架构违规,如下所示。在我的示例中,问题是现在我有一个具有属性“has-component”但“has-component”作为属性的主题在“#Component”-class 只允许的架构中。
我现在的问题是:验证后我可以使用哪个推理器来获取错误消息?
PS:我用所有不同的参数尝试了来自耶拿的几乎所有不同的推理器,但它仍然不起作用。
我的代码是:
来自 data.rdf 的示例:
来自 schema.rdf 的示例:
ontology - 为什么 Protegev5.5 的 HermiT 或 Pellet Reasoner 没有检测到本体中的不一致
我使用对象属性O
将 ClassA
与 Class相关联B
。我也分别有实例a
和b
类。我使用相同的对象属性来关联实例和.A
B
O
a
b
同样,我使用相同的对象属性O
与 链接a
,c
其中c
是 Class 的一个实例,C
它不与类链接A
或B
使用任何对象属性。推理者仍在证明本体是一致的。我的问题是“这不应该被推理者标记为不一致吗?请告诉我你的答案,答案是'是'还是'否'以及你答案背后的原因”?
提前致谢。