如何在SPARQL中保留组_concat中的语言标记

如何在SPARQL中保留组_concat中的语言标记,sparql,semantic-web,dbpedia,Sparql,Semantic Web,Dbpedia,我试图用尽可能多的语言找到每个uri的标签。作为一个例子,我运行这个 select ?film group_concat (?filmLabel;separator="|") where{ ?film a dbpedia-owl:Film;rdfs:label ?filmLabel . FILTER (regex(?film,'Titanic')) } 结果是这样的 我得到了不同语言的标签,但是group_concat去掉了语言标签,所以我不知道哪个标签属于哪种语言。我可以为每种语言

我试图用尽可能多的语言找到每个uri的标签。作为一个例子,我运行这个

select ?film group_concat (?filmLabel;separator="|") where{
  ?film a dbpedia-owl:Film;rdfs:label ?filmLabel  . FILTER (regex(?film,'Titanic'))
} 
结果是这样的


我得到了不同语言的标签,但是group_concat去掉了语言标签,所以我不知道哪个标签属于哪种语言。我可以为每种语言使用可选选项,但这将是非常混乱的。我应该怎么做才能将结果聚合成这种格式“泰坦尼克号(1953年电影)”@en |“泰坦尼克号”deuntergang Der Titanic“@de |“泰坦尼克号(1953年佩利库拉)”@es,这样当我对它们进行后期处理时,我就可以获得它们相应的语言

您可以对每行生成的表达式进行分组,而不仅仅是对胶片标签进行分组。特别是,如果在
concat(“”,?filmLabel““@”,lang(?filmLabel)
上进行组_concat,您将得到想要的结果:

select ?film
       (group_concat( concat('"',?filmLabel,'"@',lang(?filmLabel)); separator="|" ) as ?label)
where {
  ?film a dbpedia-owl:Film ;
        rdfs:label ?filmLabel .
  FILTER (regex(?film,'Titanic'))
} 

film:  http://dbpedia.org/resource/Titanic_(1953_film)
label: "泰坦尼克号 (1953年电影)"@zh|"Titanic (1953 film)"@en|"Der Untergang der Titanic"@de|"Titanic (película de 1953)"@es|"Titanic (film, 1953)"@fr|"Titanic (film 1953)"@it|"タイタニックの最期"@ja|"Titanic (1953)"@nl|"Titanic (film 1953)"@pl|"Titanic (1953)"@pt|"Титаник (фильм, 1953)"@ru

film:  http://dbpedia.org/resource/Titanic:_Blood_and_Steel
label: "Titanic – Blood and Steel"@de|"Titanic: Blood and Steel"@en|"Titanic: sangre y acero"@es|"Titanic : de sang et d'acier (série télévisée, 2012)"@fr|"Titanic - Nascita di una leggenda"@it|"Титаник: Кровь и сталь"@ru