按字符串长度对SPARQL查询结果排序?

按字符串长度对SPARQL查询结果排序?,sparql,dbpedia,Sparql,Dbpedia,我试图用DBpedia中的术语自动完成用户在输入中编写的内容,类似于。尝试在jsFiddle的输入中写入dog,您将在建议中看到“dog”一词 我有下面的代码,问题是我得到的10个术语列表没有包含“Dog”选项。因此,如果我可以按照概念的(字符串表示形式)长度对列表进行排序,那么我可以得到该术语。这可能吗 selectdistinct?概念 在哪里{ ?概念a skos:概念。 过滤正则表达式(str(?概念),“dog”,“i”) } 按ASC(?概念)限值10订购 所以,如果我能按照概念的

我试图用DBpedia中的术语自动完成用户在输入中编写的内容,类似于。尝试在jsFiddle的输入中写入dog,您将在建议中看到“dog”一词

我有下面的代码,问题是我得到的10个术语列表没有包含“Dog”选项。因此,如果我可以按照概念的(字符串表示形式)长度对列表进行排序,那么我可以得到该术语。这可能吗

selectdistinct?概念
在哪里{
?概念a skos:概念。
过滤正则表达式(str(?概念),“dog”,“i”)
}
按ASC(?概念)限值10订购
所以,如果我能按照概念的长度来排序,就有可能得到这个术语。但我找不到合适的陈述来做这件事。可能吗

听起来你在找

strlen的订单(str(?概念)) 例如:

选择不同的概念,其中{
?概念a skos:概念。
过滤正则表达式(str(?概念),“dog”,“i”)
}
斯特伦订单(str(?概念))
限制10

也就是说,如果您只是检查字符串成员身份,您不需要正则表达式的所有功能,使用检查小写的概念是否包含带有过滤器的“dog”可能更有效,如:

过滤器包含(lcase(str(?concept)),“dog”)
SPARQL规范中的目录中有一个很大的函数列表,您可以浏览这些函数。特别是,您需要查看的小节