使用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
,b3sifp
,dbprdf-label
,virtrdf-label
,facets
- 可能dotNetRDF会忘记默认图URI < / p>
顺便说一句。我可以成功执行dotNetRDF的这个查询:
SELECT ?s ?p ?o FROM <b3sonto> WHERE { ?s ?p ?o} limit 20
你知道它为什么不起作用吗?
答案 0 :(得分:1)
那些不是有效的URI,因此dotNetRDF在返回时无法处理它们。这是Virtuoso的一个错误,应该向他们报告(virtuoso-users@lists.sf.net)
它们与默认图形无关,因为默认图形的定义是未命名的,并且没有URI。
您可以使用这些假URI来查询Virtuoso,因为dotNetRDF在发送查询之前根本不会解析查询。这允许您将非标准语法发送到远程端点,dotNetRDF的标准兼容实现可能会拒绝该端点。