SPARQL查询常见值

时间:2018-02-16 22:22:20

标签: sparql triplestore

我需要SPARQL查询的帮助。在我的本体论中,我有实体项目,设计一篇文章,它有一个名为" keyWord"用于存储文章中处理的主要参数。在Triple Store中,文章的每个参数都有一个三元组(article,keyWord,argument)。 我想知道一个查询,哪些文章具有最大三元组数,具有相同的属性keyWord值,我该怎么办? 我尝试过这样的事情,但这是错的,因为我只想知道具有最多共同参数的文章:

SELECT ?item (COUNT(?argument) as ?maxArgument)   
WHERE{   
     ?item keyWord ?argument                                                                
}
ORDER BY DESC(?maxArgument)

1 个答案:

答案 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。