3

我正在使用具有以下简单本体的 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 }

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

4

1 回答 1

2

关于子类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 开始,似乎没有办法改变这种行为。

于 2017-01-07T18:52:49.453 回答