Основные понятия

Если вы новичок в Freebase, этот раздел охватывает основную терминологию и концепции, необходимые для понимания того, как работает Freebase.

  1. Графики
  2. Темы
  3. Типы и свойства
  4. Домены и идентификаторы
  5. Типы составных значений
  6. Тематические MID
  7. Пространства имен, ключи и идентификаторы тем
  8. Подробнее о свойствах
  9. Краткое содержание

Графики

Данные Freebase хранятся в структуре данных, называемой графом . Граф состоит из узлов, соединенных ребрами. В Freebase узлы определяются с помощью /type/object , а ребра — с помощью /type/link . Сохраняя данные в виде графа, Freebase может быстро перемещаться по произвольным связям между темами и легко добавлять новые схемы без изменения структуры данных.

Темы

Freebase содержит более 39 миллионов тем о реальных объектах, таких как люди, места и вещи. Поскольку данные Freebase представлены графом, эти темы соответствуют узлам графа. Однако не каждый узел является темой. См. раздел о CVT в качестве примера узлов, не являющихся темами.

Примеры типов тем, найденных в Freebase:

Некоторые темы примечательны тем, что содержат много данных (например, Wal-Mart ), а некоторые примечательны тем, что связаны со многими другими темами, потенциально относящимися к другим областям информации. Например, абстрактные темы, такие как любовь, бедность, рыцарство и т. д., не имеют большого количества свойств, связанных с ними, но они часто появляются в качестве сюжетов книг, стихов, сюжетов фильмов и т. д., что делает их более заметными.

Типы и свойства

Любую данную тему можно рассматривать с разных точек зрения, например:

  • Боб Дилан был автором песен, певцом, исполнителем, автором книг и киноактером;
  • Леонардо да Винчи был художником, скульптором, анатомом, архитектором, инженером...;
  • Любовь - это тема книги, тема фильма, тема игры, тема поэзии, ...;
  • Любой город — это место, потенциально туристическое направление и работодатель государственных служащих.

Чтобы уловить этот многогранный характер многих тем, мы вводим концепцию типов в Freebase. Темам в Freebase может быть назначено любое количество типов. Теме о Бобе Дилане присваивается несколько типов: тип автора песен, тип композитора, тип музыкального исполнителя (певца), тип автора книги и т. д. Каждый тип несет в себе свой набор свойств , относящихся к этому типу. Например,

  • Тип музыкального исполнителя содержит свойство, в котором перечислены все альбомы, выпущенные Бобом Диланом, а также все музыкальные инструменты, на которых он, как известно, играл;
  • Тип автора книги содержит свойство, в котором перечислены все книги, написанные или отредактированные Бобом Диланом, а также его писательская школа мыслей или движений;
  • Тип компании содержит множество свойств для перечисления учредителей компании, членов правления, материнской компании, подразделений, сотрудников, продуктов, годовых отчетов о доходах и прибыли и т. д.

Таким образом, тип можно рассматривать как концептуальный контейнер свойств, которые чаще всего необходимы для описания определенного аспекта информации. (Вы можете думать о типе как о реляционной таблице, и каждая таблица «типов» имеет внешний ключ в одну таблицу «удостоверений», которая однозначно определяет каждую тему.)

Домены и идентификаторы

Точно так же, как свойства группируются в типы, сами типы группируются в домены . Думайте о доменах как о разделах в вашей любимой газете: «Бизнес», «Образ жизни», «Искусство и развлечения», «Политика», «Экономика» и т. д. Каждому домену присваивается идентификатор (идентификатор), например,

  • /business — это идентификатор бизнес-домена.
  • /music — Музыкальный домен
  • /film - домен фильма
  • /medicine — домен медицины

Идентификатор домена выглядит как путь к файлу или путь в веб-адресе.

Каждому типу также присваивается идентификатор, и его идентификатор основан на домене, к которому он принадлежит. Например, тип Company относится к домену Business и имеет идентификатор /business/company . Вот еще несколько примеров:

  • /music/album — это идентификатор типа (Музыка) Альбом, относящийся к музыкальному домену.
  • /film/actor — тип Актера в домене Фильм
  • /medicine/disease — Тип болезни в домене Медицина

Точно так же, как тип наследует начало своего идентификатора от своего домена, свойство также наследует начало своего идентификатора от типа, которому оно принадлежит. Например, свойству Industry типа Company (используемому для указания отрасли, в которой работает компания) присваивается идентификатор /business/company/industry . Вот еще несколько примеров:

  • /automotive/engine/horsepower — это идентификатор свойства лошадиных сил для типа двигателя (автомобильный).
  • /astronomy/star/planet_s — идентификатор свойства Planets типа Star (используется для перечисления планет вокруг звезды)
  • /language/human_language/writing_system — это идентификатор свойства «Система письма» типа «Человеческий язык».

Таким образом, несмотря на то, что типы в Freebase не организованы в иерархии; доменам, типам и свойствам присваиваются идентификаторы, концептуально расположенные в иерархии файловых каталогов.

Типы составных значений

Тип составного значения — это тип в Freebase, который используется для представления данных, где каждая запись состоит из нескольких полей. Типы составных значений или CVT используются в Freebase для представления сложных данных. Поначалу это может немного сбивать с толку, но CVT — очень важная часть схемы Freebase, которая позволяет более точно моделировать сложные отношения между темами.

Подумайте о следующем примере: Население города — это то, что меняется со временем. Это означает, что всякий раз, когда вы запрашиваете у Freebase население, вы, по крайней мере, неявно запрашиваете население на определенную дату. Участвуют два значения: количество людей и дата. Вот ситуация, когда вариатор становится чрезвычайно полезным. Без него для моделирования данных о населении вам нужно было бы создать тему и назвать ее как-то вроде «Население Ванкувера в 1997 году» и отправить туда информацию.

CVT можно рассматривать как тему, не требующую создания отображаемого имени. CVT, как и обычные темы, имеют GUID, на который можно ссылаться независимо. Однако клиент Freebase обрабатывает их совсем иначе, чем темы. В большинстве случаев каждое свойство CVT должно быть свойством устранения неоднозначности.

Тематические MID

Хотя тема может быть идентифицирована или не может быть идентифицирована по идентификаторам пространства имен/ключей, ее всегда можно идентифицировать с помощью MID — идентификатора машины, состоящего из /m/ за которым следует уникальный идентификатор base-32. MID назначаются темам во время создания и управляются на протяжении всего времени существования темы. Они играют решающую роль при объединении или разделении тем, позволяя внешним приложениям отслеживать логическую тему, даже если физическое удостоверение Freebase (GUID темы) может измениться. Идентификаторы, сгенерированные машиной, отличаются от других идентификаторов Freebase, читаемых человеком (возвращаемых свойством "id"), тем, что они:

  • Гарантировано существование
  • Созданный машиной
  • Разработан для поддержки автономного сравнения
  • Не предназначен для передачи значения людям
  • Короткая (возможно фиксированная длина)
  • Идеально подходит для быстрого обмена ключами между внешними системами и компонентами (внешними, обменными)

MID — это рекомендуемый идентификатор для обращения к темам в Freebase.

Пространства имен, ключи и идентификаторы тем

Подобная файловому каталогу иерархия идентификаторов домена, типа и свойства — это лишь одно из применений более общей концепции: пространства имен и ключи . Пространство имен похоже на файловую директорию, а ключ — на имя файла. Точно так же, как все имена файлов в определенном каталоге файлов должны быть уникальными между собой, все ключи в пределах определенного пространства имен также должны быть уникальными между собой.

В качестве более конкретного примера, /business — это пространство имен, соответствующее домену Business. Внутри него типам, связанным с бизнесом, присваиваются ключи (например, company ), которые уникальны между собой. Идентификатор каждого типа формируется путем добавления его ключа к идентификатору пространства имен (например, /business/company ).

Существует несколько видов пространств имен помимо пространств имен, которые соответствуют доменам и типам. Наиболее важным и часто встречающимся является пространство имен /en . Это английское пространство имен, в котором большинству известных тем могут быть присвоены уникальные ключи для формирования удобочитаемых английских идентификаторов. Например, плодовитый Боб Дилан настолько известен, что его теме в Freebase присвоен ключ bob_dylan в пространстве имен /en , поэтому идентификатор темы — /en/bob_dylan . Этот идентификатор позволяет вам получить доступ к его теме в веб-клиенте с помощью простого URL-адреса.

Подробнее о свойствах

Последняя базовая концепция, которую следует обсудить, связана с основным различием между свойствами Freebase и их аналогией в технологиях реляционных баз данных, а именно столбцами реляционной таблицы. Для каждой строки столбец реляционной таблицы может содержать только одно значение. Например, рассмотрим типичную реляционную таблицу «книга» со столбцом с именем «автор». Для каждой строки в таблице «книга» столбец «автор» может содержать только один внешний ключ к таблице «автор». Если у книги несколько авторов, то этот простой дизайн реляционной схемы не работает, и нам придется создать новую таблицу для моделирования авторства. То есть нам потребуется одна таблица «книги», одна таблица «автор» и одна таблица «авторство» для хранения отношений n-к-n между книгами и авторами. И способ извлечения данных радикально меняется, когда вы переключаетесь с одной схемы на другую.

В отличие от традиционных технологий баз данных, Freebase считает многозначные свойства настолько желательными при моделировании реальных данных, что по умолчанию поддерживает многозначные свойства. То есть, когда было создано свойство /book/written_work/author , предполагалось, что для каждой книги может быть несколько авторов, и вы можете запросить свойство с несколькими значениями и свойство с одним значением точно таким же образом. Не нужно думать, нужно ли вам присоединиться к третьей таблице, которая моделирует отношения n-to-n.

Краткое содержание

  • Тип — это концептуальный контейнер связанных свойств, обычно необходимых для описания определенного аспекта темы.
  • Теме может быть назначен один или несколько типов (тип по умолчанию — /common/topic ).
  • Поскольку свойства группируются в типы, типы группируются в домены.
  • Домены, типы и свойства получают идентификаторы в иерархии пространства имен/ключей.
  • Общеизвестным темам присваиваются идентификаторы в пространстве имен /en , которые представляют собой удобочитаемые строки на английском языке.
  • Темы однозначно идентифицируются в Freebase по идентификаторам GUID.
  • По умолчанию свойства являются многозначными, и свойства с несколькими значениями и свойства с одним значением можно запрашивать одинаковым образом.