【发布时间】:2017-06-13 20:50:17
【问题描述】:
我在一个项目中使用 OWLAPI,我需要比较两个本体以了解它们之间的差异。这将忽略空白节点,例如,我可以确定两个本体中是否存在相同的 OWL 限制。我不仅需要知道是否存在差异,还需要找出这些差异是什么。 OWLAPI 中是否存在这样的功能,oz 有没有相对简单的方法来做到这一点?
【问题讨论】:
我在一个项目中使用 OWLAPI,我需要比较两个本体以了解它们之间的差异。这将忽略空白节点,例如,我可以确定两个本体中是否存在相同的 OWL 限制。我不仅需要知道是否存在差异,还需要找出这些差异是什么。 OWLAPI 中是否存在这样的功能,oz 有没有相对简单的方法来做到这一点?
【问题讨论】:
匿名类表达式之间的相等性不是基于空白节点 id - 匿名类表达式在文本输出中只有空白节点,在内存中 id 被忽略。因此,默认情况下,检查本体中是否存在公理将正确匹配您的差异表达式。
这不适用于个人 - 匿名个人不会在不同的本体中被发现是相同的,这是由规范决定的。一个本体中的匿名个体无法在另一个本体中找到,因为匿名个体 id 的范围仅限于包含的本体。
注意:OWLAPI 的单元测试必须执行一个非常相似的任务,以验证一个本体可以在不改变的情况下被解析、编写和再次解析(即在输入语法和输出语法之间往返),所以有代码您可以查看以获取灵感。有关详细信息,请参阅TestBase.java - equal() method。这包括处理匿名个人的不同 ID 的代码。
【讨论】: