我正在尝试为本体中的OWL类之间的对象属性定义不同的状态。每次我有一个新的状态时,已经在创建一个新的对象属性。
所以这是即时解决问题的方法:
概念--- hasConcept->概念
现在,我想查看概念的所有已归档概念。因此,每当存档一个Concept时,我都会将对象属性从hasConcept
更改为以下新的对象属性:
概念--- hasArchivedConcept->概念
此解决方案的问题在于,我必须为本体中的许多其他类创建相同的hasArchived*
对象属性。
概念--- hasTerm->术语
概念--- hasArchivedTerm->术语
以此类推。
为了拒绝在每次需要新状态时都必须创建多个对象属性的工作,我正在寻找另一种平滑的语义OWL方式来满足该要求。
答案 0 :(得分:0)
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).
每个谓词现在只是arity 2,但是OWL不允许三元组作为主语。
最简单的OWL解决方案来自the recommendation for representing n-ary relations in OWL,用例1:
colour_at_time(car, _ct1).
colour(_ct1, red).
time(_ct1, t1).
这种解决方法有一个缺点:您牺牲了查询的推理性和清晰度。
还存在一种基于情境理论的本体论,以及关于时间的几种基于事件的本体论。进行研究的好地方是:ODPs,Semantic Sensor Network Ontology(由于观察),Prov-O(因为随着时间的推移对文档的更改)以及BFO v1的质量,过程和现已删除的对象属性。