如何在SPARQL中按不同的顺序删除具有相似内容的元组

时间:2015-08-10 11:33:43

标签: tuples sparql protege rdflib

我有一个查询返回了几个变量,?a?b。问题是结果包含10, 1515, 10。我只需要其中一个。如何检查元组是否已存在?

我的查询很乱,但如下所示:

SELECT DISTINCT ?a  ?b
WHERE { ?a   rno:is_extent_of  ?x1
          ;  rno:is_extent_of  ?x2
      . ?b   rno:is_extent_of  ?x3
          ;  rno:is_extent_of  ?x4
      . ?x1  rno:is_part_of    ?d
      . ?x3  rno:is_part_of    ?d
      . ?d   a                 rno:detailed_partition
      . ?x2  rno:is_part_of    ?r
      . ?x4  rno:is_part_of    ?r
      . ?r   a                 rno:Roundabout
      .  FILTER ( ?x1 != ?x2 
               && ?x1 != ?x3
               && ?x1 != ?x4 )
      }

1 个答案:

答案 0 :(得分:2)

使用?a annd?b的某些功能来订购它们。例如,如果它们始终是URI:

FILTER ( str(?a)  < str(?b) )