Rdf 数据集,我们终于可以看到问题所在:geonames资源的IRIs以实际形式的/结尾,但数据中没有/。您需要相应地更改数据

Rdf 数据集,我们终于可以看到问题所在:geonames资源的IRIs以实际形式的/结尾,但数据中没有/。您需要相应地更改数据,rdf,sparql,geonames,Rdf,Sparql,Geonames,注意:http://www.ophileon.com/ox/poi.rdf已被更正。 看起来您可能最终需要运行第一个查询来确定要从geonames获取的数据,检索该信息,然后对该数据运行第二个查询。或者,您可以下载Geonames提供的大数据转储并在本地使用(可能是最简单的解决方案)。数据在哪里?您对哪个端点运行此查询?如果你需要从不同的端点得到三元组,你可能想考虑使用服务< /Cord>关键字。我正在使用Spulg.Org的通用端点运行它。我还对各种图表进行了试验,只是重复了FROM子句。只要

注意:
http://www.ophileon.com/ox/poi.rdf
已被更正。



看起来您可能最终需要运行第一个查询来确定要从geonames获取的数据,检索该信息,然后对该数据运行第二个查询。或者,您可以下载Geonames提供的大数据转储并在本地使用(可能是最简单的解决方案)。

数据在哪里?您对哪个端点运行此查询?如果你需要从不同的端点得到三元组,你可能想考虑使用<代码>服务< /Cord>关键字。我正在使用Spulg.Org的通用端点运行它。我还对各种图表进行了试验,只是重复了FROM子句。只要它们在phileon.com域中,并且只是rdf文件,就没有问题。数据部分位于我的服务器上的rdf中,部分位于geonames域中的某个位置。您是否确实在来自的
中的IRI中有空格?这将是一个问题。此外,请在出现问题时显示错误消息。当我将您的查询用于未注释的行时(但使用IRI中的空格),我会得到一个解析错误。当我删除空格时,我得到一个描述性错误“无法确定三元组内容类型:(URI=:stream=null:hint=null)”,这意味着Jena试图检索数据,但无法确定如何解析它。您是否更改了此查询正在检索的服务器上的数据?在我开始研究这个问题时得到的结果中,我得到了
geonames
的结果,比如
URI上没有最终的
/
,但现在当我运行查询时,有了最终的
/
。我可以看出这是个问题,但我无法解释为什么它似乎发生了变化,只是服务器上的数据发生了变化。是的,我做了,我在编辑中也做了说明;)我在poi.rdfw中添加了斜杠数据在哪里?您对哪个端点运行此查询?如果你需要从不同的端点得到三元组,你可能想考虑使用<代码>服务< /Cord>关键字。我正在使用Spulg.Org的通用端点运行它。我还对各种图表进行了试验,只是重复了FROM子句。只要它们在phileon.com域中,并且只是rdf文件,就没有问题。数据部分位于我的服务器上的rdf中,部分位于geonames域中的某个位置。您是否确实在来自
中的IRI中有空格?这将是一个问题。此外,请在出现问题时显示错误消息。当我将您的查询用于未注释的行时(但使用IRI中的空格),我会得到一个解析错误。当我删除空格时,我得到一个描述性错误“无法确定三元组内容类型:(URI=:stream=null:hint=null)”,这意味着Jena试图检索数据,但无法确定如何解析它。您是否更改了此查询正在检索的服务器上的数据?在我开始研究这个问题时得到的结果中,我得到了
geonames
的结果,比如
URI上没有最终的
/
,但现在当我运行查询时,有了最终的
/
。我可以看出这是个问题,但我无法解释为什么它似乎发生了变化,只是服务器上的数据发生了变化。是的,我做了,我在编辑中也做了说明;)我在poi.rdfJoshua中添加了斜杠,谢谢你详细的回答。我已经能够更进一步了,在地理名称的后面加了一个“/”。@是的,我今天早上意识到这是问题之一。在将来(我早就应该想到这一点),您能否以一种不会在幕后改变的方式提供您的数据?我上面提到的一些结果现在无效,因为非现场数据(即不在堆栈溢出上的数据)已被修改。@如果在嵌套查询中只有SPARQL 1.1支持
from
子句,您甚至可以动态生成
from
子句所需的URI,并在一个查询中完成这一切。但现在看来,您可能需要下载数据并在本地使用它,或者运行一个查询来找出您需要的其他URI,然后使用第二个查询来合并那些带有
from
子句的URI。这也是我的结论。对此不满意,但似乎没有更好的解决方案。约书亚,谢谢你详细的回答。我已经能够更进一步了,在地理名称的后面加了一个“/”。@是的,我今天早上意识到这是问题之一。在将来(我早就应该想到这一点),您能否以一种不会在幕后改变的方式提供您的数据?我上面提到的一些结果现在无效,因为非现场数据(即不在堆栈溢出上的数据)已被修改。@如果在嵌套查询中只有SPARQL 1.1支持
from
子句,您甚至可以动态生成
from
子句所需的URI,并在一个查询中完成这一切。但现在看来,您可能需要下载数据并在本地使用它,或者运行一个查询来找出您需要的其他URI,然后使用第二个查询来合并那些带有
from
子句的URI。这也是我的结论。对此不满意,但似乎没有更好的解决方案。
prefix oxprop: <http://ophileon.com/ox/property#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl:  <http://www.w3.org/2002/07/owl#>
prefix wgs84_pos: <http://www.w3.org/2003/01/geo/wgs84_pos#>

select ?poi ?poiname ?geonames ?latitude


from  <http://www.ophileon.com/ox/poi.rdf>
# from  <http://sws.geonames.org/ >

where
{

   ?poi rdfs:label ?poiname.
   ?poi owl:sameAs ?geonames.
#   ?geonames wgs84_pos:lat ?latitude.


  FILTER(langMatches(lang(?poiname), "EN")).

}
{
  "head": {
    "vars": [ "poi" , "poiname" , "geonames" , "latitude" ]
  } ,
  "results": {
    "bindings": [
      {
        "poi": { "type": "uri" , "value": "http://ophileon.com/ox/poi/2" } ,
        "poiname": { "type": "literal" , "xml:lang": "en" , "value": "Wageningen" } ,
        "geonames": { "type": "uri" , "value": "http://sws.geonames.org/2745088" }
      } ,
      {
        "poi": { "type": "uri" , "value": "http://ophileon.com/ox/poi/3" } ,
        "poiname": { "type": "literal" , "xml:lang": "en" , "value": "Netherlands" } ,
        "geonames": { "type": "uri" , "value": "http://sws.geonames.org/2750405" }
      } ,
      {
        "poi": { "type": "uri" , "value": "http://ophileon.com/ox/poi/1" } ,
        "poiname": { "type": "literal" , "xml:lang": "en" , "value": "Amsterdam" } ,
        "geonames": { "type": "uri" , "value": "http://sws.geonames.org/2759794" }
      }
    ]
  }
}
prefix oxprop: <http://ophileon.com/ox/property#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl:  <http://www.w3.org/2002/07/owl#>
prefix wgs84_pos: <http://www.w3.org/2003/01/geo/wgs84_pos#>

select *

from <http://www.ophileon.com/ox/poi.rdf>
from <http://sws.geonames.org/2745088/about.rdf>    
from <http://sws.geonames.org/2750405/about.rdf>    
from <http://sws.geonames.org/2759794/about.rdf>
where
{
   ?poi rdfs:label ?poiname.
   ?poi owl:sameAs ?geonames.
   ?geonames wgs84_pos:lat ?latitude.
   FILTER(langMatches(lang(?poiname), "EN")).
}
-------------------------------------------------------------------------------------------------------
| poi                            | poiname          | geonames                           | latitude   |
=======================================================================================================
| <http://ophileon.com/ox/poi/2> | "Wageningen"@en  | <http://sws.geonames.org/2745088/> | "51.97"    |
| <http://ophileon.com/ox/poi/3> | "Netherlands"@en | <http://sws.geonames.org/2750405/> | "52.5"     |
| <http://ophileon.com/ox/poi/1> | "Amsterdam"@en   | <http://sws.geonames.org/2759794/> | "52.37403" |
-------------------------------------------------------------------------------------------------------
prefix oxprop: <http://ophileon.com/ox/property#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl:  <http://www.w3.org/2002/07/owl#>
prefix wgs84_pos: <http://www.w3.org/2003/01/geo/wgs84_pos#>


select ?poi ?poiname ?geonameuri ?latitude

from <http://www.ophileon.com/ox/poi.rdf>

where
{
   ?poi rdfs:label ?poiname.
   ?poi owl:sameAs ?geonameuri.
   SERVICE <http://factforge.net/sparql>{
   ?geonameuri wgs84_pos:lat ?latitude.
   }
   FILTER(langMatches(lang(?poiname), "EN")).
}
from  <http://sws.geonames.org/ >
Error 400: Failed to load URL (parse error) http://sws.geonames.org/ : Failed to determine the triples content type: (URI=http://sws.geonames.org/ : stream=null : hint=null)

Fuseki - version 1.0.0 (Build date: 2013-09-12T10:49:49+0100)
poi                            poiname          geonames                          latitude
<http://ophileon.com/ox/poi/2> "Wageningen"@en  <http://sws.geonames.org/2745088>   
<http://ophileon.com/ox/poi/3> "Netherlands"@en <http://sws.geonames.org/2750405>   
<http://ophileon.com/ox/poi/1> "Amsterdam"@en   <http://sws.geonames.org/2759794>
prefix oxprop: <http://ophileon.com/ox/property#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl:  <http://www.w3.org/2002/07/owl#>
prefix wgs84_pos: <http://www.w3.org/2003/01/geo/wgs84_pos#>

select ?poi ?poiname ?geonames ?latitude
from <http://www.ophileon.com/ox/poi.rdf>
from <http://sws.geonames.org/2745088/about.rdf>    
from <http://sws.geonames.org/2750405/about.rdf>    
from <http://sws.geonames.org/2759794/about.rdf>
where
{
   ?poi rdfs:label ?poiname.
   ?poi owl:sameAs ?geonames.
   ?geonames wgs84_pos:lat ?latitude.
   FILTER(langMatches(lang(?poiname), "EN")).
}
select * 
from <http://sws.geonames.org/2759794/about.rdf>
where { ?s ?p ?o }
select * 
from <http://www.ophileon.com/ox/poi.rdf>
from <http://sws.geonames.org/2745088/about.rdf>  
where { ?s ?p ?o }