使用dotNetRDF查询AllegroGraph

时间:2017-02-21 09:30:58

标签: c# sparql dotnetrdf allegrograph

我已经运行了AllegroGraph服务器并且在查询远程数据存储时遇到问题,但是关于文档的信息很少。

这是我的一小段代码:

using System;
using VDS.RDF;
using VDS.RDF.Storage;

namespace PoC {
  class Program {
    static void Main(string[] args) {
      string server = "http://server";
      string repo = "repo";
      string username = "username";
      string password = "password";

      AllegroGraphConnector agraph = new AllegroGraphConnector(server, repo, username, password);

      Options.HttpDebugging = true;
      Options.HttpFullDebugging = true;

      agraph.Query("SELECT * WHERE { emid:_PCAT_0001 ?p ?o }");
      Console.ReadLine();
    }
  }
}
  

MALFORMED QUERY:解析错误:" emid"的命名空间映射没有定义的   扩展QName" emid:_PCAT_0001"。

虽然在AllegroGraph WebView中我可以运行完全相同的查询并且命名空间被加载到存储库中。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您需要在查询中声明前缀emid :.据推测,AllegroGraph WebView UI会自动为您执行此操作,但普通的SPARQL端点不会。

尝试使用以下内容:

agraph.Query("PREFIX emid: <http://your.uri.goes/here> SELECT * WHERE { emid:_PCAT_0001 ?p ?o }");

显然你应该用你的emid:前缀映射到的真实URI替换那个伪URI!