首页 > 解决方案 > graphdb 推理根据值范围对个体进行分类

问题描述

我正在尝试使用 GraphDB 免费版 9.5.1 根据值范围对个人进行分类。但是,尽管使用了 OWL-RL 推理器,我并没有得到预期的结果。

我已经建立了一个包含三个类的简单本体。一个person类,有两个子类:newborn和子类。

- person
  - newborn
  - child

本体具有一个数据属性age。Anewborn被定义为(即等同于)具有 的人age value 0,而孩子被定义为具有 的人age > 0。这是曼彻斯特语法中的 OWL:

Class: person-test:person

Class: person-test:newborn
   EquivalentTo: 
        person-test:person
         and (person-test:age value 0)

Class: person-test:child
    EquivalentTo: 
        person-test:person
         and (person-test:age some xsd:integer[> 0])

DataProperty: person-test:age

为了检验推理,我定义了两个个体:

这是猫头鹰:

Individual: person-test:person0

    Types: 
        person-test:person
    
    Facts:  
     person-test:age  0

Individual: person-test:person1

    Types: 
        person-test:person
    
    Facts:  
     person-test:age  1

使用 Protege,我能够运行 HeremiT 推理器并获得预期的结果:

但是,当我使用 OWL-RL 推理将本体加载到 GraphDB 中时,结果是不同的:person1不是归类为 a ,而是归类为 a 。childperson0newborn

GraphDB 推理器是否适用于值范围,例如xsd:integer[> 0]

谢谢!

标签: owlprotegegraphdbhermit

解决方案


推荐阅读