问题标签 [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 回答
236 浏览

jena - 耶拿;listDeclaredProperties 语义

让我们考虑一个

使用 Jena,我试图列出CSub. 我认为P不能将其列为CSub. 我的理由:P是 的声明属性CSubiff CSub是 的域P, from (1)CSuper是一个域P,并不意味着它CSub也是一个域;(1) 表示如果(x, y)P,那么xCSuper,显然x可能(不是)CSub

令人惊讶的是,即使使用 OntModelSpec.OWL_DL_MEM_RULE_INF 或 Pellet ,Jena 也在使用方法时P作为声明属性列出!我错过了什么吗?CSublistDeclaredProperties

更新: 某个类的声明属性是什么意思?这是否意味着属性是它们的域的类!

0 投票
1 回答
821 浏览

java - 耶拿;属性的域和范围因所选的 Reasoner 而异

使用 Jena,我正在尝试获取属性的域和范围。

让我们考虑以下本体

我们可以看到,A1 是 P 的域,B1 是它的范围。根据 OWL 语义,我们可以推断 A 也是 P 的域,B 也是它的范围,请参见此处

但是,将 Jena 与推理器一起使用并不总是给出预期的行为。我们区分两种情况,第一种是使用 Pellet reasoner,第二种是使用 OWL_DL_MEM_RULE_INF

代码

使用 Pellet:这将提供以下输出:

使用 OWL_DL_MEM_RULE_INF: 这给出以下输出:

问题:

1-为什么会发生这种差异?

2-正确的结论是什么?

3- 有没有办法强制 Pellet 给出类似于 OWL_DL_MEM_RULE_INF 的结果?

0 投票
2 回答
1042 浏览

jena - OWL-API 4.0.1 兼容的颗粒推理机?

我正在使用 OWL-API 版本 4.0.1 和 Pellet reasoner 版本 2.3.6,如下面的从 pom 文件 maven 依赖项中提取的部分

当我编译项目时,我发现如下错误:

com.google 的 org.semanticweb.owlapi.OWLAPIServiceLoaderModule.configure(OWLAPIServiceLoaderModule.java:52) 的 org.semanticweb.owlapi.OWLAPIServiceLoaderModule.loadFactories(OWLAPIServiceLoaderModule.java:99) 的线程“main”java.lang.AbstractMethodError 中的异常。 com.google.inject.spi.Elements 上的 inject.AbstractModule.configure(AbstractModule.java:62)$RecordingBinder.install(Elements.java:230) 上 com.google.inject.spi.Elements.getElements(Elements.java: 103) 在 com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136) 在 com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) 在 com.google.inject.Guice .createInjector(Guice.java:96) 在 com.google.inject.Guice.createInjector(Guice.java:73) 在 com.google.inject.Guice。createInjector(Guice.java:62) at org.semanticweb.owlapi.apibinding.OWLManager.(OWLManager.java:43) at sematicdm.parser.CreateIndividualsClass.main(CreateIndividualsClass.java:73)

在类 createIndividualsClass 中引发错误的行如下:

是兼容性问题吗?如果是这样,我应该在 pom 文件中包含什么版本的颗粒共振器?

0 投票
2 回答
130 浏览

jena - Jena 和 Pellet 搜索标签返回错误

我已经为此工作了几个小时,试图让 Pellet 与 Jenna 一起工作。现在我终于明白了它的工作原理。查询类和推断类进展顺利。例如:

但是,当尝试使用此查询标签时:

返回:

我的完整代码如下:

Jena 中没有查询字符串吗?甚至在我使用 Pellet 时也不行?有没有其他方法可以使用 Jena 和 Pellet 查询我的本体的替代标签?

0 投票
1 回答
908 浏览

java - Jena Sparql 只返回实例的直接超类

我在 Java 中使用 Jena 和 Pellet 作为推理器。现在我需要查询特定URI的类,但问题是我事先不知道它是什么样的实例,在什么样的类层次结构中,所以我不能使用过滤选项。使用时:

它返回所有超类。这个特定示例的层次结构如下所示:

每个类都有多个实例。我不知道我事先要查询什么样的实例。但是,例如,假设我正在查询属于 Dog 类型的实例的 URI。它还将返回 Animal 和 Thing。但我只希望它返回 Dog。那可能吗?使用 LIMIT 1 仅返回直接超类。

0 投票
0 回答
319 浏览

eclipse - 在动态 Web 项目中使用 Jena 读取本体

所以,我有一个带有 Jena 的 Java 项目,它读取一个本体(有几个导入),我正试图将它移植到一个动态 Web 项目中。

问题是,在 DWP 中,程序无法读取本体导入。我不知道为什么,但它总是com.hp.hpl.jena.shared.DoesNotExistException在尝试阅读第一个导入时给我。错误堆栈跟踪:

该项目与原始项目完全相同。

我在 Eclipse 中使用 Apache Jena。

0 投票
2 回答
1329 浏览

jena - 将 Pellet Reasoner 导入 Jena

我正在尝试将 Pellet reasoner 导入 Jena,Pellet 的最新版本是2.3.1,我找不到任何要导入的 .jar 文件。另外,我按照Wiki/FAQ在 Mac OS 下的发布文件夹中运行 bash 文件。错误信息显示为:

错误:无法访问 jarfile lib/pellet-cli.jar

看来我必须自己导出一个jar文件并将jar导入我的耶拿工作场所,我做到了,但是当我使用时出现Java异常OntModel model = ModelFactory.createOntologyModel( PelletReasonerFactory.THE_SPEC );

异常消息是:

我该如何解决这个问题?提前致谢。

0 投票
2 回答
3862 浏览

protege4 - 无法下载 Protege 4.3 的 Pellet 插件

我希望将 Pellet reasoner 插件添加到 Protege 4.3。为此,我转到File-> Preferences -> Plugins -> Check for Downloads Now。但是,我在那里找不到 Pellet reasoner 插件。

我希望有 Pellet 推理器,因为我想添加一些包含 SWRL 数学内置插件的 SWRL 规则(例如内置的 swrlb:mod)。此外,使用 HermiT 推理器 1.3.8 存在一个错误,即不支持提供的内置 atom。

请帮助我解决这个问题,因为我是 Protege 的新手。

0 投票
1 回答
4026 浏览

rdf - SPARQL 仅搜索 xsd:integer,无小数

使用以下查询:

还返回altLabel具有xsd:decimal5.x 的 URI,我真的需要它只返回?uri具有.xaltLabel的URI xsd:integer。有没有办法做到这一点?

0 投票
1 回答
106 浏览

performance - 评估使用推理器的算法的性能

我开发了一种算法(java 代码),它可以在 OWL-DL 本体中的两个给定类之间找到特定路径(属性链)。这是本体

实际上,Pellet 推理器花费了太多时间来响应我的查询,大约 5-7 秒来检查一个类是否通过属性F与一个类一对一相关,但是这个查询在我的算法中是重复的,如果我在类似的类上重新运行它,它的执行速度会更快(我认为这与内存模型或 RAM 内存缓存有关......)。但是第一次大约需要 4-5 分钟(取决于完成的检查次数)。Dr

这个瓶颈与本体和推理器本身有关:(如果我在没有推理器的情况下运行它,它会立即执行!)

问题:

1-我可以在不考虑推理时间的情况下评估性能吗?即类似:如果我们忽略推理器所花费的时间,它的执行是立即的!

2-在这种情况下有什么方法可以提高性能吗?