-1

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

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

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

4

1 回答 1

0

实际上,我尝试以定义用于传递三元组的数据结构的方式实现 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接口,它是查询引擎内部使用的实际接口(IGraphITripleStore最终包裹在其中)。再次有一些基本的实现,比如BaseDatasetand BaseQuadDataset会给你实现的块。

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

于 2014-12-15T10:36:05.217 回答