将两个本体与 "adapter" 对齐
Aligning two ontologies with an "adapter"
稍微简化一下,我有一个用 OWL 表示的域 ontology (D),它描述了设备、它们的功能和配置。此外,对于每个供应商,我希望有特定于供应商的 ontology (V),它将连接到域一。问题是,如何对齐D和V?让 V 尽可能接近供应商条款或仅将 D 的 类 子类化到 V 是否可行(并且可能对数据属性和对象属性执行相同的操作)?这个想法是应用程序使用 ontology D 进行查询和推理机制尽可能隐藏供应商细节。
第一个变体似乎更合乎逻辑(毕竟,语义技术是关于互连的),但我可以预见某些数据类型中的一些不匹配。例如,一家供应商可以用百分比表示电池电量,另一家供应商使用高、中、低等词。我不确定如何使用 OWL 将此类数据带入公分母。可能还有更难的情况,需要正则表达式应用程序和通常完成的任何脚本巫术。 (同样有趣的细节是直接使用数据属性还是通过 "wrapping" 数据属性添加一层间接层,每个数据属性具有对象属性和概念,以便为类型错误做好准备)。
换句话说,输入数据似乎应该在进入RDF生态系统之前进行预处理...或者还有其他可能性?
(对于那些倾向于快速将问题标记为重复的人,我不是在问 mapping between two ontologies 之类的问题,而是安排 "alignment" 作为预处理与更丰富的 "adapter pattern" 在 OWL 本身)
通常,您可以通过创建一个新的 ontology、O 来连接这两个本体,它同时导入 D 和 V,并定义一堆与 类 和属性相关的公理他们。
The first variant seems more logical (after all, semantic technology is about interconnecting), but I can foresee some mismatches in some
datatypes. For example, one vendor can express battery levels by
percent, another one uses words like high, medium, low. I am not sure
how to bring such data to the common denominator using OWL.
这实际上是您 可以 在 OWL 中处理的情况。例如,假设 V1 有一个对象 属性 hasPowerLevel 将 Battery 与其中一个个体 High 相关联、中 和低。假设 V2 的数据类型 属性 hasPercentageRemaining 将 PowerCell 与 [1,100] 范围内的整数相关联。您首先要确定 Battery 和 PowerCell 之间的关系。例如,这可能是以下任何一项,或者完全是其他内容。这将取决于 类.
的特定语义
电池 ⊑动力电池
PowerCell ⊑电池
PowerCell ≡ 电池
电池动力电池∃ hasPowerSource-1
然后你必须关联属性。这可能是
(hasPowerLevel value High)≡(hasPercentageRemaining some integer[>=66])
(hasPowerLevel value Medium) ≡ (hasPercentageRemaining some integer[<= 66, >= 33])
(hasPowerLevel value Low) ≡ (hasPercentageRemaining some integer[<= 33])
这只是一个例子,但它表明您实际上可以在 OWL 内完成很多 "bridging"。
hasPowerLevel
There maybe even harder cases, requiring regex application and whatever scripting voodoo is usually done. (It is also interesting
detail whether to use dataproperties directly or add one more layer of
indirection by "wrapping" dataproperties with object properties and
concepts per dataproperty to be more prepared for typemismatch).
那些 OWL 数据类型方面(例如,我们如何指定整数范围)也可以处理正则表达式限制。也就是说,在将 OWL 中的所有内容合并之前,进行一些中间连接确实可能更容易。 SWRL 规则在这里很有用,因为可以将内容降低到 RDF 级别并使用 SPARQL 或 SPIN 进行一些基于规则的处理。
虽然在这个领域有很多研究,但实际上并没有任何灵丹妙药或解决方案可以在任何地方发挥作用。任何声称普遍适用的东西都将达到非常高的水平,以至于其实际应用将需要回答您已经问过的大部分相同问题。有一些可能有用的通用方法,但我们确实需要一些特定情况才能帮助解决这些问题。
稍微简化一下,我有一个用 OWL 表示的域 ontology (D),它描述了设备、它们的功能和配置。此外,对于每个供应商,我希望有特定于供应商的 ontology (V),它将连接到域一。问题是,如何对齐D和V?让 V 尽可能接近供应商条款或仅将 D 的 类 子类化到 V 是否可行(并且可能对数据属性和对象属性执行相同的操作)?这个想法是应用程序使用 ontology D 进行查询和推理机制尽可能隐藏供应商细节。
第一个变体似乎更合乎逻辑(毕竟,语义技术是关于互连的),但我可以预见某些数据类型中的一些不匹配。例如,一家供应商可以用百分比表示电池电量,另一家供应商使用高、中、低等词。我不确定如何使用 OWL 将此类数据带入公分母。可能还有更难的情况,需要正则表达式应用程序和通常完成的任何脚本巫术。 (同样有趣的细节是直接使用数据属性还是通过 "wrapping" 数据属性添加一层间接层,每个数据属性具有对象属性和概念,以便为类型错误做好准备)。
换句话说,输入数据似乎应该在进入RDF生态系统之前进行预处理...或者还有其他可能性?
(对于那些倾向于快速将问题标记为重复的人,我不是在问 mapping between two ontologies 之类的问题,而是安排 "alignment" 作为预处理与更丰富的 "adapter pattern" 在 OWL 本身)
通常,您可以通过创建一个新的 ontology、O 来连接这两个本体,它同时导入 D 和 V,并定义一堆与 类 和属性相关的公理他们。
The first variant seems more logical (after all, semantic technology is about interconnecting), but I can foresee some mismatches in some datatypes. For example, one vendor can express battery levels by percent, another one uses words like high, medium, low. I am not sure how to bring such data to the common denominator using OWL.
这实际上是您 可以 在 OWL 中处理的情况。例如,假设 V1 有一个对象 属性 hasPowerLevel 将 Battery 与其中一个个体 High 相关联、中 和低。假设 V2 的数据类型 属性 hasPercentageRemaining 将 PowerCell 与 [1,100] 范围内的整数相关联。您首先要确定 Battery 和 PowerCell 之间的关系。例如,这可能是以下任何一项,或者完全是其他内容。这将取决于 类.
的特定语义 电池 ⊑动力电池
PowerCell ⊑电池
PowerCell ≡ 电池
电池动力电池∃ hasPowerSource-1
然后你必须关联属性。这可能是
(hasPowerLevel value High)≡(hasPercentageRemaining some integer[>=66])
(hasPowerLevel value Medium) ≡ (hasPercentageRemaining some integer[<= 66, >= 33])
(hasPowerLevel value Low) ≡ (hasPercentageRemaining some integer[<= 33])
这只是一个例子,但它表明您实际上可以在 OWL 内完成很多 "bridging"。 hasPowerLevel
There maybe even harder cases, requiring regex application and whatever scripting voodoo is usually done. (It is also interesting detail whether to use dataproperties directly or add one more layer of indirection by "wrapping" dataproperties with object properties and concepts per dataproperty to be more prepared for typemismatch).
那些 OWL 数据类型方面(例如,我们如何指定整数范围)也可以处理正则表达式限制。也就是说,在将 OWL 中的所有内容合并之前,进行一些中间连接确实可能更容易。 SWRL 规则在这里很有用,因为可以将内容降低到 RDF 级别并使用 SPARQL 或 SPIN 进行一些基于规则的处理。
虽然在这个领域有很多研究,但实际上并没有任何灵丹妙药或解决方案可以在任何地方发挥作用。任何声称普遍适用的东西都将达到非常高的水平,以至于其实际应用将需要回答您已经问过的大部分相同问题。有一些可能有用的通用方法,但我们确实需要一些特定情况才能帮助解决这些问题。