owl - OWL 限制值 vs 仅 vs 完全在 dataProperty
问题描述
假设我们有一个名为 的类A
和一个名为的DataPropertyhasRestriction
。这些陈述之间有什么区别:
A SubClassOf (hasRestriction value 2)
A SubClassOf (hasRestriction exactly 2)
A SubClassOf (hasRestriction only 2)
解决方案
TL;DR:阅读 AKSW 的评论,它们既好又简洁。
长版:
您的问题是询问如何在 Protégé 中解释类表达式。Protégé 使用 OWL 2 Manchester 语法来描述类,并且 Protégé 假设本体是根据OWL 2 Direct Semantics解释的。如果属性hasRestriction
是 Protégé 中的 DataProperty,则它表示hasRestriction
表示一组对 ( x , y ),其中x是个体(话语领域的元素),y是数据值(如数字、字符串, 一个约会)。在 Protégé 中,类表达式用于表示个体的集合。
在您提供的语句中,有三个类表达式:
hasRestriction value 2
hasRestriction exactly 2
hasRestriction only 2
第一个, ,标识具有值为 2hasRestriction value 2
的属性的事物集。因此,如果x属于此类,则 ( x , 2) 属于所表示的。如果是此类的子类,则三元组包含三元组。hasRestriction
hasRestriction
A
x rdf:type A
x hasRestriction 2
第二个,hasRestriction exactly 2
,标识具有恰好 2 个属性值的事物集hasRestriction
。因此,如果x属于此类,则有两个不同的值v和w使得 ( x , v ) 和 ( x , w ) 属于hasRestriction
表示的内容。如果A
是此类的子类,则x rdf:type A
三元组包含三元组x hasRestriction _:v
和x hasRestriction _:w
和_:v owl:differentFrom _:w
(我在这里使用准海龟语法)。
第三个hasRestriction only 2
是语法错误,因为如果hasRestriction
是数据类型属性,则必须在关键字之后使用数据类型表达式only
。例如,hasRestriction only xsd:integer
.
在第二种情况下,x
类中的给定个人A
可能具有该属性的已知值hasRestriction
。例如,可能有三元组x rdf:type A
, x hasRestriction 1
, x hasRestriction 2
,在这种情况下,我们知道x
1 和 2 作为 的值hasRestriction
。此外,如果我们知道x hasRestriction 3
,则存在矛盾,因为 1、2 和 3 是三个不同的值,而表达式告诉我们必须正好有两个。
推荐阅读
- typescript - TypeScript 声明文件找不到错误
- jdbc - Kafka Connect JDBC 接收器连接器
- powershell - powershell从列表中重命名文件夹
- python - 如何在 VS Code Python 交互式窗格降价单元格输出中显示 python 变量值
- javascript - 我也在使用带有一些 json 数据的文档对象模型,但出现错误:TypeError: res.forEach is not a function at index.js:10
- laravel - seeInDatabase 有时会因为 1 秒后的 updated_at 字段而失败
- android - 在运行时旋转要素并更新图层
- sql - 是否可以在 Access 中更改查询表中的列名?
- oracle11g - 如何检查 OLE DB 的 Oracle Provider 版本
- ruby-on-rails - 保存的根本原因是什么!返回true,但实际上并未保存记录?回调可以产生这种行为吗?