【问题标题】:how to create and pass rdf graphs from memory to DOTNETRDF [closed]如何创建 rdf 图并将其从内存传递到 DOTNETRDF [关闭]
【发布时间】:2015-02-09 07:10:42
【问题描述】:

如果我有 RDF 三元组,则表示它们作为哈希键保存在 Redis 中,其中每个三元组表示为 Key : S:Value P:Value O:Value。

如何将这些三元组的集合传递给 DOTNETRDF 并将它们表示为图形,以便我可以对它们运行 SPARQL 查询?

我知道 DOTNETRDF 中的 SPARQL 引擎只能在存储上运行,但是如果我创建一个实现 IGraph 接口的类,那么它可以在三元组上运行 SPARQL 查询

【问题讨论】:

  • "我被这个问题困扰了一个星期。"如果您已经为此工作了一周,那么您肯定应该已经尝试过一些尝试,并且现在您应该有一个更具体的技术问题需要解决。这周你尝试了什么?什么没有奏效?有什么帮助?
  • @Joshua Taylor,感谢您的回复。事实上,我尝试以定义用于传递三元组的数据结构的方式实现 IGraph 接口,但似乎应用 sparql 引擎的唯一方法是将这些三元组存储在三元组存储中。当前由 DOTNETRDF 提供的内存三重存储有很多限制,我在谷歌上苦苦挣扎,但找不到任何关于如何构建自己的三重存储并将其与 DOTNETRDF 集成的好的资源。所以我非常感谢专家对这个问题的意见
  • 最初的上下文问题是:如果将三元组作为 IGraph 传递给 DOTNETRDF API,是否可以直接在三元组上运行 SPARQL 查询?

标签: rdf sparql semantics dotnetrdf


【解决方案1】:

事实上,我尝试通过定义用于传递三元组的数据结构的方式来实现 IGraph 接口,但似乎应用 sparql 引擎的唯一方法是将这些三元组存储在三元组存储中

您可以将任何IGraph 实现放在标准TripleStore 实例中,因此实现IGraph 足以让您入门。如果您还没有从BaseGraph 扩展,通常是最简单的,因为这将为您提供大量免费实现。

所以是的,您可以在任意 IGraph 实现上运行查询:

IGraph g = new MyCustomGraph();
TripleStore store = new TripleStore();
store.Add(g);

// Run query on the store as normal

但是,如果您想更深入地集成,则需要考虑实现ISparqlDataset 接口,它是查询引擎内部使用的实际接口(@98​​7654331@ 和ITripleStore 最终包裹在其中)。还有像 BaseDatasetBaseQuadDataset 这样的基本实现,它们将为您提供大量的实现。

您可能希望查看开源 BrightstarDB 以了解另一个使用 dotNetRDF 的 SPARQL 引擎的三元存储的现有示例

【讨论】:

  • 感谢您的回复,它对我有用,但您能提供任何自定义图表的示例吗??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多