Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 使用SPARQL聚合给定范围(间隔)内的值?_Optimization_Sparql_Rdf_Linked Data - Fatal编程技术网

Optimization 使用SPARQL聚合给定范围(间隔)内的值?

Optimization 使用SPARQL聚合给定范围(间隔)内的值?,optimization,sparql,rdf,linked-data,Optimization,Sparql,Rdf,Linked Data,比如说,在RDF数据集中,有一组从0到100的值(例如,百分比)。我想计算给定范围内的值的数量,例如,100-90 | 90-80 |…|10 - 0. 我期望的输出如下所示: ╔════════════════╦════════╗ ║ Range ║ Count ║ ╠════════════════╬════════╣ ║ 100 >= x < 90 ║ 4521 ║ ║ 90 >= x < 80 ║ 650 ║ ║ ...

比如说,在RDF数据集中,有一组从0到100的值(例如,百分比)。我想计算给定范围内的值的数量,例如,100-90 | 90-80 |…|10 - 0. 我期望的输出如下所示:

╔════════════════╦════════╗
║     Range      ║ Count  ║
╠════════════════╬════════╣
║ 100 >= x < 90  ║ 4521   ║
║ 90 >= x < 80   ║ 650    ║
║     ...        ║ ...    ║
║ 10 >= x <= 0   ║ 2650   ║
╚════════════════╩════════╝
╔════════════════╦════════╗
║     范围║ 计数║
╠════════════════╬════════╣
║ 100>=x<90║ 4521║
║ 90>=x<80║ 650║
║     ...        ║ ...    ║

║ 10>=x 90&&?值80&&?值=0&&?值您可以使用块指定范围的上限和下限,并为每个范围“id”获取一个“id”。然后你可以在这个范围内分组。例如:

选择rangeId(计数(?x)为numMatches){
值(?rangeId?最小值?最大值){(010)
(1 10 20)
#-- ...
(8 80 90)
(9 90 100) }
#--查找?x的值的查询。。。
过滤器(?min)
PREFIX dqv: <http://www.w3.org/ns/dqv#>
select distinct ?count90_100 ?count80_90 ?count10_0  where  {
 ?m a dqv:QualityMeasurement .
 { select count(?m) as ?count90_100 where { ?m dqv:value ?value FILTER (?value > 90 && ?value <= 100) }}
 { select count(?m) as ?count80_90 where { ?m dqv:value ?value FILTER (?value > 80 && ?value <= 90) }}
 { select count(?m) as ?count10_0 where { ?m dqv:value ?value FILTER (?value >= 0 && ?value <= 10) }}
}