【问题标题】:SPARQL Query for common values常见值的 SPARQL 查询
【发布时间】:2018-02-16 22:22:20
【问题描述】:

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

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

【问题讨论】:

  • 你必须 group by 参数然后。您当前的查询做了一些不同的事情,它返回每个项目的参数数量。这肯定不是你想要的。

标签: sparql triplestore


【解决方案1】:

根据 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多