0

SPARQL 图的概念对我来说仍然是抽象的。

图表是否类似于 SQL 表?一个三元组可以属于多个图吗?

有没有办法获取属于三元组的图的 URI?

有没有办法获取存储在 GraphDB 存储库中的每个图的 URI?获取默认图的 URI?

谢谢,

4

2 回答 2

1

除了 UninformedUser 的答案外,还可以使用以下 cURL 命令列出图形curl 'http://<host>:<port>/repositories/<your_repo>/contexts'

可以使用 Workbench 轻松探索和导出 GraphDB 存储库中的图形内容。在此处输入图像描述

这里也可以找到默认图表的值。

于 2020-04-22T13:21:28.077 回答
0

为了理解这些差异,我们可以首先参考数据模型本身:

关系模型

SQL在关系数据库上运行。一般而言,关系模型是将数据及其依赖关系建模为结构化表的一种方法。如果我们要查询由多个表构建的信息,那么我们执行所谓的join操作,即检索不同表中元素之间的关系。join操作员经常使用表中通用的键。此模型的一个缺点是当您需要执行许多此类join操作来检索所需信息时。在这种情况下,响应变得非常缓慢,性能显着下降。

图模型

相反,SparQL它是一种查询语言,具有类似 SQL 的语法,但对图形数据进行操作。图形数据模型不将数据存储为表格。相反,它使用三重存储(另一种选择是使用属性图,但您的问题是指三重存储)。RDF 三元组是用于描述图形数据模型中语句的 W3C 标准方式。它由Subject, Predicate,组成ObjectSubject是三元组所指的实体,Predicate是它所具有的关系类型,Object是主体所连接的实体或属性。主题始终具有唯一标识符(例如,URI),而对象可以是文字或具有 URI 的另一个实体。

进一步比较

您可以在本书的第 2 章(存储连接数据的选项)中查看模型的更详细比较:图形数据库,第 2 版,作者:Ian Robinson、Jim Webber、Emil Eifrem

回到你的问题

图表是否类似于 SQL 表?一个三元组可以属于多个图吗?

不,图表不是 SQL 表。是的,一个三元组可以出现在不同的图表中(只要三元组具有相同的主语、谓语和宾语)。但是,如果您使用不同的本体,三元组将出现在不同的上下文中。

有没有办法获取属于三元组的图的 URI?有没有办法获取存储在 GraphDB 存储库中的每个图的 URI?获取默认图的 URI?

SparQL 查询是图形模式。您需要指定要搜索的结构类型。

正如 UninformedUser 评论的那样:

所有三元组

select distinct ?g {graph ?g {?s ?p ?o}}

包含特定三元组的所有结构

select distinct ?g {graph ?g {:s :p :o}}
于 2020-04-28T09:26:03.400 回答