与 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
不是可以成为制造商的东西。这就是您得不到结果的原因。
你想要的是:
?phone
的type
是Smartphone
?phone
的manufacturer
是?manufacturer
在 SPARQL 中:
SELECT *
WHERE {
?phone dbp:type dbr:Smartphone.
?phone dbp:manufacturer ?manufacturer.
}
我的目标: 获得 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
不是可以成为制造商的东西。这就是您得不到结果的原因。
你想要的是:
?phone
的type
是Smartphone
?phone
的manufacturer
是?manufacturer
在 SPARQL 中:
SELECT *
WHERE {
?phone dbp:type dbr:Smartphone.
?phone dbp:manufacturer ?manufacturer.
}