java - 如何使用 SPARQL 进行排名?
问题描述
我有一个问题,我们如何使用 SPARQL 给出排名数字?比方说,我有下图中的示例。因此,如果countKonsentrasi
具有最高的数字,则排名为 1,依此类推。
我已经完成但不符合我的需求的查询:
String queryString =
"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+ "PREFIX owl: <http://www.w3.org/2002/07/owl#> "
+ "SELECT ?e (COUNT (?e) AS ?countKonsentrasi) "
+ " (COUNT (*) AS ?ranking) "
+ " WHERE { ?x rdfs:label ?a;"
+ " rdfs:subClassOf ?b ."
+ " ?b rdfs:subClassOf owl:Thing ."
+ " ?b rdfs:label ?e ."
+ " FILTER (regex(str(?a), '%s','i')) ."
+ "}"
+ "GROUP BY ?e "
+ "ORDER BY DESC (?countKonsentrasi) ";
有没有像RANK
SPARQL 一样的排名功能?
更新
我已经尝试过使用这些新语法。该列ranking
显示 0 个值。
String queryString =
"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+ "PREFIX owl: <http://www.w3.org/2002/07/owl#> "
+ "SELECT ?e (COUNT (?e) AS ?countKonsentrasi) "
+ "(COUNT (?countKonsentrasi) AS ?ranking) "
+ " WHERE { ?x rdfs:label ?a;"
+ " rdfs:subClassOf ?b ."
+ " ?b rdfs:subClassOf owl:Thing ."
+ " ?b rdfs:label ?e ."
+ " FILTER (regex(str(?a), '%s','i')) ."
+ "}"
+ "GROUP BY ?e "
+ "ORDER BY DESC (?countKonsentrasi) LIMIT 5 ";
请帮我。我很感激所有的帮助。谢谢你
解决方案
推荐阅读
- reactjs - 悬停样式组件更改 img src 属性
- amazon-web-services - 在 AWS-ECS Docker contianer 上扩展根分区
- ios - iOS 12,UIStackView 问题
- python - 将大空格键按钮与 Raspberry Pi 连接
- java - 通过示例实体休眠搜索条件,id 不在属性列表中
- c# - asp.net 中的 MySQL 异常
- vue.js - VUE JS中如何根据范围获取数据
- replace - Lua:替换字符串中的字符
- c# - 当其他任务可能永远继续运行时,如何正确使用 ContinueWith?
- python - 如何从另一个模块访问对象?