例如,对于 Book 和 Author 课程,我可以 authorOf 关系,和或 hasAuthor 关系对于 Student 和 Course 课程,我可以 courseOf 和 hasCourse 二者之间的关系。
Book
Author
authorOf
hasAuthor
Student
Course
courseOf
hasCourse
总是在两个方向上建立关系似乎是多余的。是否有任何准则或原则来处理这种情况?
我不知道有什么建议 总是 显式提供反向属性。
反向特性至少有两个用例:
需要引用反向属性,我们称之为“IP”, 本体内部。
我们可能需要声明另一个属性与IP不相交。或者其他财产等同于IP。现在,我们提供IP以允许该声明。另一个非常微不足道的例子是希望将注释保留在正确的位置。您可以定义IP只是为了在其上放置rdfs:注释。
需要外部引用反向属性。
例如:我们的应用程序将自然语言的翻译分配给ObjectProperties。在著名的Protege Pizza本体中,我们将“hasTopping”翻译成“en:has-topping”这样的字符串。我们还想用自然语言表达“en:is the top of”。(我们的应用程序语义需要它。)这就是创建反向属性“IsTopingof”的原因:为了有一个实例,对应一个URI,我们的翻译可以引用。