查询DBLP数据库

时间:2013-04-03 20:58:35

标签: c# .net rdf dotnetrdf

我想使用此终点查询DBLP数据库:

http://dblp.l3s.de/d2r/snorql/

我的代码段:

String st = "";
String qry = "";
String uri_V;
String dguri_V;

uri_V = "http://dbpedia.org/sparql";
dguri_V = "http://dbpedia.org";


// 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), dguri_V);
SparqlResultSet results = endpoint.QueryWithResultSet(qry);
foreach (SparqlResult result in results)
{
    Console.WriteLine(result.ToString());
    st = st + result.ToString() + "\n";
}
TextBox3.Text = st.ToString();

它适用于dbpedia,但我找不到uri_vdguri_v来查询端点的DBLP数据库。

1 个答案:

答案 0 :(得分:1)

如果您遇到针对端点的SNORQL UI,您始终可以从页面标题和标题中找到实际的SPARQL端点URI,对于您的示例说明,它在两个位置都显示以下内容:

  

Snorql:探索http://dblp.l3s.de/d2r/sparql

此处的URI是您uri_v变量所需的URI。

通常,默认图形(您的dguri_v)参数根本不需要,它恰好是DBPedia所必需的。只需使用SPARQL端点URI,您现在就可以查询所需的端点,确保使用仅以端点URI作为参数的SparqlRemoteEndpoint构造函数。

修改

SNORQL是一个用户界面,因此它一个SPARQL端点,它只是一个端点上的HTML + JS包装器。

如上所述,UI将显示它正在查询的实际SPARQL端点的URI。如果要编写查询端点的代码(无论您使用的是哪种工具包/ API),这都是您需要的URI。