反转SPARQL中的字符串 [英] Reversing a string in SPARQL

查看:14
本文介绍了反转SPARQL中的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以颠倒SPARQL中的字符串,例如,"ABC"变为"CBA"。或者,是否可以基于字符串进行反向排序。

我对可以在Wikidata Query Service上工作的解决方案特别感兴趣。

推荐答案

您问的是是否可能,而不是是否实用.

SELECT ?s (group_concat(?letter; separator='') AS ?r) {
  BIND ("abcdefghijkl" AS ?s)
  VALUES ?d1 { 0 1 2 3 4 5 6 7 8 9 }
  VALUES ?d2 { 0 1 2 3 4 5 6 7 8 9 }
  VALUES ?d3 { 0 1 2 3 4 5 6 7 8 9 }
  BIND (100 * ?d3 + 10 * ?d2 + ?d1 + 1 AS ?i)
  BIND (SUBSTR(?s, ?i, 1) AS ?letter)
}
GROUP BY ?s

Live link

该方法与Finn的响应中的方法类似,但它适用于长度不超过1000个字符的字符串。这将用作较大查询中的子查询。像group_concat这样的聚合不能保证特定的顺序,因此此查询依赖于Blazegraph使用的依赖于实现的顺序,并且可能会混淆不同实现上的字符串。

如果用例按字符串的最后一个字符按相反顺序排序,则可以对此进行调整,以确保包含字符串的最后n字符。

这篇关于反转SPARQL中的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆