在基于创建本体论层次的知识表示系统(如RDF )中,一个类在一个上下文中能被认为是另一个上下文中的一个实例吗?
以一个包含图书馆目录的三层楼为例。它可以包含如下声明:
:Book a rdfs:Class
:gullivers_travels a :Book
:moby_dick a :Book这是有意义的,但在另一种情况下,您可能希望逐项列出“白鲸记”的各个版本,因此将其作为一个类来处理也可能是有意义的,例如:
: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被视为类或实例,这是否意味着这两组语句在不引起逻辑不一致的情况下不能共存?
This question似乎暗示情况确实如此。
这是RDF中的一个设计限制,还是有更多逻辑上可行的方法来建模上述关系?
发布于 2018-01-15 20:58:37
正如AKSW所说,为什么不呢?实际上,在RDF中,所有的类都是( rdfs:Class和rdfs:Resource的)实例。在OWL2DL中,类IRI可以同时是实例IRI。但是,类IRI标识的类不能是实例,由实例IRI标识的实例不能是类。也就是说,在OWL2DL中,如果IRI标识一个类和一个实例,它将识别两件事,而不是一件。这样做的一个可能令人惊讶的后果是,以下内容是一致的:
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 (类)不同。
https://stackoverflow.com/questions/48255120
复制相似问题