0

DBPedia にクエリを実行したい asp.net プロジェクトがあります。次のコードを使用すると、エラーが発生します。

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());}

エラー メッセージ:「タイプ 'System.Xml.XmlException' の例外が dotNetRDF.dll で発生しましたが、ユーザー コードで処理されませんでした」.

例外を処理しても、メソッドを実行できません。詳細については、無効な XML バージョン 1.1 があるとのことです。

XML は DBPedia から来ているので、xml バージョンを変更する方法や、この問題を処理する方法がわかりません。

4

1 に答える 1

0

dbpedia SPARQL エンドポイントの背後で使用されるトリプル ストアである Virtuoso は、その XML 結果生成を更新しました。彼らは、このコミットで XML バージョン 1.0 を 1.1 に置き換えました。これにより、dotNetRDF パーサーで例外が発生します。

その後、Virtuoso は XML ヘッダーの変更を元に戻しました。DBPedia がすぐにバイナリを更新してくれることを願っています。そのため、古い XML ヘッダーが SPARQL の結果に再び表示されます。

ソース: http://github.com/openlink/virtuoso-opensource/issues/405

于 2015-05-25T11:33:38.973 に答える