Как дать оценку с помощью SPARQL? - PullRequest
0 голосов
/ 07 апреля 2020

У меня вопрос, как мы можем дать ранговое число, используя SPARQL? скажем, у меня есть пример на картинке ниже. Итак, если countKonsentrasi имеет наибольшее число, ранг равен 1 и т. Д.

result

Запрос, который я сделал, но он не сделал не соответствует моим потребностям:

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 ";

, пожалуйста, помогите мне. все помогает, я ценю. спасибо

...