rdf - 子类而不是实例的 RDF 属性的域和范围?
问题描述
有没有办法在 RDF/RDF 中声明任何具有给定属性的资源都是特定类的子类?(或其他情况,对象不是主语)
rdfs:domain (分别为范围)接近,但域的定义包括“实例”,而不是“子类”:
rdfs:domain 是 rdf:Property 的一个实例,用于声明具有给定属性的任何资源都是一个或多个类的实例。RDF 模式 1.1
作为需要 this 的示例 szenario(作为范围,而不是域),假设您想表达:John :likes :Vegetable
,其中:Vegetable
是食物的子类。
:likes rdfs:range owl:Class
将涵盖该示例,但它太笼统了。
:likes rdfs:range :Food
将是不正确的,因为:Vegetable
它不是子类的实例:Food
而是子类。
类似的东西:likes rdfs:range Powerset(:Food)
会更好,但我不知道如何使用 RDF 和 RDF 来指定。
在 Java 中,它将是:
public abstract class Person
{
public static class Food {}
abstract Class<? extends Food> likes();
}
可以使用具有通用量化的 OWL 公理进行建模,但我想知道如果没有 OWL 这是否可能,因为我有大量的语句要上传到 SPARQL 端点,并且在 RDF 中表达 OWL 公理会大大增加三元组的数量量并使实际使用(例如 SPARQL 查询)更加复杂。
解决方案
推荐阅读
- cmd - sencha 应用程序构建和 index.php 文件;更新构建
- python - 下载最新版本的 Python 包
- python - 如何在python中使用这个脚本
- elasticsearch - 是否可以根据弹性搜索 v 5.6.6 中的用户角色隐藏某些字段?
- sas - 基础 SAS - 过程 SQL
- python - 覆盖 __getattr__ 导致递归
- c# - 按钮单击时嵌套的列表视图数据绑定
- qt - 直接定义静态QStringList
- nightwatch.js - 如果不在一个终端中使用硒,就无法运行守夜人
- apache - OpenId Connect:在令牌端点调用中添加额外/自定义参数