Sparql 美国大学数据库

Sparql 美国大学数据库,sparql,dbpedia,Sparql,Dbpedia,我创建了一个SPARQL查询,我正在运行。查询的目的是获取美国大学或学院的列表,包括它们的经度、纬度和捐赠。查询似乎正在运行,但似乎缺少一些记录和/或属性。例如,哈佛大学没有出现在结果中,即使它存在并且属性应该与我的查询匹配。我不知道为什么那张唱片没有出现。另一个例子是,它作为查询结果出现,但结果没有获得经度和纬度属性,即使记录包含这些属性。以下是SPARQL查询: PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> PREF

我创建了一个SPARQL查询,我正在运行。查询的目的是获取美国大学或学院的列表,包括它们的经度、纬度和捐赠。查询似乎正在运行,但似乎缺少一些记录和/或属性。例如,哈佛大学没有出现在结果中,即使它存在并且属性应该与我的查询匹配。我不知道为什么那张唱片没有出现。另一个例子是,它作为查询结果出现,但结果没有获得经度和纬度属性,即使记录包含这些属性。以下是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
前缀geo:
前缀d:
选择“单向链接”“横向”“纵向”“纵向”
在哪里{
?s foaf:主页?链接;
rdf:类型;
rdfs:标签?uni
可选{s geo:lat?lat;
吉奥:长?长。
?SD:捐赠?捐赠。}
过滤器(LANGMATCHES(LANG(?uni),'en'))
{s dbpedia2:国家“美国”@en.}
联合
{s dbpedia2:国家“美国”}
联合
{SD:国家:美国。}
}
订购人

您正在寻找
foaf:homepage
,但其中一些人没有分配此功能。这是第一件引起我注意的事情。通过逐点删除每个元素来检查查询的其余部分,并查看结果集提供了什么。

您发布的查询将仅选择带有
foaf:homepage
且没有的实体。(也就是说,资源没有
foaf:homepage
属性。显然,大学有主页。)与可选模式不匹配--

--因为该模式仅在
?s
具有
geo:lat
geo:long
d:endowment
时匹配。虽然模式是可选的,但整个模式必须匹配或不匹配;您不会得到部分匹配

这是您的查询,经过修改以供使用(该列表可能会随着时间的推移而更改),根据需要对
可选部分进行分解,并移至末尾。(把它们移到最后只是一种美学考虑。)我尝试了一些不同的限制,有趣的是,只有32所大学有
dbpprop:country“U.S.”en
,但有273所大学有
dbpprop:country“U.S.”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 }
}
前缀dbpedia owl: 前缀dbpedia: 前缀dbpprop: 选择?标签?主页?横向?纵向?纵向 在哪里{ ?a学校 {?学校数据库猫头鹰:国家数据库:美国} 联合 {?学校dbpprop:国家dbpedia:美国} 联合 {?学校dbpprop:国家“美国”@en} 联合 {?学校dbpprop:国家“美国”@en} 可选{?学校rdfs:标签?标签。 过滤器(LANGMATCHES(LANG(?标签),'en'))} 可选{?学校foaf:主页?主页} 可选{学校地理位置:lat?lat;地理位置:long?long} 可选{?学校数据库猫头鹰:捐赠?捐赠} }

Virtuoso 37000错误SP030:SPARQL编译器,第16行:在“dbpedia:United_States”之前的“dbpedia owl”处未定义名称空间前缀,我当前收到一个错误
。当前没有列出
dbpedia owl
前缀。我将尝试将其更改为
owl
和/或删除该联合元素,并比较结果计数。删除
dbpedia owl
行后,我将在“dbpedia:United_States”之前的“dbpprop”处获得“未定义的命名空间前缀”。您是否有可能为当前查询系统更新此信息?我将继续寻找线索…@user3175580 DBpedia的SPARQL端点在不保留旧名称空间前缀的情况下更改了一系列预定义的名称空间前缀。当前的列表如下所示:。我刚刚更新了这个,但是我有关于DBpedia和SPARQL的信息,所以很遗憾,我没有时间修复它们中的大多数。好的,谢谢!然而,DBpedia目前似乎缺少了很多大学。我甚至改变了<代码>学校A <代码> >代码> DbPedieOWL:教育机构< /代码>,但是几乎所有加利福尼亚大学的结果都不见了,包括这个条目似乎没有属性表明它是一所学校。
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 }
}