可选后备 SPARQL 模式的替代方案?

2023-12-24

我需要为目标集中的每个资源检索单个图像,并按优先级顺序测试多个非独占谓词。

I'm 使用标准的可选回退模式

select ?r ?i where {

    ?r a dbo:Automobile .

    optional { ?r <http://dbpedia.org/ontology/thumbnail> ?i }
    optional { ?r <http://xmlns.com/foaf/0.1/depiction> ?i }
    optional { ?r <http://xmlns.com/foaf/0.1/logo> ?i }
    optional { ?r <http://schema.org/image> ?i }

}

但这种方法在某些后端上变得很麻烦:有人知道任何简单/有效的替代方案吗?


选项有什么问题?重复使用?i?

另一种方法是获取每个选项并选择第一组。

select ?r ?i where {

    ?r a dbo:Automobile .
    optional { ?r <http://dbpedia.org/ontology/thumbnail> ?i1 }
    optional { ?r <http://xmlns.com/foaf/0.1/depiction> ?i2 }
    optional { ?r <http://xmlns.com/foaf/0.1/logo> ?i3 }
    optional { ?r <http://schema.org/image> ?i4 }
    BIND(COALESCE(?i1,?i2,?i3,?i4) AS ?i)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可选后备 SPARQL 模式的替代方案? 的相关文章

随机推荐