2012-07-27 112 views
1

我想获得freebase资源的uri而不是字面值的人的出生地点。Freebase查询返回rdf:资源uri

我GET看起来像这样...

https://www.googleapis.com/freebase/v1/mqlread?query={%22/people/person/place_of_birth%22:null,%22id%22:%22/en/bob_dylan%22} 

返回这个结果......

{ 
"result": { 
"/people/person/place_of_birth": "Duluth", 
"id": "/en/bob_dylan" 
} 
} 

是有可能改变的get PARAMS返回RDF:资源URI?

<fb:people.person.place_of_birth rdf:resource="http://rdf.freebase.com/ns/en.tilden"/> 

在此先感谢

+0

你是从两个不同的例子中剪切粘贴的吗?提尔登和德卢斯不在同一个地方。 – 2012-07-27 17:18:39

回答

3

更改您的查询

{ 
    "id": "/en/bob_dylan", 
    "/people/person/place_of_birth": { 
    "id": null 
    } 
}​ 

将意味着你回来/en/duluth而不是名称 “德卢斯”。使用googleapis.com托管的新Freebase API,您可能会获得/m/0h1k6而不是/en/duluth;然而这些是相同的。

从那里,移动到RDF资源URI应该很容易。但是请注意,Freebase团队已经不赞成使用RDF URI,并且没有正式承诺生成类似替换的替代品,因此在依赖此服务之前您需要小心。

+0

请注意,如果您没有取回MID,则应该更改查询以询问它而不是ID,因为这是推荐用作稳定外部标识符的内容。 http://rdf.freebase.com/ns/m.0h1k6 – 2012-07-27 17:21:55

+0

为了澄清,我们已弃用/ en IDs,这意味着所有当前/ en ID将继续工作,但它们将在Freebase中不再强调UI并且不会创建新的/ en ID。/en URIs和/ m URIs之间的映射都可以从sameas.org获得,因此您可以轻松移动两个命名方案。 – 2012-07-27 17:59:31

+0

谢谢你philip - 完美 – AttikAttak 2012-08-02 11:36:10