可以将一个上下文中的类视为另一个上下文中的实例吗? [英] Can a class in one context be considered an instance in another?

查看:88
本文介绍了可以将一个上下文中的类视为另一个上下文中的实例吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在基于RDF的知识表示系统(它基于创建本体层次结构)的基础上,可以将一个上下文中的类视为另一个上下文中的实例吗?

In a knowledge representation system like RDF, which is based on creating ontological hierarchies, can a class in one context be considered an instance in another?

以包含库目录的Triplestore为例.它可能包含以下语句:

Take the example of a triplestore which contains a library catalogue. It may contain statements such as:

:Book a rdfs:Class

:gullivers_travels a :Book
:moby_dick a :Book

这很有道理,但在另一种情况下,您可能希望逐项列出 Moby Dick 的各个版本,因此 将其视为类,例如:

This makes sense, but in another context, you may want to itemize the various editions of Moby Dick, and so it may also make sense to treat it as a class, e.g.:

:moby_dick a rdfs:Class

:moby_dick_manuscript a :moby_dick
:moby_dick_first_edition a :moby_dick
:moby_dick_second_edition a :moby_dick

由于:moby_dick被视为类或实例,这是否意味着在不引起逻辑不一致的情况下两组语句不能共存?

Since :moby_dick is treated as either a class OR an instance, does that mean the two sets of statements can't co-exist without causing logical inconsistencies?

这个问题似乎暗示确实是这样.

This question seems to imply that this is indeed the case.

这是RDF中的设计限制吗?还是像上面的关系那样在逻辑上更可行的方式来建模这种关系?

Is this a design limitation in RDF, or are there more logically-viable ways of modelling such a relationship as the one above?

推荐答案

AKSW 所述,为什么不呢?实际上,在RDF中,所有类都是(rdfs:Classrdfs:Resource的)实例.在OWL 2 DL中,类IRI 可以同时是实例IRI .但是,由类IRI标识的类不能是实例,并且由实例IRI标识的实例不能是类.也就是说,在OWL 2 DL中,如果IRI标识类和实例,则它标识两件事,而不是一件事.可能令人惊讶的结果是,以下内容是一致的:

As AKSW said, why not? In fact, in RDF, all classes are instances (of rdfs:Class and of rdfs:Resource). In OWL 2 DL, a class IRI can be an instance IRI at the same time. However, the class identified by the class IRI cannot be an instance, and the instance identified by the instance IRI cannot be a class. That is to say that in OWL 2 DL, if an IRI identifies a class and an instance, it identifies two things, not one. A possibly surprising consequence of this is that the following is consistent:

ex:x1  a  owl:Thing, owl:Class .
ex:x2  a  owl:Thing, owl:Class;
    owl:sameAs  ex:x1;
    owl:disjointWith  ex:x1 .
ex:x3  a  ex:x1 .

因此,ex:x1(该实例)与ex:x2(该实例)相同,但ex:x1(该类)与ex:x2(该类)不同.

So, ex:x1 (the instance) is the same thing as ex:x2 (the instance) but ex:x1 (the class) is different from ex:x2 (the class).

这篇关于可以将一个上下文中的类视为另一个上下文中的实例吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆