0

我想使用这个端点查询 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_v,dguri_v来使用端点查询 DBLP 数据库。

4

1 回答 1

1

如果您遇到端点的 SNORQL UI,您总是可以从页面标题和页眉中找到实际的 SPARQL 端点 URI,对于您的示例注释,它在两个地方都说明了以下内容:

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

这里的 URI 是您想要的uri_v变量。

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

编辑

SNORQL 是一个 UI,因此它不是SPARQL 端点,它只是端点上的 HTML+JS 包装器。

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

于 2013-04-03T22:46:35.007 回答