为什么变量 + 标签在 SPARQL 中不起作用
Why variable + Label is not working in SPARQL
在维基数据的SPARQL的例子中,我们有这样一个:
SELECT ?h ?date
WHERE
{
?h wdt:P31 wd:Q5 .
?h wdt:P569 ?date .
OPTIONAL {?h wdt:P570 ?d }
FILTER (?date > "1880-01-01T00:00:00Z"^^xsd:dateTime)
FILTER (!bound(?d))
}
LIMIT 1000
我了解到,如果您将 Label 放在变量名称之后,它会显示标签。所以,我不明白为什么这没有输出:
SELECT ?h ?hLabel ?date ...
提前致谢!
我不知道变量名后面的 Label 的具体功能。
但是,对于 rdfs:label,您可以在查询中包含 rdfs:label
。添加以下行:?h rdfs:label ?hLabel.
:
SELECT ?h ?hLabel ?date WHERE
{
?h wdt:P31 wd:Q5 .
?h wdt:P569 ?date .
?h rdfs:label ?hLabel.
OPTIONAL {?h wdt:P570 ?d }
FILTER (?date > "1880-01-01T00:00:00Z"^^xsd:dateTime)
FILTER (!bound(?d))
}
LIMIT 1000
如果您需要特定语言的标签,例如对于英语,请添加 FILTER (langMatches( lang(?hLabel), "EN" ) )
.
在维基数据的SPARQL的例子中,我们有这样一个:
SELECT ?h ?date
WHERE
{
?h wdt:P31 wd:Q5 .
?h wdt:P569 ?date .
OPTIONAL {?h wdt:P570 ?d }
FILTER (?date > "1880-01-01T00:00:00Z"^^xsd:dateTime)
FILTER (!bound(?d))
}
LIMIT 1000
我了解到,如果您将 Label 放在变量名称之后,它会显示标签。所以,我不明白为什么这没有输出:
SELECT ?h ?hLabel ?date ...
提前致谢!
我不知道变量名后面的 Label 的具体功能。
但是,对于 rdfs:label,您可以在查询中包含 rdfs:label
。添加以下行:?h rdfs:label ?hLabel.
:
SELECT ?h ?hLabel ?date WHERE
{
?h wdt:P31 wd:Q5 .
?h wdt:P569 ?date .
?h rdfs:label ?hLabel.
OPTIONAL {?h wdt:P570 ?d }
FILTER (?date > "1880-01-01T00:00:00Z"^^xsd:dateTime)
FILTER (!bound(?d))
}
LIMIT 1000
如果您需要特定语言的标签,例如对于英语,请添加 FILTER (langMatches( lang(?hLabel), "EN" ) )