使用 QueryWithResultSet 的 dotnetrdf xml 异常

2024-01-16

我有一个 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(使用前将#替换为@)

使用 QueryWithResultSet 的 dotnetrdf xml 异常 的相关文章

随机推荐