问题标签 [pellet]

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.

0 投票
1 回答
157 浏览

rdf - OWL 和 DL 推理:爱神为什么不美?

我创建了一个基于以下内容的本体:

  1. 每个人都是美丽的,如果他/她的父母之一是美丽的

  2. 阿芙罗狄蒂是爱神之父

  3. 阿芙罗狄蒂很漂亮

因此我们希望爱神也很漂亮!然而,Pellet 推理机似乎并没有推断出这一点。如果我手动将 Eros 的类型设置为成功,它会接受它,但它不应该推断它吗?

我的本体就在这里(将扩展名更改为 .owl)。我还提供了 Protege 的屏幕截图:

类层次结构: 在此处输入图像描述 Eros: 在此处输入图像描述 推断的类层次结构: 在此处输入图像描述

我错过了什么?


编辑:

我可以看到 Eros 出现在这个 DL 查询中:

但不是在这个:

但是即使我说 OK some,我仍然希望看到美丽,因为我在第二张图片中看到 Child,其中 Child 是由推理器推断的。

0 投票
1 回答
44 浏览

rdf - 没有孩子和幸福结合在一起?

这个问题与此有关:OWL and DL 推理:为什么爱神不美?

我正在尝试创建具有以下功能的本体:

  1. 如果他所有的孩子都成功了,那么每个人都是幸福的。

  2. 阿芙罗狄蒂是爱神之父。

  3. 爱神是成功的。

这是我对快乐的看法:

在此处输入图像描述

我希望阿芙罗狄蒂不会快乐,因为开放世界假设(她以后可能会有另一个孩子),但是爱神呢?他没有孩子,他不应该幸福吗?

0 投票
1 回答
1308 浏览

eclipse - 如何在 Jena 3.0.1 (Eclipse) 中正确导入 Pellet 2.3.0?

我正在尝试在 Jena 3.0.1 中导入 Pellet 2.3.0 推理器(在 Eclipse 中工作)。为此,我在这里阅读了所有类似的问题(尽管有些已经过时)和 Apache Jena 网站上的常见问题解答。使用他们的代码,我总是在以下行中出现错误:

OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);

Jena 工作正常,我已经测试过了。我猜是我没有为 Pellet 导入正确的 jar 文件。我从 GitHub 克隆了整个 Pellet 存储库,我发现的唯一 jar 文件是 Protege 文件夹中的那个。在带下划线的文本中移动光标 Eclipse 告诉我要导入一些东西,但问题仍然存在。罐子是造成该错误的原因还是其他原因?

0 投票
2 回答
1397 浏览

java - Fuseki 如何添加 Pellet 推理机

我想在我的 Fuseki 2.3.1 中使用颗粒推理器

首先:我将 Pellet reasoner 添加到我的 config.ttl 中,如下所示:

所以现在我必须将 Pellet 的罐子添加到 fuseki

这个页面解释了如何将罐子(不是特别是颗粒)添加到 fuseki

https://jena.apache.org/documentation/permissions/example.html

所以我遇到了这条线

执行 $JAVA $JVM_ARGS -jar "$JAR" "$@"

我取消了这条线

java $JVM_ARGS -cp "$JAR:$APPJAR" org.apache.jena.fuseki.cmd.FusekiCmd "$@"

并取消注释以APPJAR=

现在我仍然需要知道下载Pellete 的罐子,我找到了这个链接https://datababel.wordpress.com/2013/06/26/fuseki-using-pellet-inference/说哪些是罐子,

我从 maven 下载了最新的可用版本,它们是:

颗粒-耶拿-ignazio1977-2.4.0-ignazio1977.jar

颗粒规则-2.3.6-ansell.jar

颗粒-el-2.3.6-ansell.jar

颗粒数据类型-2.3.6-ansell.jar

颗粒核心-ignazio1977-2.4.0-ignazio1977.jar

aterm-java-1.8.2-p1.jar

commons-collections4-4.1-javadoc.jar

commons-collections4-4.1.jar

我将它们添加到 fuseki-server 脚本中,如下所示:

(它们在 fuseki 的主目录中)

我运行 ./fuseki-server,我得到了这个错误

请提供任何帮助

提示:我不知道我尝试的是否正确,我只想将 Pellet reasoner 包含到 fuseki 中

更新

在 ignazio 告诉我我正在混合罐子之后,

我去了 Pellet git hut 并下载了 src 并使用 maven 编译并获取了 jars

然后我将我正在使用的 jar 更改为:

但我得到了这个例外:

0 投票
1 回答
706 浏览

owl-api - 猫头鹰 api + 颗粒 ignazio1977

我在运行 Pellet 和 OWL-API 时遇到问题。为了调试代码,抛出以下异常:

}

在下一行引发异常

OWLReasoner reasoner = reasonerFactory.createReasoner(ontology, new SimpleConfiguration());

POM.XML:

谁能给我有关如何解决此问题的任何提示?

我的类路径的主文件

System.out.println(System.getProperty("java.class.path")); 的结果

0 投票
1 回答
108 浏览

rdf - 为开发人员推荐的语义 Web 推理器是什么?

我正在寻找可以应用于大型数据集(关联数据)的语义 Web 推理器。我见过几个选项,Pellet 似乎是一个不错的选择,但它的最后一个版本是在 2013 年,它与 Java 的最后一个版本存在一些问题。考虑到社区支持、文档、支持的编程语言等,有人知道其他好的选择吗?

0 投票
1 回答
346 浏览

jena - 将 Pellet reasoner 与 Fuseki 服务器一起使用时出错

我尝试使用 Pellet reasoner 和 Jena 启动 Fuseki 服务器。我发现另一个有类似问题的线程,但是(1)我的错误消息不同,并且(2)看起来最终解决方案没有在引用的线程中提供。

问题是Fuseki说

目前尚不清楚为什么它指向这个根,我显然没有一个名为 as 的文件org.mindswap.pellet.jena.PelletReasonerFactory

这是我的config.ttl文件,我按如下方式启动 Fuseki 服务器:

配置文件

我从这里下载了所有必要的 Jena 库,并将它们添加到 Fuseki 根目录,如此处所述。最后,我修改后的 fuseki-server 脚本如下所示:

现在当我尝试启动 Fuseki 服务器时,出现以下错误:

0 投票
2 回答
651 浏览

java - 如何将规则转换为 SWRL 代码?

假设我们有以下规则:

Course(?x), teacherOf(?y,?x),worksFor(?y,?z) => coursePresentedInUniversity(?x,?z)

颗粒或 java 中是否有任何库可以将上述规则转换为 SWRL 代码?例如,以下内容:

我知道颗粒可以做相反的事情(使用reasoner.getKB().getRules()),但我不知道是否有任何东西可以将表示转换为 SWRL XML 代码。谢谢!

0 投票
1 回答
1245 浏览

java - How to add SWRL rules to an Ontology using Java or pellet?

Instead of using Protégé to add rules to my ontology, I want to use Java or pellet to add SWRL rule to the ontology.

For example, this is the rule that I want to import into my ontology:

[Course(?x),teacherOf(?y,?x),worksFor(?y,?z)] => [coursePresentedInUniversity(?x,?z)]

I want to add the following code into the ontology:

#xA;

Could anybody point me out to a sample code to do that?

Actually, I wrote the following code, but it didn't work!

#xA;
0 投票
1 回答
1158 浏览

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:greaterThanswrlb:lessThan的 SWRL 规则。对于测试,我添加了公理

    :查尔斯 :hasTension "10"^^xsd:float

并查询数据属性

    :Samii :hasAlert ?alert

但是当我查询本体时,我收到两个警报:一个是大于,另一个是小于。我认为我的规则格式正确,API 没有任何警告或错误表明内置函数未实现,所以我相信规则应该按我的预期工作。知道为什么我会收到意外警报吗?

资源

我的测试“主要”

核心:

和我的本体

我的测试用例的输出: