2013-06-27 174 views
2

我試圖用這個C#代碼來執行對DBpedia的端點的SPARQL查詢:執行SPARQL查詢DBpedia的端點

try 
     { 
      SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri("http://dbpedia.org/sparql"), "http://dbpedia.org"); 
      string query = "SELECT ?artist ?album WHERE { ?album d:producer :Timbaland . ?album d:musicalArtist ?artist . }"; 
      SparqlResultSet rset = endpoint.QueryWithResultSet(query); 
      foreach (SparqlResult result in rset.Results) 
      { 

       Console.WriteLine(result.ToString()); 
      } 
     } 
     catch (Exception ex) 
     { 

      Console.WriteLine(ex.Message.ToString()); 
     } 

我仍然得到一個異常,而試圖發生

一個HTTP錯誤要進行SPARQL查詢,請參閱內部例外以瞭解詳情

有什麼可能導致這種情況?

+1

價值是所有的錯誤消息說?你有權訪問HTTP錯誤代碼嗎?它確實表示「看到內部例外的細節」。 [內部例外](http://msdn.microsoft.com/en-us/library/system.exception.innerexception.aspx)提供了什麼細節? –

+1

你的查詢結果不正確;如果將其粘貼到公共端點,您將看到[錯誤消息](http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT+%3Fartist+%3Falbum+ WHERE +%7B +%3Falbum + d%3Aproducer +%3ATimbaland +。++%3Falbum + d%3AmusicalArtist +%3Fartist +。+%7D&format = text%2Fhtml&timeout = 30000&debug = on)我建議您在將代碼硬編碼到應用程序之前使用交互式界面調試您的查詢。 –

回答

0

的錯誤信息是合理的描述,就像它說看到了內部異常的詳細信息,這將給你的淨WebException發生,其可允許(如果可用),這將給你獲得你所獲得的淨WebResponse訪問例如響應碼和正文。

由於@Joshua Taylor指出您的實際查詢在這種情況下無效。

也可以讀取dotNetRDF documentationDebugging HTTP Communication