如何修改SPARQL查询仅筛选出Zach Galifianakis的配偶姓名结果
解决方案
你当前返回的结果混杂了三类数据,分别是结婚年份数值、空的英文字符串、目标姓名值,只需通过FILTER限定值的类型和内容即可得到唯一的目标结果。
调整后的SPARQL语句
SELECT ?spouse WHERE { dbr:Zach_Galifianakis dbp:spouse ?spouse. FILTER(lang(?spouse) = "en" && STRLEN(STR(?spouse)) > 0) }
筛选逻辑说明
lang(?spouse) = "en":只保留带英文语言标签的文字类型值,自动过滤掉数值类型的结婚年份STRLEN(STR(?spouse)) > 0:排除内容为空的英文字符串,仅保留有实际内容的姓名结果
如果仅需要匹配这个特定姓名,也可以直接使用等值筛选:FILTER (?spouse = "Quinn Lundberg"@en),效果一致。
内容的提问来源于stack exchange,提问作者lorenzlorg
相关产品推荐
相关产品推荐

