提问人:Darren Cook 提问时间:11/5/2023 最后编辑:Darren Cook 更新时间:11/7/2023 访问量:49
点在 SPARQL 查询中解决了什么问题?
What problem does the dot solve in SPARQL queries?
问:
在我看到的每个教程或参考资料中,似乎都用在每一行的末尾,但从未解释过它为什么在那里。对于更复杂的查询,点似乎有时在内部,有时紧随其后。然后有时根本不使用。这让我发疯了,因为在不知道它的目的的情况下,我觉得我将通过反复试验来排除查询:扔进一个点并重复,尝试删除一个点并重复。.
{ }
我的主要问题是,如果你没有作为语法的一部分,什么会中断,或者什么样的查询不能写?.
用“它就像SQL中的东西”或“与正则表达式中的东西一样”来解释也可能有所帮助。
可选的示例。这个(2001年前3个月出生的国际象棋选手)可以用6个点来写:.
SELECT ?person ?personLabel ?genderLabel ?dob
WHERE {
?person wdt:P31 wd:Q5;
wdt:P106 wd:Q10873124;
wdt:P569 ?dob.
OPTIONAL{ ?person wdt:P21 ?gender. }.
FILTER("2001-01-02"^^xsd:dateTime <= ?dob && ?dob < "2001-03-31"^^xsd:dateTime)
.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en".} .
}
但也可以完全不带点:
SELECT ?person ?personLabel ?genderLabel ?dob
WHERE {
?person wdt:P31 wd:Q5;
wdt:P106 wd:Q10873124;
wdt:P569 ?dob
OPTIONAL{ ?person wdt:P21 ?gender }
FILTER("2001-01-02"^^xsd:dateTime <= ?dob && ?dob < "2001-03-31"^^xsd:dateTime)
SERVICE wikibase:label { bd:serviceParam wikibase:language "en"}
}
答:
3赞
Bergi
11/5/2023
#1
SPARQL 是一种用于查询 RDF 三元组的语言。每个模式都匹配一个三元组,这些三元组模式的语法与 Turtle 或 N3 语法中的语法相同。您需要在列表中分隔多个三元组,尽管最后一个是可选的。如果您有多个具有相同主语或主语谓词的三元组,则可以使用 和 组合它们。空格在 SPARQL 中并不重要。.
.
,
;
评论
0赞
Darren Cook
11/7/2023
谢谢。指出最后一个点是可选的,这是关键。再加上解析器在大多数括号后悄悄地忽略了一个多余的点(请参阅我更新的问题中的示例)这一事实是理解我所看到的查询所需的另一个关键事实。(顺便说一句,禁止连续两个点!
评论