You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DBpedia的Snorql中用SPARQL按?Artis最后一个字符排序?

按?Artis最后一个字符排序的SPARQL解决方案

嘿,我明白你遇到的问题了——直接对?Artis用ORDER BY确实会按整个字符串的首字符开始排序,而不是最后一个。要实现按最后一个字符排序,我们得用SPARQL的字符串处理函数来提取出每个?Artis的最后一个字符,再基于这个字符排序。

核心思路

  • 用STR(?Artis)把资源URI转换成字符串格式(因为DBpedia里的?Artis通常是资源而非纯字符串);
  • 用STRLEN()获取这个字符串的总长度;
  • 用SUBSTR()从字符串的最后一位开始截取(SPARQL字符串索引从1开始,所以起始位置设为字符串长度即可);
  • 最后基于截取到的最后一个字符进行排序。

修改后的完整查询

PREFIX onto: <http://dbpedia.org/ontology/> 
PREFIX xs: <http://www.w3.org/2001/XMLSchema#> 
SELECT * 
WHERE { 
  ?Artis onto:birthDate ?Tanggal_Lahir . 
  FILTER (?Tanggal_Lahir= "1990-01-05"^^xs:date) 
} 
ORDER BY DESC(SUBSTR(STR(?Artis), STRLEN(STR(?Artis)))) 
LIMIT 10

补充说明

  • 如果你的?Artis本身就是字符串字面量(而非URI),可以去掉STR()函数,直接用SUBSTR(?Artis, STRLEN(?Artis));
  • 要是想升序排序,把DESC()去掉或者换成ASC()就行。

内容的提问来源于stack exchange,提问作者Sinta Anjelina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:22:15