我想使用此终点查询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数据库。
答案 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。