【问题标题】:Sparql without FROM keyword没有 FROM 关键字的 Sparql
【发布时间】:2011-11-13 12:35:50
【问题描述】:

很高兴有人能澄清一下。

我总是读到 SQL 和 SPARQL 非常相似。 但是,很多时候我都看到没有 FROM 关键字的 sparql 查询。 您会假设您必须在数据库中的某处查询数据源“FROM” 就像 SQL 的行为方式一样。

例子

PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
SELECT ?name
WHERE 
{
    ?person foaf:name ?name .
}

它如何知道去哪里寻找?就像在 SQL 中一样,查看 Database1 - table1

干杯

【问题讨论】:

    标签: database semantics semantic-web sparql


    【解决方案1】:

    SPARQL 查询是针对 RDF 数据集执行的,该数据集有两个部分:

    • 单个默认图表:一组没有附加名称的三元组
    • 零个或多个命名图:一组由名称标识的三元组

    您可以使用可选的FROMFROM NAMED 子句指定要查询的图形。看看Specifying RDF Datasets。如果省略这些子句,则查询将在默认图上执行。


    图形和 RDF 数据集的存储取决于实现。例如,使用Jena ARQ,您使用QueryExecutionFactory,您可以通过两种方式对其进行初始化:

    • 传递一个Model,它将成为执行查询的默认图
    • 传递一个Dataset,它可以包含一个默认图和多个命名图

    Jena ARQ 的代码示例可在here 获得。其他实现可能会有所不同。

    【讨论】:

    • 默认图形的存储位置/方式是什么?
    【解决方案2】:

    它更接近于“查看 Database1,所有表”。

    由于 RDF 中的所有数据都是三元组(或者如果您以这种方式看待世界,则为四元组),您可以一次性查询您拥有的所有数据,而不必担心架构差异。

    【讨论】:

    • 肯定更像是“看看 Database1 认为默认表是什么”?
    • 最初,我认为如果没有指定“FROM”,可以查看一些默认图表。
    • 有,比喻有点弱。在许多 RDF 系统中,默认图是整个系统,但更多的是选择您希望查询覆盖的系统部分。
    猜你喜欢
    • 2014-11-18
    • 2015-12-04
    • 1970-01-01
    • 2011-11-05
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多