我目前正在使用freebase转储开发一个项目,我将断言插入到每个中间有序的LevelDB中。我的目标是能够像Bob Dylan这样的特定名称检索与其名称相关联的每个类型。
例如,“Bob Dylan”将对应于“Musician”,“Film Producer”等,每个人都对应于“/ music / artist”,“/ film / producer”等类型...
不幸的是,如果很容易找到Bob Dylan中途进入四轮转储
/m/bobdylanmid /common/topic/notable_types /music/artist
/m/bobdylanmid /common/topic/notable_types /film/producer
我希望现在能够找到各种语言的类型名称。但我找不到在转储中检索它们的逻辑方法。
有任何线索吗?
答案 0 :(得分:1)
我不是百分之百确定,但我不认为架构实际上是在四重转储中。我知道它从未像现在这样。
您需要使用this之类的查询查找名称。不幸的是,人类可读的名字只存在于英语中,所以你需要跳过更多的箍来获得其他语言。为此你可以试试这个slightly more complicated query
的内容[{
"id": "/music/artist",
"/freebase/type_profile/equivalent_topic": {
"name": {
"lang": null,
"value": null
}
},
"name": null
}]
这取决于所填写的“等效主题”属性,但并非所有类型都属于这种情况。如果您只需要几种语言,则可以修改查询以明确返回这些语言(“Musician”有45种不同的语言变体)。
答案 1 :(得分:0)
如果你主要对你的例子(一个人是/是......)这样的情况感兴趣,那么使用属性(而不是类型)就可以完成工作,在你的情况下(后者通过cvt):
/people/person/profession
/people/person/employment_history /business/employment_tenure/title
这可能更符合您的要求,除非您还希望显示例如阿兰图灵是一个“文学主题”。
对于相应的实例(使用types / business / job_title,/ people / profession),您可以获得不同语言的名称(如果存在)。