有没有办法在 Ontology 中定义对象属性的值或状态?

Is there a way to define values or states for object properties in an Ontology?

我试图在我的 ontology 中为 OWL 类 之间的对象属性定义不同的状态。已经起作用的是每次我为它创建一个新状态时创建一个新对象 属性。

所以这就是我解决它的方式:

Concept --- hasConcept --> Concept

现在我想查看一个概念的所有存档概念。因此,每当我存档一个概念时,我都会将对象 属性 从 hasConcept 更改为以下新对象 属性:

Concept --- hasArchivedConcept --> Concept

此解决方案的问题是我必须为 ontology.[=16 中的许多其他 类 创建相同的 hasArchived* 对象 属性 =]

Concept --- hasTerm --> Term

Concept --- hasArchivedTerm --> Term

等等。

为了避免每次需要新状态时都必须创建多个对象属性,我正在寻找另一种流畅的语义 OWL 方式来满足该要求。

OWL 不是 的最佳表示,因为仅限于二元谓词。您要么试图在已知时间或假设或已知情况下表示某事是真实的,这在 AI 中被称为流利(参见 Situation Calculus):

colour(car, red, time1). % time1 can be substituted for a situation reference
colour(car, blue, time2).

所以我们需要三元关系。情境演算的解法,就是把流利具体化:

holds(colour(car, red), situation0).

每个谓词现在只有 2 个元数,但是 OWL 不允许三元组作为主语。

OWL 的最简单解决方案来自 the recommendation for representing n-ary relations in OWL、use-case 1:

colour_at_time(car, _ct1).
colour(_ct1, red).
time(_ct1, t1).

这样的 work-around 有一个缺点:您正在牺牲查询的推理和清晰度。

还有一个 Ontology 基于情境理论加上几个基于时间的事件。研究的好地方是:ODPs, Semantic Sensor Network Ontology because of observations, Prov-O 因为随着时间的推移文档会发生变化,BFO v1 的质量、过程和现在删除的对象属性。