【问题标题】:Ontologies: Inferred superclass of individual本体:推断的个体超类
【发布时间】:2015-10-08 18:50:13
【问题描述】:

我正在使用具有以下简单本体的 Protege 4.3(也尝试过 5-beta):

Class: Person


Class: Man

    SubClassOf: 
        Person


Individual: John

    Types: 
        Man

接下来,我启动 Reasoner Hermit 1.3.8,但 John 并未被推断为 Person。以下 SPARQL 也不返回任何内容:

PREFIX this: <http://www.semanticweb.org/ontologies/2015/6/untitled-ontology-18#>

SELECT ?subject
    WHERE { ?subject a this:Person }

你有什么我理解错误的建议吗?

【问题讨论】:

  • 好的,至于 SPARQL 查询,Protege 似乎没有使用使用推理器的 SPARQL 实现 (source)。使用例如耶拿应该解决这个问题。但第一个问题仍然存在。
  • 将 Protege 5 与 Snap SPARQL 插件 一起使用也解决了第二个问题。

标签: sparql ontology protege4


【解决方案1】:

关于子类 Man 到超类 Person 的“缺​​失”推断:

Protégé 不会在其超类中显示子类的个体,即使推理器处于活动状态也是如此。然而,正如你已经看到的,推理是有效的。以下两个示例都将 John 作为类 Person 的个体返回:

SPARQL + Reasoner(Snap SPARQL 插件 4.2.0 + HermiT 1.3.8.413)

PREFIX this: <urn:absolute:test#>

SELECT ?subject
    WHERE { ?subject a this:Person }

DL-Query + Reasoner(DL-Query 4.0.1 + Hermit 1.3.8.413)

Person

另一种使其显而易见的方法是导出具有所有推断公理的本体(“文件”->“将推断公理导出为本体...”)。生成的本体包含 John 的两个类断言,一个是 Man,另一个是 Person

我假设这种行为使 GUI 在处理可能包含许多个体的更大本体时保持可用。从 Protégé 5.1.0 开始,似乎没有办法改变这种行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多