0

我试图在我的本体中为 OWL 类之间的对象属性定义不同的状态。每次我有一个新的状态时,已经有效的方法是创建一个新的对象属性。

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

概念 --- hasConcept --> 概念

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

概念 --- hasArchivedConcept --> 概念

这个解决方案的问题是我必须hasArchived*为我的本体中的许多其他类创建相同的对象属性。

概念--- hasTerm --> Term

概念 --- hasArchivedTerm --> 术语

等等。

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

4

1 回答 1

0

由于仅限于二进制谓词,OWL并不是最好的表示。您要么试图在已知时间表示某事是真实的,要么在假设或已知情况下,这在 AI 中被称为流畅(请参阅Situation Calculus):

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

所以我们需要三元关系。Situation Calculus 的解决方案是具体化流利的:

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

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

OWL 最简单的解决方案来自在 OWL中表示 n 元关系的建议,用例 1:

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

这种变通方法有一个缺点:您牺牲了查询的推理和清晰度。

还有一个基于情境理论的本体加上几个关于时间的基于事件的本体。研究的好地方是:ODP语义传感器网络本体(因为观察)、Prov-O(因为随着时间的推移对文档的更改)以及 BFO v1(用于质量、过程和现在删除的对象属性)。

于 2019-07-22T10:12:52.127 回答