SPARQL:使用函数bif:st_距离和bif:st_点在服务外部不起作用

SPARQL:使用函数bif:st_距离和bif:st_点在服务外部不起作用,sparql,rdf,semantic-web,dbpedia,Sparql,Rdf,Semantic Web,Dbpedia,我正在尝试编写一个SPARQL请求,其中我希望从自己的数据集中查询国家名称,使用dbpedia资源检索国家的纬度和经度,然后使用bif:st_distance函数计算它们之间的距离。我想要使用的纬度和经度是浮动的,因此我必须首先将它们转换为具有bif:st_point的点,因为该函数只获取点 在我的本地机器上,我正在运行ApacheJena fuseki服务器,并加载了数据集。我尝试了以下方法: PREFIX rate: <http://MYNAME.bplaced.net/rating/

我正在尝试编写一个SPARQL请求,其中我希望从自己的数据集中查询国家名称,使用dbpedia资源检索国家的纬度和经度,然后使用
bif:st_distance
函数计算它们之间的距离。我想要使用的纬度和经度是浮动的,因此我必须首先将它们转换为具有
bif:st_point
的点,因为该函数只获取点

在我的本地机器上,我正在运行ApacheJena fuseki服务器,并加载了数据集。我尝试了以下方法:

PREFIX rate: <http://MYNAME.bplaced.net/rating/index.ttl#>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX bif: <bif:>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX afn: <http://jena.apache.org/ARQ/function#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?from ?to ?latituded ?longituded ?latitudeo ?longitudeo ?distance WHERE{
  
    {SELECT ?from ?to (AVG(?latd) as ?latituded) 
        (AVG(?longd) as ?longituded)
        (AVG(?lato) as ?latitudeo)
        (AVG(?longo) as ?longitudeo) WHERE {
            ?rating rate:from dbr:Germany.                  
            ?rating rate:year "1965"^^xsd:gYear.
            ?rating rate:from ?from.
            ?rating rate:to ?to.
            SERVICE <http://dbpedia.org/sparql>{
                ?from geo:lat ?latd.
                ?from geo:long ?longd.
                ?to geo:lat ?lato.
                ?to geo:long ?longo.
            }
      
        } GROUP BY ?from ?to
    }

BIND(bif:st_distance(
    bif:st_point(?latituded,?longituded),
    bif:st_point(?latitudeo,?longitudeo)
)AS ?distance).
}
前缀速率:
前缀dbr:
前缀xsd:
前缀dbo:
前缀bif:
前缀dbr:
前缀geo:
前缀afn:
前缀rdfs:
选择从?到?纬度?经度?纬度?经度?距离在哪里{
{选择从到(平均(?latd)作为纬度)
(平均(?长)为纵向)
(按纬度计算的平均值)
(平均(?longo)as?longitudeo)其中{
?评级率:来自dbr:德国。
评级率:1965年。
?评级率:从?从。
?评级率:至?至。
服务{
?来自geo:lat?latd。
?来自geo:long?long。
?至geo:lat?lato。
给geo:long?longo。
}
}由?从?到?分组
}
绑定(bif:st_距离(
bif:st_点(?横向、纵向),
bif:st_点(?纬度、经度)
)如(距离)。
}
这给我留下了这样的结果:

如您所见:“距离”列仍为空。我确信这与BIND语句是否位于服务中有关。某些值可能对绑定不可见

我做错了什么,或者我可以用什么不同的方法来解决这个问题?
提前谢谢

bif名称空间中的空间函数特定于DBpedia使用的软件Virtuoso。因此,它们只能在服务子句中工作,其中查询是在Virtuoso服务器上执行的。因此,要么在SERVICE子句中使用这些函数,要么看看Jena空间函数。

bif名称空间中的空间函数特定于DBpedia使用的软件Virtuoso。因此,它们只能在服务子句中工作,其中查询是在Virtuoso服务器上执行的。因此,要么在SERVICE子句中使用这些函数,要么看看Jena空间函数