我正在通过babelfy endpoint中的Python脚本执行实体链接。执行该操作时,我有一个实体,其中包含两个,一个或一个无知识条目:babelnet和dbpedia。
有了这个,我想获取我刚刚收到的实体位置的纬度和经度坐标。实现此目标的最佳方法是什么?
我一直在阅读一些选项,并且我认为完成此操作的可靠方法是向dbpedia sparql endpoint发送Python请求。但是,我对SPARQL完全陌生,我不知道如何通过提供地名或更简单地输入实体条目来获取纬度和经度坐标。
例如,给定此实际输出,SPARQL查询应如何获取坐标?
答案 0 :(得分:0)
您想要dbpedia条目中的geo.lat
和geo.long
条目。
一个简单的sparql可以得到
select ?name ?lat ?long
where {
?s rdfs:label ?name.
?s geo:lat ?lat.
?s geo:long ?long.
}
您可能不得不摆弄PREFIX
和rdfs
的适当geo
详细信息,但是通读后应该可以解决。 geo
的规格可以在这里找到:https://www.w3.org/2003/01/geo/#vocabulary
按上述方式运行,端点应报告dbpedia中标记有纬度和经度详细信息的所有实体。
如果您想在标签名称上应用过滤器(例如,对特定名称进行搜索),可以通过在?s rdfs:label "Madrid".
上添加其他过滤器来实现。
类似地,如果您想直接使用实体URI进行查询,则只需将查询中对?s
的引用替换为所需的特定URI,或添加以下行:
BIND (<http://dbpedia.org/resource/Madrid> AS ?s)
要将?s
变量设置为特定值,并仅检索该条目的详细信息。