Freebase数据转储查询实体和关系

时间:2018-03-04 14:25:10

标签: rdf freebase wikidata n-triples

从可用的Freebase转储here,我需要找到两个实体之间的关系。

EG。

entity1 = "barack_obama"  
entity2 = "USA"  
get_relation_from_freebase(entity1, entity2) -> "President"

截至2018年,是否有一种直接的方式从RDF转储中执行此操作? 如果我有大约10k个唯一实体对,那么获得该关系的最有效方法是什么?如果它在Freebase中可用?

注意:我正在尝试将大型语料库与freebase关系对齐,以生成relation extraction任务的训练样本。

此外,我查看了以下问题 - herehere,我可以为少数几个域创建一个子集,但仍然没有想出一个检索关系的好方法。

1 个答案:

答案 0 :(得分:1)

Freebase架构远不如你的问题所暗示的那么简单。

从内存中可以看出:

Governmental Office
  .name President of the United States
  .jurisdiction United States of America
  .office_holders[]

Governmental Office Holder
  .office ^entity above^
  .term start <date>
  .term end <date>
  .office_holder Barak Obama

会有一些实体通过关系直接连接(例如Person.birthplace),但会有一些多跳,包括你选择的例子。

如果您只对直接关系感兴趣,您可以抓住实体作为源或目标的所有关系,并通过关系另一端的感兴趣实体过滤这些关系。