我应该始终在 OWL ontology 中创建双向关系吗?
Should I always create bi-directional relations in OWL ontology?
例如,对于 Book
和 Author
类,我可以有 authorOf
关系,和或 hasAuthor
关系。对于Student
和Course
类,我可以在两者之间建立courseOf
和hasCourse
关系。
总是在两个方向上创建关系似乎是多余的。有什么处理方针或原则吗?
我不知道有任何建议 总是 明确提供逆 属性。
逆属性至少有两个用例:
需要引用逆属性,暂且称之为"IP",
在 ontology.
内部
我们可能需要声明另一个 属性 与 IP 不相交。或者说另一个属性相当于IP。现在,我们提供 IP 以允许该声明。另一个非常简单的例子是希望在正确的位置保留评论。您可以定义 IP 只是为了在其上放置 rdfs:comment。
需要外部引用逆属性.
例如:我们的应用程序将自然语言的翻译分配给 ObjectProperties。对于著名的 Protege Pizza Ontology,我们将 "hasTopping" 翻译成 "en:has topping" 这样的字符串。我们还想用自然语言表达"en:is the topping of"。 (我们的应用程序语义需要它。)这就是创建反向 属性 "isToppingOf" 的原因:要有一个实例,相应的 URI,我们的翻译可以参考。
例如,对于 Book
和 Author
类,我可以有 authorOf
关系,和或 hasAuthor
关系。对于Student
和Course
类,我可以在两者之间建立courseOf
和hasCourse
关系。
总是在两个方向上创建关系似乎是多余的。有什么处理方针或原则吗?
我不知道有任何建议 总是 明确提供逆 属性。
逆属性至少有两个用例:
需要引用逆属性,暂且称之为"IP", 在 ontology.
内部我们可能需要声明另一个 属性 与 IP 不相交。或者说另一个属性相当于IP。现在,我们提供 IP 以允许该声明。另一个非常简单的例子是希望在正确的位置保留评论。您可以定义 IP 只是为了在其上放置 rdfs:comment。
需要外部引用逆属性.
例如:我们的应用程序将自然语言的翻译分配给 ObjectProperties。对于著名的 Protege Pizza Ontology,我们将 "hasTopping" 翻译成 "en:has topping" 这样的字符串。我们还想用自然语言表达"en:is the topping of"。 (我们的应用程序语义需要它。)这就是创建反向 属性 "isToppingOf" 的原因:要有一个实例,相应的 URI,我们的翻译可以参考。