我使用官方的DBpedia端点做了SPARQL查询。SPARQL用他人替换空属性
我会把它例如用于主要问题:
SELECT ?museum ?EnglishAbstract ?RussianAbstract
WHERE {
?museum dbpedia-owl:abstract ?EnglishAbstract.
?museum a dbpedia-owl:Museum.
filter(lang(?EnglishAbstract)='en')
optional{
?museum dbpedia-owl:abstract ?RussianAbstract.
?museum a dbpedia-owl:Museum.
filter(lang(?RussianAbstract)='ru')
}}
GROUP BY ?museum
与此查询(即工作好),我找到的每一行(museum
)2种语言一堆摘要:英文俄语。 俄罗斯文摘仅在可用时才存在,因为我使用“可选”。 显然我得到了很多空的属性。
我会用英文摘要替换空白属性(始终存在)。
阅读W3C SPARQL页面,我发现有一个特殊的测试值,这是真的,当一个变量被设置:绑定
我想编写这样的事:
If Bound (?RussianAbstract), "?RussianAbstract", "?EnglishAbstract"
- - >如果RussianAbstract
存在,保持它;否则,把EnglishAbstract
而不是它。
有谁知道我该如何使它工作?要做到这一点
您可能会发现[空属性生成值(http://stackoverflow.com/q/19723721/1281433)是有用的,以及[SPARQL:如何使类标签显示为类的列名称?](http://stackoverflow.com/q/26114572/1281433),如果其他地址不可用,则实际使用一个值进行地址解析。 –