.net rdf dblp数据集查询

时间:2013-04-03 23:55:14

标签: .net rdf dotnetrdf

当我运行以下代码以使用此代码片段查询dblp数据集时 我正在使用此端点http://dblp.l3s.de/d2r/snorql  enter code here String st =“”;         String qry =“”;         字符串uri_V;

    uri_V = "http://dblp.l3s.de/d2r/sparql";



    // Modify if need......
    //String ns = "\""+TextBox1.Text.ToString()+"\"";
    // String qry = "SELECT DISTINCT ?name WHERE { ?person foaf:name ?name.FILTER regex(str(?name),"+ns+").}";
    if (radiosrch.SelectedIndex == 0)
    {
        qry = "SELECT ?title WHERE {?game <http://purl.org/dc/terms/subject> <http://dbpedia.org/resource/Category:First-person_shooters> .?game foaf:name ?title .}ORDER by ?title";
    }
    else// if (radiosrch.SelectedIndex == 1) 
    {
        // qry= "query for publisher."
        qry = "SELECT DISTINCT ?Concept WHERE {[] a ?Concept} LIMIT 10";
    }


    //Common
    SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri(uri_V));
    SparqlResultSet results = endpoint.QueryWithResultSet(qry);
    foreach (SparqlResult result in results)
    {
        Console.WriteLine(result.ToString());
        st = st + result.ToString() + "\n";
    }
    TextBox3.Text = st.ToString();
}
catch (Exception ex)
{
    Label1.Visible = true;
    Label1.Text = ex.ToString();
}

我收到以下错误

VDS.RDF.Query.RdfQueryException:尝试进行SPARQL查询时发生HTTP错误,有关详细信息,请参阅内部异常---&gt; System.Net.WebException:远程服务器返回错误:(400)错误请求。在VDS.RDF上的VDS.RDF.Query.SpyqlRemoteEndpoint.ExecuteQuery(Uri target,String postData,String accept)上的System.Net.HttpWebRequest.GetResponse()处于VDS的VDS.RDF.Query.SparqlRemoteEndpoint.QueryInternal(String sparqlQuery,String acceptHeader)。 RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(ISparqlResultsHandler handler,String sparqlQuery)---内部异常堆栈跟踪结束---在VDS.RDF.Query上的VDS.RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(ISparqlResultsHandler handler,String sparqlQuery)。 SparqlRemoteEndpoint.QueryWithResultSet(String sparqlQuery)位于d:\ SPARQL \ Index.aspx.cs中的Index.ImageButton1_Click(Object sender,ImageClickEventArgs e):第48行

Plz帮我解决ASAP,PLZ

1 个答案:

答案 0 :(得分:0)

使用dotNetRDF

查看Debugging HTTP Communications上的文档

在您的请求之前设置以下内容:

Options.HttpDebugging = true;

这将使dotNetRDF向控制台打印有关HTTP请求和响应的调试信息,如果这不足以启发,还可以启用以下内容:

Options.HttpFullDebugging = false;

这会将完整的HTTP响应转储到控制台,这样您就可以确切地看到服务器发回的错误消息。

然而启用后一个选项会导致后续代码失败,现在出现不同的错误,因为预期的响应流不会耗尽,所以一旦这给你足够的信息来调试你的问题就不会忘了再把它关掉!