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

properties - 将具有数据类型限制的本体分类为模式时,Pellet 推理器崩溃

我有一个本体,它将新数据类型定义为字符串类型的模式限制。然后将此数据类型用作属性范围限制。然后一个类被定义为对这个属性的限制:

Protege 在使用 Pellet 推理器对该本体进行分类时崩溃:

FaCT++ 推理器因异常而失败:

Pellet 似乎只是将模式作为限制存在问题。FaCT++ 似乎对用户定义的数据类型有问题。

我是否在本体中有错误,或者推理器无法对这种模式限制进行分类?

0 投票
1 回答
628 浏览

java - 与 Pellet 和 OWL-API 的 OSGi 依赖作斗争

我为 owl-api 编写了一个外观,与颗粒推理器配对以轻松访问本体。它工作得很安静。然后我尝试将其打包为 OSGi Bundle,并通过其他服务的 TrackerService 使用它。owl-api 包需要 guava 和 trove 才能运行。对于 trove,没有捆绑包。即使在重新加载目标平台之后,颗粒罐在 Eclipse 中也没有被识别为包(我从 jpm4j 中获取它们)。所以我想把所有的罐子里的东西都挤进包里。

我阅读了很多使用捆绑包打包第三方 jar 的方法。我使用了 maven-bundle-plugin,在阅读了这个插件和 bndtools 的一些文档后,我决定使用conditional-package,因为这里描述了 pom 中的所有条目都传递给 bndtools。编译后,我的包没有打包 jar :(。然后我使用了embed-dependencies。它不起作用,因为瞬态依赖项在运行时不可用。所以我使用了embed-transient标签(我已经读过这是不好的风格)。Import-Package 部分自动填充了所有瞬态依赖项,因此我手动覆盖了它以消除有关未解决导入的错误。这行得通,我能够使用 owl-api 插入新属性、个人等(是的)。

当我尝试启动颗粒推理器时,我在运行时收到以下错误消息。我认为这又与我项目中的依赖关系有关。我已经知道当前的方式是错误的,但我找不到更好的方式。请帮助我在 OSGi 中正确进行依赖管理。

干杯,斯蒂芬

错误信息:

POM 文件(重要部分):

0 投票
1 回答
129 浏览

osgi - owl api - osgi 中使用的颗粒

我正在尝试在 OSGI 包中使用 OWL api 和 Pellet。捆绑包成功构建,但在运行时我收到以下错误:org.osgi.framework.BundleException: Unresolved constraint in bundle smp.lighting.client.osgi [2]: package; (package=org.mindswap.pellet).

这些是在 pom 文件中声明的依赖项: <dependency> <groupId>edu.stanford.protege</groupId> <artifactId>org.semanticweb.owl.owlapi</artifactId> <version>3.4.4</version> <exclusions> <exclusion> <artifactId>org.osgi.core</artifactId> <groupId>org.apache.felix</groupId> </exclusion> <exclusion> <artifactId>owlapi-apibinding</artifactId> <groupId>net.sourceforge.owlapi</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.ansell.pellet</groupId> <artifactId>pellet-owlapiv3</artifactId> <version>2.3.3</version> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> <exclusion> <artifactId>log4j</artifactId> <groupId>log4j</groupId> </exclusion> <exclusion> <artifactId>xercesImpl</artifactId> <groupId>xerces</groupId> </exclusion> </exclusions> </dependency>

另外,在包的启动文件中,我调用:mvn:edu.stanford.protege/org.semanticweb.owl.owlapi/3.4.4

并在下一个级别: wrap:mvn:com.github.ansell.pellet/pellet-jena/2.3.3 wrap:mvn:com.github.ansell.pellet/pellet-owlapiv3/2.3.3

我不知道我是否遗漏了什么,感谢您的帮助。先感谢您!

0 投票
1 回答
492 浏览

owl - 为什么 Pellet 推断出具有无限“蕴含”理由的不一致的“Nothing”子类?

我正在使用 Protégé 4.0 和 Pellet 2.2 学习 OWL 2.0,并且我正在尝试逐步理解基本概念。

因此,从类层次结构开始,我将一个类“Cat”作为 SubClassOf “Things”。

如果我启动 Pellet,一切正常,但如果我 DL 查询“Cat”,我的 Directsubclasses“Nothing”和 Subclasses“Nothing”以红色显示。

  • 这是什么意思?
  • 为什么是红色的?

理由如下:

  • 这是什么意思?
  • 为什么会有无穷无尽的这些“蕴含”理由(我的意思是我只创建了一个类)。
  • 是否有我犯的错误我必须纠正以避免这种现象?还是我应该不在乎?

谢谢你^_^!

0 投票
1 回答
337 浏览

sparql - OWL API 中的 Pellet internalReasonerException

有一天被困住了,有人会好心帮忙吗?我已经加载了一个导入 SWEET(地球和环境本体的语义网)的本体。我对其进行了一些 SPARQL 查询,得到了这样的答案:“对象属性 hasLowerBound 与 hasValue 限制一起使用,其中值是文字:“0”^^integer”。(hasLowerBound,我在 SWEET 中查过,是 SWEET 中的一个 Datatype Ontology)

我怎么解决这个问题?

这是我写的代码和我得到的错误,非常感谢你的帮助~

线程“main”中的异常 org.mindswap.pellet.exceptions.InternalReasonerException:对象属性 hasLowerBound 与 hasValue 限制一起使用,其中值是文字:org.mindswap.pellet.tableau.completion.rule 处的“0”^^integer .SomeValuesRule.applySomeValuesRule(SomeValuesRule.java:204) at org.mindswap.pellet.tableau.completion.rule.SomeValuesRule.apply(SomeValuesRule.java:64) at org.mindswap.pellet.tableau.completion.rule.AbstractTableauRule.apply (AbstractTableauRule.java:64)在 org.mindswap.pellet.tableau.completion.SROIQStrategy.complete(SROIQStrategy.java:157) 在 org.mindswap.pellet.ABox.isConsistent(ABox.java:1423) 在 org.mindswap。 org.mindswap.pellet.KnowledgeBase.consistency(KnowledgeBase.java:1987) 上 org.mindswap.pellet 上的pellet.ABox.isConsistent(ABox.java:1260)。KnowledgeBase.isConsistent(KnowledgeBase.java:2061) at org.mindswap.pellet.jena.PelletInfGraph.prepare(PelletInfGraph.java:258) at org.mindswap.pellet.jena.PelletInfGraph.prepare(PelletInfGraph.java:241) at com .clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:113) 在 com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:261) 在 com.clarkparsia.pellet.sparqldl.jena .SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:226) 在 loadMODIS.load.main(load.java:78)创建(SparqlDLExecutionFactory.java:113)在 com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:261) 在 com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:226)在 loadMODIS.load.main(load.java:78)创建(SparqlDLExecutionFactory.java:113)在 com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:261) 在 com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory.create(SparqlDLExecutionFactory.java:226)在 loadMODIS.load.main(load.java:78)

0 投票
1 回答
269 浏览

protege - 在运行时检查本体一致性

我有一个程序,它使用 Jena 加载在 Protege 中设计的 .owl Ontology。我正在尝试使用 Pellet 对其进行推理,如果我在运行时添加一些语句来建模能够检查其一致性。例如,我有 'Method'、'Signature' 和 'hasSignature' 概念,其中 hasSignature 是一个对象属性。我有以下公理:

当我添加一些实例语句以违反上述公理时,不会报告不一致。这是我的代码:

怎么了?为什么它不起作用?

0 投票
1 回答
941 浏览

sparql - Pellet + Jena + SPARQL + com.hp.hpl.jena.query.QueryParseException:遇到““rdfs:域

我遇到的问题是 com.hp.hpl.jena.query.QueryParseException: Encountered " <PNAME_LN> "rdfs:domain. 这就是我所做的。我使用 OWL API 读取 xml/owl 文档并使用 Pellet 进行推理。因为除了原因我还想做一些 SPARQL 查询,我使用 Jena 2.10.0 与 Pellet 2.3.0 一起工作。由于兼容性,我无法更改 Jena 的版本。这是代码:

该代码在前 3 个查询中运行良好,但在添加 后"seaice:describe rdfs:domain ?domain.",问题立即出现。该代码也适用于seaice:describe rdfs:domain ?domain.单独的“”。错误如下:

0 投票
1 回答
183 浏览

java - 本体推理

我有一些推理问题:如果我只加载一个本体的 TBox,我如何检索一个类的实例?

执行被阻塞到最后一行(我没有空指针)。它只是被阻止:(

0 投票
1 回答
108 浏览

jena - Pellet + 传递性 + Reason + OWL-API

我在推断传递对象属性 Similarto 时使用 Pellet 时遇到问题。我有个人 A Similarto B 和个人 B Similarto C。我想在 OWL API 中使用 Pellet 或使用 Jena 来获取个人组 A、B、C,但我无法弄清楚在 OWL API 中进行推理的代码。

我已经在 OWL API 中加载了本体,是否有一个示例代码可以推断一组具有相同传递属性的个体?

0 投票
1 回答
1020 浏览

rdf - 如何在 Protege 4.3.0 中启用 Pellet?

自从Unable to download Pellet plugin for Protege 4.3提示该版本不可用以来,已经快一年了。有什么改变吗?