Sparql 使用CONCAT自动分离器?

Sparql 使用CONCAT自动分离器?,sparql,rdf,concat,Sparql,Rdf,Concat,我的查询是这样开始的: SELECT #MIN(?dateYear) AS ?dateYears) (GROUP_CONCAT(DISTINCT ?dateYear ; separator = ", ") AS ?dateYears) (CONCAT(GROUP_CONCAT(DISTINCT ?gameENLabel; separator = ", ") ,", ", GROUP_CONCAT(DISTINCT ?gameJALabe

我的查询是这样开始的:

SELECT
      #MIN(?dateYear) AS     ?dateYears)
      (GROUP_CONCAT(DISTINCT     ?dateYear ; separator = ", ") AS     ?dateYears)
      (CONCAT(GROUP_CONCAT(DISTINCT ?gameENLabel; separator = ", ") ,", ", GROUP_CONCAT(DISTINCT ?gameJALabel; separator = ", "), ", ", GROUP_CONCAT(DISTINCT ?hepburnLabel; separator = ", "), ", ", GROUP_CONCAT(DISTINCT ?gameZHLabel; separator = ", "), ", ", GROUP_CONCAT(DISTINCT ?pinyinLabel; separator = ", ")) as ?wookie)
      (GROUP_CONCAT(DISTINCT     ?dataLink ; separator = ", ") AS     ?dataLinks)
      #(?game AS ?dataPages)
      (GROUP_CONCAT(DISTINCT     ?wikiLink ; separator = ", ") AS     ?wikiLinks)
      (GROUP_CONCAT(DISTINCT     ?wikiName ; separator = ", ") AS     ?wikiNames)

      WHERE {
          ...
      }

它可以工作,但是当
GROUP_CONCAT(DISTINCT?gameJALabel;separator=“,”)
返回一个空spring时,紧跟其后的逗号仍会呈现。CONCAT命令是否可以提供一个分隔符,该分隔符仅在前面的命令返回某些内容时才会呈现?有没有更好的方法来完成这些我不知道的事情?谢谢

这里还会发生什么?您只需对
GROUP_CONCAT
生成的一组字符串调用
CONCAT
,每个字符串用逗号分隔。如果不符合您的要求,也许您可以使用适当的正则表达式模式调用
REPLACE
:类似这样的(未经测试):
REPLACE(CONCAT(GROUP_-CONCAT(DISTINCT?gameLabel;separator=“,”,”,GROUP_-CONCAT()…),“,,,”,”)AS?wookie)
这是一个很好的技巧。但是我可能需要多次使用replace命令来获取所有匹配项。例如,“,”将需要两个过程。嗯,REPLACE允许一个REGEX-as模式,所以我认为像
,(,)+
这样的东西可以工作。再一次,未经测试…是的,正则表达式可能工作得更好,这里还应该发生什么?您只需对
GROUP_CONCAT
生成的一组字符串调用
CONCAT
,每个字符串用逗号分隔。如果不符合您的要求,也许您可以使用适当的正则表达式模式调用
REPLACE
:类似这样的(未经测试):
REPLACE(CONCAT(GROUP_-CONCAT(DISTINCT?gameLabel;separator=“,”,”,GROUP_-CONCAT()…),“,,,”,”)AS?wookie)
这是一个很好的技巧。但是我可能需要多次使用replace命令来获取所有匹配项。例如,“,”将需要两个过程。嗯,REPLACE允许一个REGEX-as模式,所以我认为像
,(,)+
这样的东西可以工作。再一次,未经测试…是的,正则表达式可能工作得更好,