Freebase を初めて使用する場合は、Freebase の仕組みを理解するために必要な基本的な用語とコンセプトについて説明します。
グラフ
Freebase のデータは、グラフと呼ばれるデータ構造に保存されます。グラフは、エッジで接続されたノードで構成されます。Freebase では、ノードは /type/object を使用して定義され、エッジは /type/link を使用して定義されます。データをグラフとして保存することで、Freebase はトピック間の任意の接続をすばやくトラバースし、データの構造を変更することなく新しいスキーマを簡単に追加できます。
トピック
Freebase には、人、場所、ものなどの現実世界のエンティティに関する 3, 900 万件以上のトピックがあります。Freebase のデータはグラフで表されるため、これらのトピックはグラフ内のノードに対応します。ただし、すべてのノードがトピックであるわけではありません。トピックではないノードの例については、CVT に関するセクションをご覧ください。
Freebase で見つかるトピックの種類の例:
- 物理エンティティ(ボブ ディラン、ルーブル美術館、土星など、
- 芸術作品/メディア作品(ダークナイト(映画)、ホテル カリフォルニア(曲)
- 分類(貴ガス、脊索動物など)
- 抽象的な概念(愛など)を
- 思想や芸術運動(例: 印象派。
一部のトピックは、大量のデータを保持しているため(Wal-Mart)などがあります。また、多くのトピック(異なる情報ドメインのトピックを含む可能性あり)にリンクしているため、注目すべきトピックもあります。たとえば、愛、貧困、騎士道などの抽象的なトピックには関連付けられているプロパティは多くありませんが、書籍の主題、詩の主題、映画の主題などとして頻繁に登場するため、より注目を集めます。
型とプロパティ
たとえば、特定のトピックはさまざまな視点から見ることができます。
- ボブ・ディランは、作詞家、歌手、パフォーマー、書籍の著者、映画俳優でした。
- レオナルド ダ ヴィンチは、画家、彫刻家、解剖学者、建築家、技術者、... でした。
- 愛は書籍の主題、映画の主題、劇の主題、詩の主題、...;
- 都市は、場所、観光地、公務員の雇用主です。
多くのトピックの多面的な性質を捉えるために、Freebase にタイプの概念を導入します。Freebase のトピックには、任意の数のタイプを割り当てることができます。ボブ・ディランに関するトピックには、作詞家タイプ、作曲家タイプ、音楽アーティスト(歌手)タイプ、書籍の著者タイプなど、複数のタイプが割り当てられています。各タイプには、そのタイプに関連するさまざまなプロパティが設定されています。たとえば、
- 音楽アーティスト タイプには、ボブ・ディランがプロデュースしたすべてのアルバムと、彼が演奏したことが知られているすべての楽器をリストするプロパティが含まれています。
- 書籍の著者のタイプには、ボブ・ディランが執筆または編集したすべての書籍と、彼の執筆思想や運動をリストするプロパティが含まれています。
- 会社タイプには、会社の創業者、取締役、親会社、部門、従業員、製品、年ごとの収益と利益の記録などをリストする多くのプロパティが含まれています。
したがって、型は、情報の特定の側面を記述するために最も一般的に必要とされるプロパティの概念的なコンテナと考えることができます。(型はリレーショナル テーブルに類似していると考えることができます。各「型」テーブルには、各トピックを一意に定義する 1 つの「ID」テーブルへの外部キーがあります)。
ドメインと ID
プロパティがタイプにグループ化されるのと同様に、タイプ自体もドメインにグループ化されます。ドメインは、お気に入りの新聞のセクション(ビジネス、ライフスタイル、芸術とエンターテイメント、政治、経済など)のようなものだと考えてください。各ドメインには ID(識別子)が割り当てられます。例:
ドメインの ID は、ファイルパスまたはウェブアドレスのパスのように見えます。
各タイプには ID も付与されます。ID は、そのタイプが属するドメインに基づいています。たとえば、Company タイプは Business ドメインに属し、ID /business/company
が割り当てられています。ほかにも以下のような例が考えられます。
/music/album
は、音楽ドメインに属する(音楽)アルバム タイプの ID です。/film/actor
- 映画ドメインのアクター タイプ/medicine/disease
- Medicine ドメインの Disease タイプ
型がドメインから ID の先頭を継承するのと同様に、プロパティも属する型から ID の先頭を継承します。たとえば、Company タイプの Industry プロパティ(会社が属する業種を指定するために使用)には、ID /business/company/industry
が割り当てられます。ほかにも以下のような例が考えられます。
/automotive/engine/horsepower
は、(自動車)エンジンのタイプの馬力プロパティの ID です/astronomy/star/planet_s
は、Star 型の Planets プロパティの ID です(星の周りの惑星をリストするために使用されます)。/language/human_language/writing_system
は、Human Language 型の Writing System プロパティの ID です。
したがって、Freebase ではタイプが階層構造に配置されていませんが、ドメイン、タイプ、プロパティには、ファイル ディレクトリのような階層構造で概念的に配置された ID が付与されています。
複合値の型
複合値型は、各エントリが複数のフィールドで構成されるデータを表すために使用される Freebase 内の型です。複合値型(CVT)は、Freebase で複雑なデータを表すために使用されます。最初は少しわかりにくいかもしれませんが、CVT は Freebase スキーマの非常に重要な部分であり、トピック間の複雑な関係をより正確にモデル化できます。
たとえば、都市の人口は時間とともに変化します。つまり、Freebase に人口を問い合わせるたびに、少なくとも暗黙的に特定の日付の人口を問い合わせていることになります。2 つの値(人数と日付)が関係しています。CVT が非常に役立つ状況を次に示します。トピックがないと、人口データをモデル化するには、トピックを作成して「1997 年のバンクーバーの人口」などの名前を付け、そこに情報を送信する必要があります。
CVT は、表示名を作成する必要がないトピックと考えることができます。通常のトピックと同様に、CVT には独立して参照できる GUID があります。ただし、Freebase クライアントでは、トピックとはまったく異なる扱いをします。ほとんどの場合、CVT のすべてのプロパティは曖昧さ回避プロパティである必要があります。
トピック MID
トピックは、名前空間/キー ID で識別できる場合とできない場合がありますが、常に MID(マシン ID)で識別できます。MID は /m/
の後に base-32 の一意の ID が続きます。MID はトピックの作成時に割り当てられ、トピックの存続期間を通じて管理されます。トピックの統合や分割を行う際に重要な役割を果たし、物理的な Freebase ID(トピックの GUID)が変更されても、外部アプリケーションが論理的なトピックを追跡できるようにします。マシン生成 ID は、次の点で他の人間が読める Freebase ID(「id」プロパティから返される)と異なります。
- 存在することが保証されている
- マシン生成
- オフラインでの比較をサポートするように設計されている
- 人間が意味を理解できるように設計されていない
- 短い(固定長の場合あり)
- 外部システムとコンポーネント間のキーの迅速な交換に最適(外部、交換)
Freebase のトピックを扱うには、MID を使用することをおすすめします
名前空間、キー、トピック ID
ドメイン、タイプ、プロパティ ID のファイル ディレクトリのような階層は、より一般的なコンセプトである名前空間とキーの 1 つのアプリケーションにすぎません。名前空間はファイル ディレクトリに、キーはファイル名に似ています。特定のファイル ディレクトリ内のすべてのファイル名が一意である必要があるのと同様に、特定の Namespace 内のすべてのキーも一意である必要があります。
より具体的な例として、/business
はビジネス ドメインに対応する名前空間です。その中で、ビジネス関連のタイプにはキー(company
)を返します。各タイプの ID は、そのキーを名前空間の ID に追加することで形成されます(例: 例: /business/company
)。
ドメインと型に対応する Namespace の他に、いくつかの種類の Namespace があります。最も重要で頻繁に使用されるのは /en
名前空間です。これは、よく知られているトピックに一意のキーを付与して、人が読める英語の ID を作成できる英語の Namespace です。たとえば、多作のボブ・ディランは非常に有名であるため、Freebase のトピックには /en
Namespace のキー bob_dylan
が割り当てられており、トピックの ID は /en/bob_dylan
です。この ID を使用すると、シンプルな URL でウェブ クライアントのトピックにアクセスできます。
プロパティの詳細
最後に説明する基本的なコンセプトは、Freebase プロパティとリレーショナル データベース テクノロジー(リレーショナル テーブルの列)の類似点における大きな違いです。リレーショナル テーブルの列には、行ごとに 1 つの値しか格納できません。たとえば、「author」という名前の列を含む一般的な「book」リレーショナル テーブルについて考えてみましょう。「book」テーブルの各行の「author」列には、「author」テーブルへの外部キーを 1 つだけ含めることができます。書籍に複数の著者がいる場合、この単純なリレーショナル スキーマ設計は機能しません。著者をモデル化する新しいテーブルを作成する必要があります。つまり、書籍と著者の多対多の関係を保存するには、書籍テーブル、著者テーブル、著作テーブルがそれぞれ 1 つずつ必要になります。また、スキーマ設計を切り替えると、データの取得方法が大幅に変わります。
従来のデータベース技術とは対照的に、Freebase では、実生活のデータをモデル化するうえで複数値のプロパティが非常に望ましいと考えられているため、デフォルトで複数値のプロパティがサポートされています。つまり、/book/written_work/author
プロパティが作成されたときに、書籍ごとに複数の著者を許可することが想定されていました。マルチ値プロパティと単一値プロパティは、まったく同じ方法でクエリできます。n 対 n の関係をモデル化する 3 つ目のテーブルで結合する必要があるかどうかを考える必要はありません。
概要
- タイプは、トピックの特定の側面を説明するために一般的に必要となる、関連するプロパティの概念的なコンテナです。
- トピックには 1 つ以上のタイプを割り当てることができます(デフォルトのタイプは
/common/topic
です)。 - プロパティがタイプにグループ化されるように、タイプはドメインにグループ化されます。
- ドメイン、型、プロパティには、名前空間/キー階層で ID が付与されます。
- 一般的なよく知られているトピックには、
/en
名前空間で ID が付与されます。これは人間が読める英語の文字列です。 - トピックは、Freebase 内で GUID によって一意に識別されます。
- プロパティはデフォルトで複数値であり、複数値のプロパティと単一値のプロパティは同じ方法でクエリできます。