问题标签 [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.
rdf - RDF/OWL 知识库:Python 还是 Java?
我正在尝试建立一个知识库,它有一个本体,我想在其中添加更多数据,我使用这些数据来进行图形查询。我还想创建某种知识图来从文档中提取数据并将其放入知识库。
我一直在将 python 用于 NLP,但是我使用 Java 的次数不多。
我与 rdfLib 合作过,似乎有一些方法可以通过在图上创建特定查询来摆脱推理,但是,似乎 DB 选项和推理者压倒性地偏爱 Java。
我想问一下您对此有何看法,我应该从头开始使用 Java 还是应该坚持使用 Python。还有其他我应该记住的注意事项吗?
我很欣赏你的评论!
owl - OWL Ontology:如何编写补充类定义?
推理器未能将类别分类为定义为另一个类别 B 的补充的类别 A。
我在 protege 5 中创建了一个最小的 OWL 本体示例(基于著名的比萨示例)来说明这个问题。
有两种披萨类:Americana 和 Soho,前者有肉馅,后者有蔬菜馅。然后有两个类别:VegetarianPizza 定义为带有蔬菜配料的比萨饼,NonVegetarianPizza 定义为那些不是 VegetarianPizza 的比萨饼。Soho 被正确归类为 VegetarianPizza,但 Americana 没有被归类为 NonVegetarianPizza。
有人可以解释什么是错的吗?
这是代码:
owl - Protege 不将类的子类推断为域
我对 Protege 感到困惑。可能这是我应该在我不做的地方配置的设置。
假设我有一个对象属性hasFriend
。此对象属性的域和范围都是Person
. 现在Person
有两个子类:Man
和Woman
.
问题是当我启动推理器 HermiT(Protege 中的默认推理器)时,我希望看到它添加Man
和Woman
作为域和范围,hasFriend
因为它们是Person
.
有什么特别的原因我没有看到这些推论吗?
sparql - 如何持久保存自动生成的 OWL 规则,或者至少不要一次将它们全部保存在内存中?
我有一个包含大约 900 万个三元组的数据集,并且启用了 owl reasoner。
当发送第一个 sparql 查询时,我在日志文件中得到一个看似无穷无尽的行流,看起来类似于:
这些行一直出现,直到我的 JVM 内存不足并且 fuseki 服务器停止运行。
使用较小的数据集,我可以看到规则只生成一次。除非我退回服务器进程,否则后续查询不会重新记录这些规则的创建。
有没有办法只生成一次这些规则并将它们持久保存在数据库中?或者其他方式来避免一次将它们全部加载到内存中?
我非常感谢我能得到的任何帮助。
java - Virtuoso Jena 程序中的推理器
我正在使用 Virtuoso Jena Provider 来查询上传到 Virtuoso 上的图表,但我也想在我的查询中添加推理。
我已经尝试过这段代码,但我得到了一个错误.execSelect();
在线
这是我到目前为止尝试过的代码。
向我的图表添加推理器的正确方法是什么?如何查询结果集?
这些是我正在使用的版本: Jena:3.1 JDBC:4 Virtuoso:6
编辑我从https://github.com/stardog-union/pellet 安装了 Pellet 推理器,但我只能正确推断存储在我的电脑上并加载到 Jena 上的 .owl 文件,但我仍然无法推断作为大师图上传的相同文件.
jena - 如何使用耶拿 fuseki 推理器计算三倍数?
我正在编写一个规则文件(Fuseki Generic Reasoner),期望计算某个主题的 rdf 对象数,以便我可以使用该数来决定是否创建一个新的三元组。但是,我找不到可行的方法来处理它。
使用 sparql,很容易对对象进行计数。
但是我似乎很难用规则文件来实现操作。
这是 rdf 龟文件:
我的期望(伪代码):
所以我可以得到三倍 (foo:bar1 foo:is 'true') 和 (foo:bar2 foo:is 'false')
xsd - 有效 xsd:DateTimeStamp 猫头鹰中的文字值
我已经在我的本体中包含了一个特定data property
的类型xsd:DateTimeStamp
,因为我正在查看这个网站,它提供了该格式http://www.datypic.com/sc/xsd11/t-xsd_dateTimeStamp.html的所谓可接受的文字值的示例
我将建议的两个文字值分别复制粘贴到我的数据属性中:
但不幸的是,隐士和颗粒推理者都抱怨那里的不一致。有人可以向我解释为什么这是错误的并提供一个可以通过推理器的有效文字值示例吗?
我正在使用 OWLTime 本体,更准确地说,这是“in XSD Date-Time-Stamp”数据属性,我使用的工具是 protege 5.5.0
fuseki - 如何将推理机添加到 fuseki 服务器?
我对这个概念太陌生,我不知道如何将推理器添加到我的文件中,查询执行肯定会给我一个错误的答案,我找不到一个好的资源来解释如何所以请帮忙。
这是我的配置 ttl 文件
这是我正在运行的查询:
例如,这就是我想得到的:
但这就是我得到的:
注意:在 fuseki 之前,我在 tomcat 服务器上运行并且我得到了正确的答案,但现在我不是,我认为这与推理有关!
jena - 为什么 Jena fuseki 对猫头鹰的推理没有反应?
我想使用 Jena Fuseki 为一些本体文件构建一个 SPARQL 端点。和我的 fuseki 配置如下:
我将 fuseki 作为独立服务器运行。当我关闭 OWL 推理器时,它运行良好。但是一旦启用 OWL 推理器,服务器对查询没有响应,即使查询像
没有响应,然后抛出异常:java.lang.OutOfMemoryError。但是,RuleReasoner 运行良好。而我的ttl文件有大约1500000个三元组,是不是数据规模太大,OWL Reasoner无法推断?所有的工作都是在我的电脑上完成的,有没有朋友可以帮帮我?谢谢
java - 基数限制 HermiT 中使用的非简单属性
我正在尝试使用 HermiT 在 Java 中推理我的本体,但它会导致如下错误:
我是 Java 推理的新手。这是什么意思?