C# 查询DBLP数据库

C# 查询DBLP数据库,c#,.net,rdf,dotnetrdf,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 nee

我想使用以下端点查询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();
String st=”“;
字符串qry=“”;
字符串uri_V;
字符串dguri_V;
uri_V=”http://dbpedia.org/sparql";
dguri_V=”http://dbpedia.org";
//如果需要,请修改。。。。。。
//字符串ns=“\”+TextBox1.Text.ToString()+“\”;
//String qry=“选择不同的名称,其中{person foaf:name?name.FILTER regex(str(?name),“+ns+”)。}”;
如果(radiorch.SelectedIndex==0)
{
qry=“选择标题,其中{游戏。?游戏foaf:名称?标题。}按标题排序”;
}
else//if(radiorch.SelectedIndex==1)
{
//qry=“查询发布服务器。”
qry=“选择不同的概念,其中{[]一个概念}限制为10”;
}
//普通的
SparqlRemoteEndpoint=新的SparqlRemoteEndpoint(新Uri(Uri_V)、dguri_V);
SparqlResultSet results=endpoint.QueryWithResultSet(qry);
foreach(SparqlResult-in-results)
{
Console.WriteLine(result.ToString());
st=st+result.ToString()+“\n”;
}
TextBox3.Text=st.ToString();

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

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

Snorql:探索

这里的URI是您想要的
URI\u v
变量的URI

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

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


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

@user2242304澄清了我的答案,请帮助我解决此问题,它包含错误!!thanx很多RobV先生,我仍然在努力解决我的问题,但是你的解释给了我新的希望,我将继续研究它,也许问题只在于服务器,因为它对dbpedia非常有效,我应该加载rdf转储并查询它吗??