Subquery 使用SPARQL 1.1选择有限的子查询数据
我正在努力完成一些事情,但我遇到了性能问题Subquery 使用SPARQL 1.1选择有限的子查询数据,subquery,sparql,Subquery,Sparql,我正在努力完成一些事情,但我遇到了性能问题 我有商店和产品。产品通过:inStore谓词链接到商店。这里的主要目的是从每个匹配的商店获得5种产品,总限量为75种产品。订单应该是最近的距离和最高的价格。我的问题是: SELECT ?store ?productID ?distance ?price { { SELECT ?store ?distance { ?store omgeo:nearby(51.5125591000 -0.1248754000
我有商店和产品。产品通过:inStore谓词链接到商店。这里的主要目的是从每个匹配的商店获得5种产品,总限量为75种产品。订单应该是最近的距离和最高的价格。我的问题是:
SELECT ?store ?productID ?distance ?price {
{
SELECT ?store ?distance {
?store omgeo:nearby(51.5125591000 -0.1248754000 '100km') .
?store geo-pos:lat ?latBase .
?store geo-pos:long ?longBase .
BIND (omgeo:distance(51.5125591000, -0.1248754000, ?latBase, ?longBase) AS ?distance)
} ORDER BY (?distance)
}
OPTIONAL {
{
SELECT ?productID ?price {
{
SELECT ?productID {
?productID :inStore ?store .
}
}
?productID :price ?price .
} ORDER BY DESC(?price) LIMIT 5
}
}
FILTER (BOUND(?productID))
} LIMIT 75
这里的问题是,在一个功能强大的服务器上,这是非常缓慢的。有什么建议吗?您使用的是什么查询系统?GraphDB(néOWLIM)?是的,我正在使用GraphDB“从每个匹配的商店获得5种产品,总限制为75种产品”。这些类型的查询很难用SPARQL编写。您可能会发现,它所链接的一些内容非常有用。