2

在 SPARQL中aQuadPattern定义

QuadPattern ::= '{' Quads '}'
Quads       ::= TriplesTemplate? ( QuadsNotTriples '.'? TriplesTemplate? )*

由此我了解到 aQuadPattern可以为空。但我无法理解原因。空的目的是什么QuadPattern

4

2 回答 2

3

正如@Antoine Zimmermann 指出的那样,仅仅因为语法允许它并不意味着它是有意义的。

在这种情况下,我相信这样做是为了将语法保持在一定的约束范围内并简化它。如果您不允许Quads为空,则必须重新定义QuadPattern规则:

QuadPattern ::= '{' '}' | '{' Quads '}'

这只会增加不必要的复杂性,尤其是在您使用解析器生成器时

于 2013-04-03T15:58:04.247 回答
2

例如,使用空的四边形图案,您可以完全删除默认图形:

DELETE WHERE { }

但是语法允许某些东西的事实并不一定意味着有一个故意的选择来允许特定的模式。在某些情况下,以更通用的方式定义事物可能更方便。

于 2013-04-02T18:03:48.100 回答