1

dotNetRDFを使用してすべてのグラフについてDBpediaに問い合わせるのに問題があります。以下のコードを実行した後:

SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(
    new Uri("http://dbpedia.org/sparql"), "http://dbpedia.org"
);
SparqlResultSet results = endpoint.QueryWithResultSet(
    "SELECT DISTINCT ?g WHERE { GRAPH ?g {?s ?p ?o} }"
);

私はUriFormattedExceptionメッセージを持っていますInvalid URI: The format of the URI could not be determined.

次のグラフに問題があります:b3sonto、、、、-おそらくdotNetRDFはデフォルトのグラフURIを忘れていますb3sifpdbprdf-labelvirtrdf-labelfacets

ところで。dotNetRDFからこのクエリを正常に実行できます。 SELECT ?s ?p ?o FROM <b3sonto> WHERE { ?s ?p ?o} limit 20

なぜそれが機能しないのか分かりますか?

4

1 に答える 1

1

これらは有効な URI ではないため、返されたときに dotNetRDF はそれらを処理できません。これは Virtuoso のバグであり、Virtuoso に報告する必要があります (virtuoso-users@lists.sf.net)

デフォルトのグラフは定義上名前がなく、URI がないため、これらはデフォルトのグラフとは関係ありません。

dotNetRDF はデフォルトでは、クエリを送信する前にクエリをまったく解析しないため、これらの偽の URI を使用して Virtuoso にクエリを実行できます。これにより、dotNetRDF の標準に準拠した実装では拒否される可能性のある非標準の構文をリモート エンドポイントに送信できます。

于 2012-12-03T23:57:29.430 に答える