owl - 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
为了检验推理,我定义了两个个体:
person0
年龄为 0person1
年龄 > 1
这是猫头鹰:
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 推理器并获得预期的结果:
person0
被归类为newborn
person1
被归类为child
但是,当我使用 OWL-RL 推理将本体加载到 GraphDB 中时,结果是不同的:person1
不是归类为 a ,而是归类为 a 。child
person0
newborn
GraphDB 推理器是否适用于值范围,例如xsd:integer[> 0]
?
谢谢!
解决方案
推荐阅读
- c# - ASP.NET Core 中应用程序启动逻辑的放置位置
- javascript - php函数没有将结果返回给ajax调用
- javascript - 即使在关闭命令提示符后,也可以永远观看
- informix - 将服务器从 Informix RSS 迁移到 SDS 时出现“未设置 SDS_ENABLE”错误的原因?
- javascript - 复选框代码未显示选中,但它更改了选中的值
- html - 引导轮播正在填满我的整个页面
- c - 打印出字符串中的第三个单词。C
- c# - 使用 EF Core 和 ExecuteSqlCommandAsync 从存储过程中的 SELECT 语句访问结果
- asp.net-core - 用于 SPA 和移动设备的 ASP.NET Core 2.1 Web-API 身份验证。从哪儿开始?
- ruby-on-rails - Devise on Rails 在我登录后让我登录并且不让我发帖