我需要SPARQL查询的帮助。在我的本体论中,我有实体项目,设计一篇文章,它有一个名为" keyWord"用于存储文章中处理的主要参数。在Triple Store中,文章的每个参数都有一个三元组(article,keyWord,argument)。 我想知道一个查询,哪些文章具有最大三元组数,具有相同的属性keyWord值,我该怎么办? 我尝试过这样的事情,但这是错的,因为我只想知道具有最多共同参数的文章:
SELECT ?item (COUNT(?argument) as ?maxArgument)
WHERE{
?item keyWord ?argument
}
ORDER BY DESC(?maxArgument)
答案 0 :(得分:2)
根据SPARQL规范,为了计算解决方案的聚合值,首先将解决方案划分为一个或多个组,并计算每个组的聚合值。
此查询返回每篇文章的关键字数量:
SELECT ?item (COUNT(?argument) as ?maxArgument)
WHERE{
?item :keyword ?argument
}
GROUP BY ?item
ORDER BY DESC(?maxArgument)
此查询返回最常用的关键字及其文章计数:
SELECT (COUNT(?item) as ?articles) ?argument
WHERE{
?item :keyword ?argument
}
GROUP BY ?argument
ORDER BY DESC(?articles)
这同样适用于所有其他聚合函数,如MAX或MIN。