问题标签 [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.
artificial-intelligence - 人工智能推理系统
我想知道是否有任何系统/基础设施能够进行一些人类推理过程,例如:
Context: A is a pen
Question: is A vertical or horizontal
Reasoning process:
1. horizontal is anything parallel to the ground
2. A is parallel to the ground
3. A is horizontal
这个推理系统的最终目标是它能够生成具有一些预定义规则的事实。
先感谢您!
python - 在 Python 中使用 HermiT
我们有一个本体,但我们需要使用推理器 HermiT 来推断给定表达式的情感。我们不知道如何在 python 中使用和实现推理器,并且在互联网上找不到很好的解释。我们发现我们可以为此使用sync_reasoner(),但这究竟是做什么的呢?我们必须每次都手动调用推理器还是自动发生?
protege - 封闭世界推理师门生
通过“恰好 1 个限制”使个人成为一个类的“实例”似乎不适用于 protege 中的默认推理器。除了闭包公理或任何封闭世界推理器之外,还有其他方法吗?
owl - 猫头鹰用 OneOf 关闭世界
在以下本体中,我试图通过使用 OneOf 使 Boy 成为 Girl 的补充,但是使用 Fact++ 或 Hermit 我无法通过查询 Boy(Protege 5.2 DL 查询)来获取任何实例,有什么建议吗?
jena - 在开发基于知识的 QA 系统时,何时需要使用像 jena 这样的推理器?
在我看来 :
从 RDF 3 元组中查询答案,如果没有答案,则尝试推理器。
使用推理机离线完成知识图谱,节省在线查询时间。
owl - 传递属性的等价类
我有一个partOf
可传递的对象属性。
我想说的是:
a partOf Year
然后a
是一个Term
b partOf Term
然后b
是一个Course
同时:
a partOf Knowledge_Group
然后a
是一个Knowledge_Area
b partOf Knowledge_Area
然后b
是一个Course
为此,我用这个来表示b partOf Term or Knowledge_Area
thenb
是一个Course
:
但是当我运行推理器时,我将所有课程列为类的实例,Term
并且对于Knowledge_Area
:
如果我不使用or
and 设置 Course 仅等效于partOf some Term
or partOf some Knowledge_Area
(一次单独一个),我不会遇到这个问题。
有没有办法我可以说出我一开始解释的内容,而不是让课程被推断为类型Term
?
python - 在 Python 中使用 Hermit 推理器对本体进行一致性检查
我正在使用 owlready2 api for python 加载本体并使用sync_reasoner()函数检查该本体的一致性。但似乎它没有检查本体的一致性。虽然有错误,但什么也没显示!知道如何使用owlready2或任何其他api检查python中本体的一致性。
这是我的小代码:
这是我得到的输出:
- Owlready2 * 正在运行 HermiT... java -Xmx2000M -cp C:\Users\44999038\AppData\Local\Programs\Python\Python36-32\lib\site-packages\owlready2\hermit;C:\Users\44999038\AppData\ Local\Programs\Python\Python36-32\lib\site-packages\owlready2\hermit\HermiT.jar org.semanticweb.HermiT.cli.CommandLine -c -O -D -I file:///C:/Users/ 44999038/AppData/Local/Temp/tmptmcc_a79
- Owlready2 * HermiT 耗时 0.48622655868530273 秒
我修改后的代码:
我得到的输出 owl 文件:
owl-api - 如何使用 OWLReasoner 更新本体
我是 OWL API 的新手,我想知道是否有办法使用推理器(HermiT)拾取的所有新关系来更新本体。我找不到教程或太多文档,所以我假设调用
将对新关系进行分类。然后,我不确定如何翻译这些新关系以创建更新的本体。我知道如何手动迭代新关系并在它们不存在于本体中时添加它们,但我正在寻找一种更简单的方法来做到这一点。另外,我不完全确定上述代码是否为我解释了所有新关系,所以请告诉我是否应该进行任何更正。
owl - 解决 OWL 本体中的不一致问题
(感谢评论,我正在更新我的代码和问题。也许对其他人有用。)
更新
我在一个本体中进行了几个编辑过程,最后,我意识到我的本体不一致。现在我应该摆脱所有无法满足的课程。我搜索了很多,但没有解决不一致的代码。
按照本文的方法和Matthew Horridge的图书馆和this,我仍然在这个问题上苦苦挣扎。我更新了我的代码和问题,这是我的解决方案。还有什么建议吗?
我正在做什么来解决不一致的问题:
- 运行推理器以查找不可满足的类
- 从所有不可满足的类中,只找到根不可满足的类
- 为它们找到解释公理
- 对它们进行排名并选择用户应该删除(或重写)的公理
在我下面的代码中(使用其他现有的解决方案),我只需要实现排名函数(不一致解决器中的未解决问题)。
例如,对于我的本体,它有 25 个不可满足的类,其中只有 2 个是不一致的根源。这 2 个根类,有 11 个公理(我得到它们getExplanations
)
我遵循的一切正确吗?对公理进行排名有什么建议吗?
很感谢
rdf - OWL 推理器不适用于“最小”基数(但适用于“某些”)
我正在 Protege 中创建一个简单的本体,对基数进行推理存在问题。下面是本体的玩具模型。有、 和的三个实例A
,每个实例分别具有 1、2 和 3属性。、和也有三个实例。B
C
hasOwner
:Onwer
X
Y
Z
用 定义了两个类owl:equivalentClass
,一个是:Project
with owl:someValuesFrom :Owner
,一个是:JV
with owl:minQualifiedCardinality "2" ; owl:onClass :Owner
。
现在推理器正确地归类:JV
为 ; 的子类:Project
。并且它推断所有三个实例A
,B
和C
的实例:Project
,但没有一个实例:JV
。而从技术上讲,推理器应该将所有三个都作为实例:Project
,B
并且C
作为:JV
( 的实例,因为它们具有 2 和 3 个断言:hasOwner
属性。
谁能告诉我我错过了什么?这似乎也不是一个开放世界假设问题,因为我们正在处理最小基数。