使用SPARQL查询DBPedia以查找右翼政党
我正在努力寻找欧盟中的所有极右翼政党,此外我还想要他们的领导人。在dbpedia for property has中是dbpedia owl:party of,我不知道如何使用它 以下是我目前的疑问:使用SPARQL查询DBPedia以查找右翼政党,sparql,dbpedia,Sparql,Dbpedia,我正在努力寻找欧盟中的所有极右翼政党,此外我还想要他们的领导人。在dbpedia for property has中是dbpedia owl:party of,我不知道如何使用它 以下是我目前的疑问: SELECT str(?Lparty) as ?Politicalparty str(?Lcountry) as ?EUCountry str(?Lleader) as ?EUleader WHERE { ?Party dbpprop:position ?Position ;
SELECT str(?Lparty) as ?Politicalparty str(?Lcountry) as ?EUCountry str(?Lleader) as ?EUleader
WHERE
{
?Party dbpprop:position ?Position ;
rdfs:label ?Lparty ;
dbpedia-owl:country ?Country ;
a dbpedia-owl:PoliticalParty ;
# The following are the problematic lines
dbpedia-owl:party ?Leader ;
rdfs:label ?Lleader.
# End problematic lines
FILTER(LANGMATCHES(LANG(?Lleader), "en")).
FILTER(?Position IN (dbpedia:Far-right_politics,dbpedia:Nazism, dbpedia:Nationalism)).
FILTER(NOT EXISTS{?Party dbpprop:dissolved ?otherBalue}).
FILTER(NOT EXISTS{?Party dbpprop:dissolution ?otherBalue}).
FILTER(LANGMATCHES(LANG(?Lparty), "en")).
?Country dcterms:subject category:Member_states_of_the_European_Union;
rdfs:label ?Lcountry.
FILTER(LANGMATCHES(LANG(?Lcountry), "en")).
}
我正在解决一个类似于您的查询,过了一段时间,我意识到一些
?leader
已经是标签,而另一些是需要提取标签的URI。例如,在您的情况下,如果您将“有问题的部分”更改为?Party dbpprop:leader?leader.
,您可以得到诸如Hendrik Elias
和http://dbpedia.org/resource/Wies_Moens
同时。因此,如果您在这两种情况下都需要标签,则需要决定何时深入挖掘。因为我的版本是一个更大程序的一部分,所以我可以更快地通过程序解决这个问题。基于这些解释,我能写的最简单的查询是:
SELECT distinct str(?Lparty) as ?Politicalparty str(?Lcountry) as ?EUCountry str(?Leader) as ?EUleader
WHERE
{
?Party dbpprop:position ?Position ;
rdfs:label ?Lparty ;
dbpedia-owl:country ?Country ;
a dbpedia-owl:PoliticalParty.
?Party dbpprop:leader ?Leader.
FILTER(?Position IN (dbpedia:Far-right_politics,dbpedia:Nazism, dbpedia:Nationalism)).
FILTER(NOT EXISTS{?Party dbpprop:dissolved ?otherBalue}).
FILTER(NOT EXISTS{?Party dbpprop:dissolution ?otherBalue}).
FILTER(LANGMATCHES(LANG(?Lparty), "en")).
?Country dcterms:subject category:Member_states_of_the_European_Union;
rdfs:label ?Lcountry.
FILTER(LANGMATCHES(LANG(?Lcountry), "en")).
}