与 DBpedia 上的 SPARQL 查询作斗争

Struggling with a SPARQL query over DBpedia

我的目标: 获得 DBpedia 中与制造商关联的智能手机列表。

示例:
Iphone 6 |苹果
三星盖乐世 S6 |三星
Iphone 5 |苹果
索尼 xperia Z5 |索尼

我做了什么: 我认为这将是一个联合查询。因此,作为第一步,我尝试获取所有智能手机列表,并成功使用此查询:

SELECT ?phone 
where {?phone <http://dbpedia.org/property/type> <http://dbpedia.org/resource/Smartphone>} 

但是我没有成功拿到厂商名单。我尝试了此查询以获取 Iphone 6 的制造商。但它没有用。

SELECT ?Manufacturer 
where {?Manufacturer <http://dbpedia.org/property/manufacturer> <http://dbpedia.org/resource/Smartphone>}
?phone dbp:type dbr:Smartphone

这个三元组大致意思是:"the type of ?phone is Smartphone"。这是有道理的,所以你得到你想要的。

?manufacturer dbp:manufacturer dbr:Smartphone

这个三元组的意思是:"the manufacturer of ?manufacturer is Smartphone"。那没有任何意义,Smartphone不是可以成为制造商的东西。这就是您得不到结果的原因。

你想要的是:

  • ?phonetypeSmartphone
  • ?phonemanufacturer?manufacturer

在 SPARQL 中:

SELECT *
WHERE {
  ?phone dbp:type dbr:Smartphone.
  ?phone dbp:manufacturer ?manufacturer.
}