我有一个 asp.net 项目,我想在其中查询 DBPedia。
使用以下代码我收到错误:
public string testEndpoint()
{
//TEST02
SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri("http://dbpedia.org/sparql"), "http://dbpedia.org");
string res = "";
//Make a SELECT query against the Endpoint
SparqlResultSet results = endpoint.QueryWithResultSet("SELECT ?year WHERE {dbpedia:Rihanna dbpedia-owl:birthYear ?year}");
foreach (SparqlResult result in results)
{
res = result.ToString();
Console.WriteLine(result.ToString());}
错误消息:“dotNetRDF.dll 中发生‘System.Xml.XmlException’类型的异常,但未在用户代码中处理”。
即使我处理了异常,该方法也无法执行。关于详细信息,它说存在无效的 XML 版本 1.1。
由于 XML 来自 DBPedia,我不知道如何更改 xml 版本,也不知道如何处理这个问题。
Virtuoso 是 dbpedia SPARQL 端点后面使用的三元组存储,它已更新其 XML 结果生成。他们将 XML 版本 1.0 替换为 1.1this https://github.com/openlink/virtuoso-opensource/commit/b7bf79008d750a0cc0fe3f0cfc479380d0beeae1犯罪。这会导致 dotNetRDF 解析器出现异常。
Later http://sourceforge.net/p/virtuoso/virtuoso-opensource/ci/f1cf34ad3dec2bf1db53a29c311d1b2a2662b994Virtuoso 恢复了 XML 标头中的更改。希望 DBPedia 能够尽快更新其二进制文件,以便旧的 XML 标头再次出现在 SPARQL 结果中。
Source: http://github.com/openlink/virtuoso-opensource/issues/405 http://github.com/openlink/virtuoso-opensource/issues/405
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)