如何在SPARQL中合并两个变量值并去除重复项?
合并SPARQL中两个变量值并去重的实现方法
FILTER和AND都不适合做这个事:FILTER是用来过滤符合特定条件的结果,AND是用来组合多个查询条件,它们都没法帮你合并两个不同数据源的变量值。
你需要用UNION来合并两个查询分支,再配合SELECT DISTINCT去除重复项,具体写法如下:
SELECT DISTINCT ?employee WHERE { { ?ABCInstance a ABC:TeamInstance ; ABC:Name ?employee . } UNION { ?CDEInstance a CDE:DataInstance ; CDE:employeeName ?employee . } }
说明:
- 用UNION把两个独立的查询块合并,两个块里都把姓名绑定到同一个变量
?employee上,这样就能把两个数据源的姓名放到同一个结果集中。 - SELECT DISTINCT会自动剔除结果里重复的姓名,最终得到的就是两个数据源所有不重复的员工姓名。
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

