【问题标题】:SPARQL 1.1 entailment regimes and query with FROM clauseSPARQL 1.1 蕴含机制和使用 FROM 子句的查询
【发布时间】:2015-02-09 17:31:35
【问题描述】:

我目前正在记录/测试有关 SPARQL 1.1 蕴含机制的文件,并且该建议反复声明

范围图与活动图等价

但它没有指定活动图指的是什么:它是查询中使用的数据集吗?商店中所有图表的联合?

作为确定这一点的测试,我在带有 RDF Schema 和直接类型推理存储 (v2.7.14) 的 Sesame Memory 存储中得到了这个图 URIed <http://www.example.org/>

@prefix ex:<http://www.example.org/> .
ex:book1 rdf:type ex:Publication .
ex:book2 rdf:type ex:Article .
ex:Article rdfs:subClassOf ex:Publication .
ex:publishes rdfs:range ex:Publication .
ex:MITPress ex:publishes ex:book3 .

我一直在尝试以下查询(这意味着使用默认图表,因此使用推理引擎)

SELECT ?s WHERE { ?s a ex:Publication . }

正如预期的那样,它返回了所有三个实例

<http://www.example.org/book1>
<http://www.example.org/book2>
<http://www.example.org/book3>

查询时:

SELECT ?s FROM ex: WHERE { ?s a ex:Publication . } 

只返回

<http://www.example.org/book1>

在上述情况下,两个结果不应该是一样的吗?

如果数据和架构在存储中的两个图表之间拆分(如 &lt;urn:rdfs-schema&gt;&lt;urn:data&gt;,或者甚至分散在更多图表中)并且查询使用这两个图表(或FROM 子句中的模式相关图的子集,而不是默认图?

意思是推理应该在整个商店中是全局的,还是取决于查询数据集?

或者该建议是否足够松散以使其成为依赖于实现的问题?

谢谢你的灯,

最大。

EDIT这个问题被重定向到SPARQL 1.1 entailment regimes and query with FROM clause (follow-up)

【问题讨论】:

    标签: sparql inference triplestore named-graphs


    【解决方案1】:

    您的第二个查询仅返回 book1,因为在 Sesame 的 RDFS 推理器中,蕴含语句被插入到 default 图中,而不是蕴涵前提所在的命名图中.因此,您查询的图表中根本不存在包含的结果。

    这种设计选择的原因至少部分是历史性的,因为 Sesame RDFS 推理引擎早于 W3C 的蕴涵机制概念。当时的基本原理是,在对多个命名图进行推理的情况下(例如,一个前提来自图 A,另一个来自图 B),插入默认图(而不是在 A、B 或两者中)是最简单,混淆最少。

    芝麻目前不明确支持 W3C 蕴涵制度规范。但是,如果您觉得可以进行简单的改进以使其更加兼容,请务必使用log a feature request

    (披露:芝麻开发者)

    【讨论】:

    • 感谢您的精确,我忘记了这个事实。我不知道更改是否简单,但合规会很好:)
    • 只是为了确定,关于推荐中的推理范围图,这是否意味着仅使用查询活动图计算推理?即每个请求一个引擎实例?
    【解决方案2】:

    SPARQL 1.1 标准未指定默认图表中的具体内容。特别是,请参阅13.1 Examples of RDF Datasets,其中提到:

    RDF Dataset 的定义不限制 命名图和默认图。信息可以在不同的地方重复 图表;图之间的关系可以暴露。两个有用的 安排是:

    • 在默认图中包含有关命名图的出处信息的信息
    • 将命名图中的信息也包含在默认图中。

    但是,通过使用 FROM 子句来指定哪个图应该是默认图,或者通过使用多个 FROM 子句来指定应该合并哪些图作为默认图。

    这就是默认图表的全部内容。 活动图是您将在 SPARQL 1.1 规范中看到的另一个术语:

    用于匹配基本图形模式的图形是 活动图。在前面的部分中,所有查询都已显示 针对单个图执行,RDF 数据集的默认图 作为活动图。 GRAPH 关键字用于使活动 绘制数据集中所有命名图之一的一部分 询问。

    因此,您可以使用 from(可能多次)来控制默认图,从而控制初始活动图,然后在查询中使用 graph { ... }更改活动图表。

    【讨论】:

    • 嗨@Joshua,感谢您的回答,但我不明白您的意思。在这里,我真的很想知道在商店上实施的蕴涵制度如何定义其范围图(以及在进入实施依赖之前,建议在多大程度上有帮助)。含义应该在全局范围内评估推理(取决于存储中的机制和图),或者推理器是否使用查询活动图。
    • @Max 我主要指的是你所说的问题部分:“'范围图与活动图等效'但它没有指定活动图指的是什么:它是查询中使用的数据集吗?商店中所有图的联合?”我只是回应关于活动图意味着什么的部分,并且由于默认图的内容是实现,当活动图是默认图时,其内容取决于实现。 Jeen 的回答(我赞成)更具体,可能更有用。
    • 好的,我现在更好地理解了您的答案;)但是,由于 Jeen 确认我的测试对建议没有实际意义,因此我仍然保留了蕴涵范围图的观点(请参阅 Jeen 的第二条评论回答)。无论如何,我可能会发布一个明确的后续问题来清除问题。随意参与;)谢谢
    猜你喜欢
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2012-01-15
    相关资源
    最近更新 更多