【问题标题】:How to correctly import Pellet 2.3.0 in Jena 3.0.1 (Eclipse)?如何在 Jena 3.0.1 (Eclipse) 中正确导入 Pellet 2.3.0?
【发布时间】:2016-03-22 00:37:16
【问题描述】:

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

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

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

【问题讨论】:

  • 尝试使用 Jena 3.x 将旧版本的 Pellet 集成到 Java 项目中可能会很痛苦。经过进一步的搜索,我在 Github 上找到了另一个项目,它基于 Pellet,并提供对 Jena 3.x 的直接支持,没有任何复杂性。尤其是在使用 Maven 时,集成非常简单。看看这个:github.com/Galigator/openlletGithub 上的 Openllet:

标签: eclipse apache-jena pellet


【解决方案1】:

jena 版本 > 3.0 似乎与pellet 2.4 或更低版本不兼容。如果您查看pellet.jena.PelletReasoner 的依赖关系,您会发现它们使用了com.hp.hpl.jena。 Jena 3.0 及更高版本位于包 org.apache.jena 中。因此,颗粒依赖关系不是最新的。

您可以在 github (here) 上查看 oscii 的 pull request。他遇到了一些错误,但它们似乎只影响单元测试。对我来说,效果很好。

【讨论】:

  • 所以不能同时使用当前版本?与 Jena 和 SWRL 一起工作的人规定他们使用什么样的推理器?也许我应该改用 OWL API?
  • 据我所知,使用 Pellet 是在 Jena 中使用 SWRL 的唯一方法。此外,您可以使用 GeneralRuleReasoner 在 RDFS 图上使用 jena-rules,如 here 所述。正如我所说,您可以克隆 oscii 的 repo 并自己构建pellet-jena。它适用于 Jena 3.0 及更高版本。
  • 对第一个问题的另一种评论:您在protege文件夹中找到的.jar文件只是protege的插件。您将不得不自己建造pellet-jena。最简单的方法是通过 maven 构建整个项目(参见 m2e plugin for eclipse)。 --- 对您的评论:是的,您可以为此使用 OWL API。这是一个品味问题。我在 Jena 和 OWL API 下测试了颗粒的性能和结果,它们是相似的。您可以从maven central 下载pellet-owl-api 依赖项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 2020-12-29
  • 2013-06-03
  • 1970-01-01
  • 2013-06-25
相关资源
最近更新 更多