如果您是第一次使用 Freebase,本節將說明瞭解 Basebase 運作方式的基本術語和概念。
圖表
Freebase 資料會儲存在名為「圖表」的資料結構中。圖由與邊緣連接的節點組成。在 Freebase 中,節點是透過 /type/object 定義,邊緣則使用 /type/link 定義。將資料儲存為圖表後,Freebase 可以快速掃遍主題,並輕鬆新增結構定義,而無需變更資料結構。
主題
Freebase 有超過 3, 900 萬個主題,包括人物、地點和事物。由於 Freebase 資料以圖表呈現,因此這些主題會對應到圖表中節點。不過,並非所有節點都是主題。如需非主題的節點範例,請參閱 CVT 一節。
以下是 Freebase 找到的主題類型範例:
某些主題會帶來大量資料 (例如舉例來說,「愛」、「貧窮」、「軍隊」等抽象主題沒有多種相關聯的屬性,但經常出現在書籍的主題、詩科、電影主題等主題中,因此較具吸引力。
類型和屬性
任何主題都能在多種不同面向呈現,例如:
- Bob Dylan 是詞曲創作者、歌手、表演者、書籍作者和電影演員;
- Leonardo da Vinci 是畫家、雕塑家、原子學家、建築師、工程師...
- 愛情是書籍主題、電影主題、遊戲主題、詩歌...
- 每個城市都是一個地點,也許是觀光景點,以及民務人員的雇主。
為了涵蓋多個主題的多螢幕環境,我們將在 Freebase 中介紹「類型」概念。Freebase 中的主題可以獲派多個類型。主題為 Bob Dylan 的主題包括:詞曲創作者類型、作曲者類型、音樂藝人 (歌手) 類型、書籍作者類型等。每種類型都有一組不同的屬性。舉例來說:
- 音樂藝人類型包含一個屬性,會列出寶巴迪倫產生的所有專輯,以及他已知的所有樂器。
- 本書作者類型中包含包含所有類型:Bob Dylan 撰寫或編輯過的資源,以及他的想法與行動撰寫學校。
- 公司類型包含許多公司,可用來刊登公司的創辦人、董事會成員、母公司、部門、員工、產品、逐年收益和利潤記錄等。
因此,可以將類型視為屬性的概念容器,最常用於描述特定的資訊面向。(您可以將類型視為與關聯資料表相似,而每個「類型」表格都包含一個「鍵」表格,在一個不重複的主題中明確定義)。
網域和 ID
就像屬性分成類型一樣,類型本身也會歸類到「網域」。你可以將網域當成個人報紙的版面,例如商務、生活風格、藝術與娛樂、政治、經濟等。每個網域都會有一個 ID (ID),例如
網域 ID 就像檔案路徑或網址中的路徑,
每個類型都會有一個 ID,並根據其所屬的網域進行 ID。舉例來說,「公司」類型隸屬於「企業」網域,ID 就是 /business/company
。其他例子包括:
/music/album
是 (音樂) 專輯類型的 (音樂) 類型 ID/film/actor
- 演員在電影網域中/medicine/disease
- 位於 Medicine 網域的疾病類型
就像類型繼承其網域 ID 的開頭一樣,資源也會沿用所屬 ID 的類型開頭。舉例來說,「公司」的「產業」屬性 (用於指定公司所屬的產業) 為「/business/company/industry
」這個 ID。其他例子包括:
/automotive/engine/horsepower
是 (汽車) 引擎類型的馬力屬性 ID/astronomy/star/planet_s
是 Star 類型的 Planet 屬性 ID (用於列出星星上的行)/language/human_language/writing_system
是人類語言類型的寫入系統屬性 ID
因此,即使免費類型未分配給 Freebase 的階層,網域、類型和屬性會按照概念排列在檔案目錄階層中排列。
複合值類型
複合值類型是 Freebase 中的類型,用來代表每個項目包含多個欄位的資料。Freebase 會使用複合值類型 (CVT),用於代表複雜的資料。一開始可能不太清楚,但 CVT 是 Freebase 結構定義中相當重要的一環,因此能更準確地模擬不同主題的複雜關係。
想想以下範例:城市的變化會隨時間變化。也就是說,當您查詢人口族群的 Freebase 時,您至少是在特定日期要求使用人口數。兩個值包括幾個人物和日期。在此情況下,CVT 會變得非常實用。如果沒有這個模型,就必須建立主題並命名為「1997 年溫哥華人口」,然後在其中提交相關資訊。
CVT 可視為主題,不需要顯示名稱。CVT 與一般主題一樣,有一個 GUID 可獨立參照。不過,Freebase 用戶端的處理方式與主題不同。多數情況下,CVT 的每個屬性都應造成混淆。
主題 MID
雖然主題可能是由命名空間/金鑰 ID 識別,但也可能由 MID 識別,也就是內含 ID 的 /m/
是機器 ID,後面接著 Base-32 專屬 ID。系統會在建立時將 MID 指派給主題,並在整個主題的生命週期內進行管理。主題在合併或分割時扮演出重要的角色,可讓外部應用程式追蹤實體主題,即使實體的 Freebase 身分 (主題的 GUID) 可能會有變動。機器產生的 ID 不同於其他人類可讀的 Freebase ID (由「id」屬性傳回),如下所示:
- 保證存在
- 機器產生
- 支援離線比較
- 並非用於向人表達意義
- 短 (可能長度固定)
- 適合快速交換外部系統和元件 (外部、交換) 的金鑰
MID 是推薦 ID,可用來處理 Freebase 中的主題
命名空間、金鑰和主題 ID
檔案目錄類似網域、類型和屬性 ID 的階層,只是一個通用概念:命名空間和鍵。命名空間與檔案目錄相似,金鑰則類似檔案名稱。因此,特定檔案目錄中的所有檔案名稱不得重複,但特定命名空間中的所有金鑰也不得重複。
具體來說,/business
是對應於 Business 網域的命名空間。系統會在表格內提供業務相關類型company
)。每個類型的 ID 都會附加在命名空間的 ID 中 (例如/business/company
)。
命名空間外還有幾種與網域和類型對應的命名空間。最重要的是最常出現的 /en
命名空間。此為已知最廣為主題的英文命名空間,因為這類實體可以採用專屬金鑰,產生使用者可理解的英文 ID。舉例來說,不知名的 Bob Dylan 以 Freebase 做為主題,在 /en
命名空間有 bob_dylan
這個鍵,因此主題的 ID 為 /en/bob_dylan
。這個 ID 可讓您透過簡單網址存取網路用戶端中的主題
更多房源資訊
最後一項討論的概念是 Freebase 屬性與關聯資料庫技術的類比為主,也就是關聯資料表欄。每一列的關聯表格欄只能含有一個值。舉例來說,假設有一個一般的「book」關聯資料表,名為「author」欄。「book」表格中每列的「author」欄只能有一個「author」表格的外鍵。如果書籍有多位作者,這項簡單的關聯結構定義設計就會無法運作,我們也需要建立一個新的作者專用的表格。因此,您需要一張「書籍」表格、一個「作者」表格和一個「作者」表格,以儲存書籍和作者之間的 n-n-n 關係。而且,從一種結構定義設計切換至另一種結構定義時,資料擷取方式的變得大幅變更。
不同於傳統資料庫技術,Freebase 會將多值屬性視為有利於建構實際資料,且其預設支援多值屬性。這表示在建立 /book/written_work/author
屬性時,系統會假設每本書允許多位作者,這時你就能以相同的方式查詢多值屬性和單一值屬性。您不需要思考是否需要加入第三個資料表,用來建立 N 至 n 的關係。
摘要
- 類型是相關屬性的概念容器,用於描述主題的特定部分。
- 可以指定一或多個類型 (預設類型為
/common/topic
) - 屬性分為類型時,會將類型分成不同的網域。
- 網域、類型和屬性會以命名空間/鍵階層命名。
- 常見知名主題則會在
/en
命名空間中指定 ID,也就是使用者可理解的英文字串。 - 在 Freebase 中,主題是以 GUID 識別。
- 根據預設,屬性為多值屬性,而且您可透過單一方式查詢多值屬性和單一值屬性。