SPARQL 是一种类似于 SQL 的 RDF 数据查询语言。SPARQL 查询可以生成表格或 RDF 图的结果集,具体取决于所使用的查询类型。
-
SELECT
与 SQL SELECT 类似,因为它生成表格结果集。 -
CONSTRUCT
根据查询结果创建一个新的 RDF 图。 -
ASK
根据查询是否有解决方案返回 Yes 或 No。 -
DESCRIBE
返回有关资源的 RDF 图数据。当查询客户端不知道数据源中 RDF 数据的结构时,这当然很有用。 -
INSERT
将三元组添加到图形中, -
DELETE
从图中删除三元组。
让我们使用 SPARQL(RDF 图的查询语言)来创建一个图。
要编写创建 RDF 图的 SPARQL 查询,请执行以下步骤:
首先,使用关键字为 URI 定义前缀PREFIX
。在下面的例子中,我们设置bedrock
为查询的默认命名空间。
接下来,使用表示您要插入语句。编写主谓宾语句。INSERT DATA
最后,执行这个查询:
正如您在灰色框中显示的示例中看到的那样,我们编写了一个查询,其中包括PREFIX
、 和几个主题谓词对象语句,它们是:INSERT DATA
Fred 有配偶 Wilma,Fred 有孩子 Pebbles,Wilma 有孩子 Pebbles,Pebbles 有配偶 Bamm-Bamm,Pebbles 有孩子 Roxy 和 Chip。
现在,让我们编写一个 SPARQL 查询来访问您刚创建的 RDF 图
首先,使用关键字为 URI 定义前缀PREFIX
。与前面的示例一样,我们将其设置 bedrock
为查询的默认命名空间。
接下来,使用SELECT
表示您要选择某些信息,并用WHERE
表示您的条件、限制和过滤器。
最后,执行这个查询:
正如您在灰色框中显示的示例中所见,我们编写了一个 SPARQL 查询,其中包含 PREFIX
、SELECT
和WHERE
。红色框显示响应书面查询而返回的信息。我们可以看到 Fred、Pebbles、Wilma、Roxy 和 Chip 之间的家庭关系。
SPARQL 与 SQL 非常相似,但是,与 SQL 需要 SQL schema和 SQL 表中的数据不同,SPARQL 可以在图形上使用,并且不需要一开始就定义好schema。
在下面的示例中,我们将使用 SPARQL 来查明 Fred 是否有孙辈
首先,使用关键字为 URI 定义前缀PREFIX
。
接下来,我们用ASK
来发现 Fred 是否有孙子,并WHERE
表示条件。
正如您在绿色框中的查询中所见,Fred 的孩子的孩子是他的孙辈。因此,通过匹配 Fred 的孩子然后匹配他孩子的孩子,可以很容易地用 SPARQL 编写查询。查询ASK
返回“是”,所以我们知道 Fred 有孙子。
相反,如果我们想要 Fred 的孙辈列表,我们可以将ASK
查询更改为一个SELECT
:
查询结果,反映在红色框中,告诉我们 Fred 的孙子是 Roxy 和 Chip。