我创建了一个我在DBpedia SNORQL SPARQL endpoint上运行的SPARQL查询。查询的目的是获取美国的大学或学院列表,包括其经度,纬度和捐赠。该查询似乎正在工作,但似乎缺少一些记录和/或属性。因此,例如,哈佛大学没有出现在结果中,即使它存在DBpedia record并且属性应该与我的查询匹配。我不确定为什么这个记录没有显示出来。另一个示例是University of Massachusetts Boston,它作为查询结果出现,但结果不会获得经度和纬度属性,即使记录包含这些属性。这是SPARQL查询:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX d: <http://dbpedia.org/ontology/>
SELECT ?uni ?link ?lat ?long ?endowment
WHERE {
?s foaf:homepage ?link ;
rdf:type <http://schema.org/CollegeOrUniversity> ;
rdfs:label ?uni
OPTIONAL {?s geo:lat ?lat ;
geo:long ?long .
?s d:endowment ?endowment . }
FILTER (LANGMATCHES(LANG(?uni), 'en'))
{?s dbpedia2:country "U.S."@en . }
UNION
{?s dbpedia2:country "U.S." . }
UNION
{?s d:country :United_States . }
}
ORDER BY ?s
答案 0 :(得分:5)
您发布的查询只会选择foaf:homepage
和Harvard University没有的实体。 (也就是说,资源没有foaf:homepage
属性。显然大学确实有一个主页。)UMass Boston与可选模式不匹配 -
OPTIONAL {?s geo:lat ?lat ;
geo:long ?long .
?s d:endowment ?endowment . }
- 因为该模式仅在?s
具有geo:lat
,geo:long
和d:endowment
时匹配。虽然图案是可选的,但整个图案必须匹配与否;你不会得到部分匹配。
这是您的查询,重新使用the built-in namespaces that the DBPedia SPARQL endpoint currently supports(该列表可能随时间而变化),OPTIONAL
部分根据需要细分,并移至最后。 (将它们移到最后只是一种审美考虑。)我尝试了一些不同的约束条件,值得注意的是,只有32所大学拥有dbpprop:country "U.S."@en
,但有273所拥有dbpprop:country "United States"@en
。共有7620个结果。
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT ?label ?homepage ?lat ?long ?endowment
WHERE {
?school a <http://schema.org/CollegeOrUniversity>
{ ?school dbpedia-owl:country dbpedia:United_States }
UNION
{ ?school dbpprop:country dbpedia:United_States }
UNION
{ ?school dbpprop:country "U.S."@en }
UNION
{ ?school dbpprop:country "United States"@en }
OPTIONAL { ?school rdfs:label ?label .
FILTER (LANGMATCHES(LANG(?label), 'en')) }
OPTIONAL { ?school foaf:homepage ?homepage }
OPTIONAL { ?school geo:lat ?lat ; geo:long ?long }
OPTIONAL { ?school dbpedia-owl:endowment ?endowment }
}
答案 1 :(得分:1)
您正在寻找foaf:homepage
但其中一些没有分配。这是引起我注意的第一件事。通过逐位删除每个元素来检查查询的其余部分,并查看结果集提供的内容。