Sparql dbpedia中的Wikidata查询等价物

Sparql dbpedia中的Wikidata查询等价物,sparql,dbpedia,wikidata,Sparql,Dbpedia,Wikidata,我试图将SPARQL查询从Wikidata转换为DBpedia(只是为了教育目的),但它不起作用。谁能帮帮我,告诉我我做错了什么?谢谢大家! 在 工作 。。。而且 选择音乐家在哪里{ 音乐家。 ?音乐家。 过滤器(在(,)中) } 乐师分组 ASC订购(?音乐家) 不工作我不确定您为什么从已修改的查询中删除标签。。。试试() 选择不同的音乐家标签 哪里 {?一个音乐家。 “音乐家”类型。 可选{?音乐家?音乐家标签。 过滤器(LANGMATCHES(LANG(?musicianlabel),“

我试图将SPARQL查询从Wikidata转换为DBpedia(只是为了教育目的),但它不起作用。谁能帮帮我,告诉我我做错了什么?谢谢大家!

工作

。。。而且


选择音乐家在哪里{
音乐家。
?音乐家。
过滤器(在(,)中)
}
乐师分组
ASC订购(?音乐家)

不工作

我不确定您为什么从已修改的查询中删除标签。。。试试()

选择不同的音乐家标签
哪里
{?一个音乐家。
“音乐家”类型。
可选{?音乐家?音乐家标签。
过滤器(LANGMATCHES(LANG(?musicianlabel),“en”))
}
过滤器(?在(,
)
)
} 
ASC订购(?音乐家)

我看到三个问题:1)模式实体(类和属性)有
http://dbpedia.org/ontology/
作为命名空间2.)属性确实以小写字母开头,也就是说,
类型
和3)出于某种原因,您已将变量
?类型
替换为资源。在您的查询中,
分组方式
的目的是什么?啊,类型是
迷幻摇滚乐
迷幻流行乐
-您使用的两种资源都有一个重定向,但是如果不解析重定向,您将只得到4个结果
SELECT?music WHERE{music a.?music?genre.FILTER(?genre IN(,)}顺序按ASC(?music)
感谢@AKSW的解释<代码>->3)实际上不是我想要的<代码>->你说的“重定向”是什么意思<代码>->我使用了
分组依据
,因为有两个条目。i、 e.人员<代码>http://dbpedia.org/page/Cam_Avery有迷幻摇滚和迷幻流行两种类型,因此会在结果列表中出现两次太好了,谢谢@TallTed。我删除了dbpedia查询上的标签,因为我不知道如何执行;-)
DISTINCT
缺失,以避免当人们同时拥有两种类型时出现重复,例如
http://dbpedia.org/resource/Barbara_Robison
使用
过滤器和
值之间有区别吗?两者似乎都是如此。因此,在上面的查询中,可以删除
过滤器
,从而添加
值(?genre){()()}
@RoRu-这两个值之间的速度可能不同。在这种情况下,没有太多。(我注意到你失去了4位音乐家,因为没有包括
\u Pop
\u Rock
流派变体,所以你可能想进一步调整,无论如何…)我有一个跟进:-)如果你们能再次帮助我,@AKSW会很好-你已经帮了我很多sparql新手,谢谢!
SELECT ?musician ?musicianLabel WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
    ?musician wdt:P31 wd:Q5 .
    ?musician wdt:P136 ?genre .
    FILTER(?genre IN (wd:Q383982, wd:Q206159))
}
GROUP BY ?musician ?musicianLabel
ORDER BY ASC(?musicianLabel)
SELECT ?musician WHERE {
    ?musician a <http://dbpedia.org/resource/Person> .
    ?musician <http://dbpedia.org/resource/Genre> <http://dbpedia.org/resource/Genre> .
    FILTER(<http://dbpedia.org/resource/Genre> IN (<http://dbpedia.org/resource/Psychedelic_Pop>, <http://dbpedia.org/resource/Psychedelic_Rock>))
}
GROUP BY ?musician
ORDER BY ASC(?musician)
SELECT DISTINCT ?musician ?musicianlabel 
WHERE
 { ?musician a <http://dbpedia.org/ontology/Person> . 
   ?musician <http://dbpedia.org/ontology/genre> ?genre .
   OPTIONAL { ?musician <http://www.w3.org/2000/01/rdf-schema#label> ?musicianlabel . 
              FILTER ( LANGMATCHES ( LANG ( ?musicianlabel ), 'en' ) ) 
            }
   FILTER (?genre IN ( <http://dbpedia.org/resource/Psychedelic_pop> , 
                       <http://dbpedia.org/resource/Psychedelic_rock>
                     )
          )
 } 
ORDER BY ASC ( ?musician )