Freebase Data Dump 结构初探(二)——浅析元信息

Freebase元数据


上节我们提到,Freebase的Dump文件为三元组格式,某个MID有哪些谓词由其类型决定。在整个Dump文件中,还存在一些特殊的边,定义了Freebase属性(Properties)、类型(Types)、域(Domains)以及Namespace的相关信息,这些信息同样以三元组形式组织,对Freebase中其他数据起着“控制”作用。


首先我们来看一下Freebase的属性(谓词)元信息。

对于Freebase中的某个谓词(如)在Freebase中有如下定义:

            .
            .
            .
        "/people/person/nationality"    .
因而它具有这两个类型的各种属性:

  "false" .
   .
   .
   .
   .
  "true" .
  "false" .
  "false" .
  "horizontal"@en .
  "{name}: Nationality"@en .
  "false" .
   .
   .
   .
   .

这些属性约束着的行为。如其宾语类型必须为,主语类型为,是否允许多值等。可以近似认为是的MID,也包含着一系列和属性相关的信息。某个类型和属性的关系,由下面确定。

            .
            .
            .
            .
            .
            .
            .
            .
            .
            .
            . 

        "/type/property"    .
        "/type/property/expected_type"    .
        "/type/property/master_property"    .
        "/type/property/schema"    .
        "/type/property/unique"    .
        "/type/property/reverse_property"    .
        "/type/property/authorities"    .
        "/type/property/unit"    .
        "/type/property/enumeration"    .
        "/type/property/delegated"    .
        "/type/property/links"    .
        "/type/property/requires_permission"    .


我们可以看到某个谓词,有许多约束,如该谓词属于哪个类型(schema)、该谓词期望的宾语类型(expected_type)、该谓词的反向谓词(master_property or reverse_property)、对同一个主语,该谓词是否允许有多个宾语(unique)。

而对于而言:

			.
			.
			.
			.
			.
			.
			.
			.
	 		.
			.
			.

		"/freebase/property_hints"	.
		"/freebase/property_hints/display_orientation"	.
		"/freebase/property_hints/disambiguator"	.
		"/freebase/property_hints/display_none"	.
	 	"/freebase/property_hints/inverse_description"	.
	 	"/freebase/property_hints/special_edit"	.
		"/freebase/property_hints/enumeration"	.
		"/freebase/property_hints/deprecated"	.
		"/freebase/property_hints/cardinality_two"	.
		"/freebase/property_hints/valid_bare_property"	.
		"/freebase/property_hints/dont_display_in_weblinks"	.
		"/freebase/property_hints/required"	.

这里面的某些属性目前没有搞懂。

在控制信息方面,Dump中使用属性的MID(如m.02h)而非ID(如/type/property),“属性”这一实体的ID表示为,MID表示为。比如对于:

			.

可理解为:

			.
即某MID如果具有类型,那么它可以拥有谓词

这些信息共同构成了Freebase关于属性的规则。


同样,对于一个类型而言,也有很多控制信息。比如,其mid为,其部分信息如下:

  "/people/person" .
  "/people/person" .
  "/people/person" .
  "false" .
  "2225136" .
  "4127013" .
   .
   .
   .
   .
   .
   .
   . 
   .
   .
   .
   .
   .
   .
   .
   .
   .
   .
   .
在Dump文件中,也存在部分以作主语和宾语的情况,此时多用来检索的实例。

对其类型信息而言:

   .
   .
   .
我们分别查看“/type/type”和“/freebase/type_profile”具有哪些属性。

/type/type:

        "/type/type"    .
            .
            .
            .
            .
            .
            .
        "/type/type/extends"    .
        "/type/type/domain"    .
        "/type/type/instance"    .
        "/type/type/default_property"    .
        "/type/type/expected_by"    .
        "/type/type/properties"    .

/freebase/type_profile:

		"/freebase/type_profile"	.
			.
			.
			.
			.
			.
			.
			.
			.
			.
			.
			.
			.
		"/freebase/type_profile/equivalent_topic"	.
		"/freebase/type_profile/instance_count"	.
		"/freebase/type_profile/featured_topics"	.
		"/freebase/type_profile/ownership"	.
		"/freebase/type_profile/work_needed"	.
		"/freebase/type_profile/published"	.
		"/freebase/type_profile/strict_included_types"	.
		"/freebase/type_profile/kind"	.
		"/freebase/type_profile/property_count"	.
		"/freebase/type_profile/tasks"	.
		"/freebase/type_profile/suggested_properties"	.
		"/freebase/type_profile/delegated_type"	.

对于类型元信息而言,主要有该类型具有哪些属性()、该类型可以做哪些谓词的宾语()、该类型属于哪个领域()、该类型有哪些实例(,与互为反向边)、该类型被哪些类型包含()等。

()属于领域(),有属性(),被()包含,该类型的实体可以作()的宾语。


在类型之上,还有Domain,如(),就是一个domain。该domain的部分信息如下:

  "/people"
  "/people"
  
  
  "true"
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

这里仅摘取部分信息,Domain与Type主要通过谓词联系,在实际应用中用处不大,所以不作分析。


补充:Namespace、ID、Key、Name、Alias

刚刚接触Freebase,大家一定会被MID代表实体这种方式给绕晕,这个MID什么意思,那个MID又是什么意思?不考虑实体合并和分裂时,Freebase中一个实体和一个MID是一一对应的,当考虑实体合并和分裂时,多个MID可能指代一个实体,但是只有一个MID是master,其他的MID通过一个特殊的谓词()指向这个MID[1]。

Freebase为用户提供了一个人类可识别ID(human-readable ID),在Dump文件中通过将MID和Key关联起来。一个MID可能有0到多个Key,如:

  "/en/yao_ming"
  "/wikipedia/zh-cn_title/姚明"

都指代篮球运动员姚明。

当大小写区分时,可以通过key来唯一地确定一个实体。即不存在两个实体,具有相同的key值。

每个Key值都属于一个Namespace,如"/en/yao_ming"的Namespace为"/en","/people/person/nationality"的namespace为"/",某些Freebase用户存在以"/user/${username}"开头的namespace。

在实际的Dump中,对于非英文字符,Freebase对其进行了Unicode编码,以方便存储。

对于某些实体(特别是指代Domain、Type、Predicate的实体),Freebase会从Key中选一个值,作为该实体的ID,此时连接MID和ID的谓词为。对于这样的实体表示法,即是Freebase对实体的ID表示。


除此之外,每个实体可以有名字,名字通过谓词表示,还有其他表示名字的谓词,在此不一一列举。注意,这个谓词的unique属性为true,但是,对于宾语中的每种语言标记,其都可以有一个名字。如姚明,在Freebase中的名字信息有:

  "Yao Ming"@en
  "Yao Ming"@lt
  "Jao Mins"@lv
  "יאו מינג"@iw
  "Yao Ming"@id
  "야오밍"@ko
  "Yao Ming"@tr
  "Јао Минг"@sr
  "Γιάο Μινγκ"@el
  "Diêu Minh"@vi
  "Yao Ming"@it
  "Yao Ming"@ca
  "Yao Ming"@hr
  "Yao Ming"@no
  "Yao Ming"@fi
  "Jao Ming"@cs
  "Yao Ming"@nl
  "Yao Ming"@pt
  "Yao Ming"@sv
  "Yao Ming"@ms
  "姚明"@zh-Hant
  "Yao Ming"@et
  "เหยา หมิง"@th
  "Яо Мин"@ru
  "یائو مینگ"@fa
  "ياو مينغ"@ar
  "Yao Ming"@pl
  "Yao Ming"@da
  "Yao Ming"@es
  "Yao Ming"@fr
  "姚明"@zh
  "Yao Ming"@de
  "Jao Ming"@hu
  "姚明"@ja

此外还有Also known as()等信息,来表示一个实体的名字。




先写到这里,下一节主要分析Freebase的基本类型,以及CVT(Compound Value Type)和神奇的Mediator。


参考文献

[1]Machine ID - Freebase: http://wiki.freebase.com/wiki/Machine_ID(网页快照)

[2]Basic Concept: https://developers.google.com/freebase/guide/basic_concepts

你可能感兴趣的:(Freebase Data Dump 结构初探(二)——浅析元信息)