问题标签 [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.
jena - 耶拿;listDeclaredProperties 语义
让我们考虑一个
使用 Jena,我试图列出CSub
. 我认为P
不能将其列为CSub
. 我的理由:P
是 的声明属性CSub
,iff CSub
是 的域P
, from (1)CSuper
是一个域P
,并不意味着它CSub
也是一个域;(1) 表示如果(x, y)
是P
,那么x
是CSuper
,显然x
可能(不是)是CSub
。
令人惊讶的是,即使使用 OntModelSpec.OWL_DL_MEM_RULE_INF 或 Pellet ,Jena 也在使用方法时P
作为声明属性列出!我错过了什么吗?CSub
listDeclaredProperties
更新: 某个类的声明属性是什么意思?这是否意味着属性是它们的域的类!
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 的结果?
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 文件中包含什么版本的颗粒共振器?
jena - Jena 和 Pellet 搜索标签返回错误
我已经为此工作了几个小时,试图让 Pellet 与 Jenna 一起工作。现在我终于明白了它的工作原理。查询类和推断类进展顺利。例如:
但是,当尝试使用此查询标签时:
返回:
我的完整代码如下:
Jena 中没有查询字符串吗?甚至在我使用 Pellet 时也不行?有没有其他方法可以使用 Jena 和 Pellet 查询我的本体的替代标签?
java - Jena Sparql 只返回实例的直接超类
我在 Java 中使用 Jena 和 Pellet 作为推理器。现在我需要查询特定URI的类,但问题是我事先不知道它是什么样的实例,在什么样的类层次结构中,所以我不能使用过滤选项。使用时:
它返回所有超类。这个特定示例的层次结构如下所示:
每个类都有多个实例。我不知道我事先要查询什么样的实例。但是,例如,假设我正在查询属于 Dog 类型的实例的 URI。它还将返回 Animal 和 Thing。但我只希望它返回 Dog。那可能吗?使用 LIMIT 1 仅返回直接超类。
eclipse - 在动态 Web 项目中使用 Jena 读取本体
所以,我有一个带有 Jena 的 Java 项目,它读取一个本体(有几个导入),我正试图将它移植到一个动态 Web 项目中。
问题是,在 DWP 中,程序无法读取本体导入。我不知道为什么,但它总是com.hp.hpl.jena.shared.DoesNotExistException
在尝试阅读第一个导入时给我。错误堆栈跟踪:
该项目与原始项目完全相同。
我在 Eclipse 中使用 Apache Jena。
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 );
异常消息是:
我该如何解决这个问题?提前致谢。
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 的新手。
rdf - SPARQL 仅搜索 xsd:integer,无小数
使用以下查询:
还返回altLabel
具有xsd:decimal
5.x 的 URI,我真的需要它只返回?uri
具有.xaltLabel
的URI xsd:integer
。有没有办法做到这一点?
performance - 评估使用推理器的算法的性能
我开发了一种算法(java 代码),它可以在 OWL-DL 本体中的两个给定类之间找到特定路径(属性链)。这是本体
实际上,Pellet 推理器花费了太多时间来响应我的查询,大约 5-7 秒来检查一个类是否通过属性F
与一个类一对一相关,但是这个查询在我的算法中是重复的,如果我在类似的类上重新运行它,它的执行速度会更快(我认为这与内存模型或 RAM 内存缓存有关......)。但是第一次大约需要 4-5 分钟(取决于完成的检查次数)。D
r
这个瓶颈与本体和推理器本身有关:(如果我在没有推理器的情况下运行它,它会立即执行!)
问题:
1-我可以在不考虑推理时间的情况下评估性能吗?即类似:如果我们忽略推理器所花费的时间,它的执行是立即的!
2-在这种情况下有什么方法可以提高性能吗?