将默认值设置为具有 SPIN 的属性



我是SPIN的新手。我想知道将其用于以下目的是否有意义。假设我有以下类层次结构:

ex:Vehicle
ex:Car
ex:Sedan

某些类将属性owl:equivalenClass设置为某个值,例如:

ex:Vehicle
owl:equivalentClass wd:MeanOfTransportation 
ex:Sedan
owl:equivalentClass wd:Sedan 

如果owl:equivalentClass未设置为值,则应采用其父类的值。在上面的例子中:

ex:Car
owl:equivalentClass wd:MeanOfTransportation 

这可以通过SPIN完成吗,在我的情况下使用TopBraid?

将 SPIN 用于这些目的是有意义的,因为 SPIN 推理引擎是 TopBraid Composer Free Edition 中唯一可用的推理引擎。

在其他 TopBraid 编写器版本中,适当性以及获得的结果可能会因推理配置而异(推理>配置推理(。

规则是:

rdfs:Class spin:rule [
rdf:type sp:Construct ;
sp:text """
CONSTRUCT {
?this owl:equivalentClass ?equivalentClass .
}
WHERE {
?this rdfs:subClassOf ?superClass .
?superClass owl:equivalentClass|^owl:equivalentClass ?equivalentClass .
FILTER NOT EXISTS {
?this owl:equivalentClass|^owl:equivalentClass [] .
} 
} """ 
] .

请注意,这个 SPIN 规则附加到rdfs:Class:一个实例所有这些ex:Car的类,ex:Vehicle?this是一个特殊变量,它引用此类的"当前"实例。

似乎spl:InferDefaultValueSPIN 模板不能用于您的情况,因为spl:InferDefaultValue不接受 SPARQL 变量作为其spl:defaultValue参数。

相关内容

  • 没有找到相关文章

最新更新