当对象是URI时,我想获取对象的标签(rdfs:label)。但是,当对象是文字字符串时,我也想获取字符串值。问题是,我事先不知道对象是存储文字还是URI,并且在某些情况下,我看到文字和URI混合在一起,如所附的图像。
关于如何返回字符串的任何建议,如果有对象,则返回rdfs:label?
感谢您的帮助!
答案 0 :(得分:0)
首先,在理想世界中不应出现此问题,因为属性应该是对象属性或数据类型属性。
但是,当确实发生这种情况时,我建议采取以下解决方法:
lm
这未经彻底测试。我只能验证它是否在使用Virtuoso 08.03.3319的DBpedia Live上正常运行。在Virtuoso版本07.20.3235上的默认DBpedia端点SELECT ?x ?desc
{
?x dbp:keyPeople ?y.
{?y rdfs:label ?desc. FILTER(isIRI(?y))} UNION
{BIND(STR(?y) AS ?desc). FILTER(!isIRI(?y))}
}
上,它似乎无法正常工作。另外,您需要同时取消选中“严格检查空变量”和“
“严格检查多个子句中使用的变量名称,但在逻辑上没有相互联系”。