如果我有 RDF 三元组,则表示它们作为哈希键保存在 Redis 中,其中每个三元组表示为键:S:Value P:Value O:Value。
如何将这些三元组的集合传递给 DOTNETRDF 并将它们表示为图形,以便我可以在它们上运行 SPARQL 查询?
我知道 DOTNETRDF 中的 SPARQL 引擎只能在存储上运行,但是如果我创建一个实现 IGraph 接口的类,那么它可以在三元组上运行 SPARQL 查询
实际上,我尝试以定义用于传递三元组的数据结构的方式实现 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
接口,它是查询引擎内部使用的实际接口(IGraph
并ITripleStore
最终包裹在其中)。再次有一些基本的实现,比如BaseDataset
and BaseQuadDataset
会给你实现的块。
您可能希望查看开源BrightstarDB以获取另一个使用 dotNetRDF 的 SPARQL 引擎的三元存储的现有示例