SPARQL语法更正

SPARQL语法更正,sparql,dbpedia,Sparql,Dbpedia,这是我第一次使用SPARQL。 使用DBpedia,我想列出1992年所有摇滚乐队的乐队名称 我已经开发的代码运行正常,但结果为0。我是否过滤的日期不正确 PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX dbp: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX xsd: <http://www

这是我第一次使用SPARQL。 使用DBpedia,我想列出1992年所有摇滚乐队的乐队名称

我已经开发的代码运行正常,但结果为0。我是否过滤的日期不正确

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?bandname where {
?band dbo:genre dbp:Rock_music .
?band foaf:name ?bandname .
FILTER (dbo:activeYearsStartYear >= xsd:date("1992-01-01") && dbo:activeYearsStartYear <= xsd:date("1992-12-31"))
}
前缀dbo:
前缀dbp:
前缀foaf:
前缀xsd:
选择DISTINCT?bandname,其中{
?乐队dbo:流派dbp:摇滚乐。
?波段foaf:名称?波段名称。
过滤器(dbo:activeyearssstartyear>=xsd:date(“1992-01-01”)&&dbo:activeYearsStartYear
前缀dbo:
前缀dbp:
前缀foaf:
前缀xsd:
选择不同的?bandname?日期,其中{
?乐队dbo:流派dbp:摇滚乐。
?波段foaf:名称?波段名称。
?波段dbo:activeYearsStartYear?日期。

过滤器(?日期>=“1992-01-01”^^xsd:dateTime&&?date
dbo:activeYearsStartYear
是DBpedia中的一个属性,这意味着您应该在三元组模式的谓词语句中使用它来获取属性的实际值。与您对乐队名称所做的一样,您还使用了一个属性并将值分配给变量
?bandname
。它的工作原理是:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?bandname ?date where {
?band dbo:genre dbp:Rock_music .
?band foaf:name ?bandname .
?band dbo:activeYearsStartYear ?date .
FILTER (?date >= "1992-01-01"^^xsd:dateTime && ?date <= "1992-12-31"^^xsd:dateTime)
}