Если вы новичок в Freebase, в этом разделе рассматриваются основные термины и концепции, необходимые для понимания того, как работает Freebase.
- Графики
- Темы
- Типы и свойства
- Домены и идентификаторы
- Типы составных значений
- Тематические MID
- Пространства имен, ключи и идентификаторы тем
- Подробнее о недвижимости
- Краткое содержание
Графики
Данные Freebase хранятся в структуре данных, называемой графом . Граф состоит из узлов, соединённых рёбрами. В Freebase узлы определяются с помощью /type/object , а рёбра — с помощью /type/link . Сохраняя данные в виде графа, Freebase может быстро переходить по произвольным связям между темами и легко добавлять новые схемы без необходимости изменения структуры данных.
Темы
Freebase содержит более 39 миллионов тем о реальных сущностях, таких как люди, места и вещи. Поскольку данные Freebase представлены в виде графа, эти темы соответствуют узлам в графе. Однако не каждый узел является темой. См. раздел о CVT в качестве примера узлов, которые не являются темами.
Примеры типов тем, найденных в Freebase:
- Физические объекты, например, Боб Дилан , Лувр , планета Сатурн ,
- Художественные/медийные произведения, например, «Темный рыцарь» (фильм) , «Отель Калифорния» (песня) и т. д.
- Классификации, например, благородный газ , хордовые ,
- Абстрактные понятия, например, любовь , к
- Школы мысли или художественные течения, например, импрессионизм .
Некоторые темы примечательны тем, что содержат большой объём данных (например, Wal-Mart ), а другие — тем, что связаны со многими другими темами, возможно, из других областей информации. Например, абстрактные темы, такие как любовь, бедность, рыцарство и т. д., не имеют множества связанных с ними свойств, но часто встречаются в темах книг, поэзии, фильмов и т. д., что делает их более примечательными.
Типы и свойства
Любую тему можно рассматривать с разных точек зрения, например:
- Боб Дилан был автором песен, певцом, исполнителем, автором книг и киноактером;
- Леонардо да Винчи был художником, скульптором, анатомом, архитектором, инженером, ...;
- Любовь — это тема книги, тема фильма, тема пьесы, тема поэзии, ...;
- Любой город — это место, потенциально туристический объект и работодатель государственных служащих.
Чтобы отразить многогранность многих тем, мы вводим концепцию типов в Freebase. Темам в Freebase может быть назначено любое количество типов. Теме о Бобе Дилане назначено несколько типов: тип «автор песен», тип «композитор», тип «музыкант (певец)», тип «автор книги» и т. д. Каждый тип обладает своим набором свойств . Например,
- Тип исполнителя музыки содержит свойство, в котором перечислены все альбомы, выпущенные Бобом Диланом, а также все музыкальные инструменты, на которых он, как известно, играл;
- Тип автора книги содержит свойство, в котором перечислены все книги, написанные или отредактированные Бобом Диланом, а также его писательская школа или направление;
- Тип компании содержит множество свойств для перечисления учредителей компании, членов совета директоров, материнской компании, подразделений, сотрудников, продуктов, годовых отчетов о доходах и прибыли и т. д.
Таким образом, тип можно рассматривать как концептуальный контейнер свойств, которые чаще всего необходимы для описания конкретного аспекта информации. (Тип можно представить как аналог реляционной таблицы, и каждая таблица «типов» имеет внешний ключ к одной таблице «идентичности», которая однозначно определяет каждую тему.)
Домены и идентификаторы
Подобно тому, как свойства группируются в типы, сами типы группируются в домены . Представьте домены как разделы в вашей любимой газете: «Бизнес», «Стиль жизни», «Искусство и развлечения», «Политика», «Экономика» и т. д. Каждому домену присваивается идентификатор (ID), например:
-
/business
— идентификатор домена Business. -
/music
— музыкальный домен -
/film
— домен «Фильм» -
/medicine
- область медицины
Идентификатор домена выглядит как путь к файлу или путь в веб-адресе.
Каждому типу также присваивается идентификатор, основанный на домене, к которому он принадлежит. Например, тип «Компания» относится к домену «Бизнес» и имеет идентификатор /business/company
. Вот ещё несколько примеров:
-
/music/album
— это идентификатор типа альбома (музыка), принадлежащего домену «Музыка». -
/film/actor
— тип «Актёр» в домене «Фильм» -
/medicine/disease
- тип болезни в области медицины
Подобно тому, как тип наследует начало своего идентификатора от своего домена, свойство также наследует начало своего идентификатора от типа, к которому оно принадлежит. Например, свойству «Отрасль» типа «Компания» (используемому для указания отрасли, к которой относится компания) присваивается идентификатор /business/company/industry
. Вот ещё несколько примеров:
-
/automotive/engine/horsepower
— это идентификатор свойства «Лошадиная сила» типа «Автомобильный двигатель». -
/astronomy/star/planet_s
— идентификатор свойства «Планеты» типа «Звезда» (используется для перечисления планет вокруг звезды) -
/language/human_language/writing_system
— это идентификатор свойства «Система письма» типа «Человеческий язык».
Таким образом, хотя типы в Freebase не организованы в иерархии, доменам, типам и свойствам присваиваются идентификаторы, концептуально организованные в иерархию, подобную файловому каталогу.
Типы составных значений
Составной тип значений (CVT) — это тип данных в Freebase, используемый для представления данных, где каждая запись состоит из нескольких полей. Составные типы значений (CVT) используются в Freebase для представления сложных данных. Поначалу это может показаться немного странным, но CVT — очень важная часть схемы Freebase, позволяющая более точно моделировать сложные отношения между темами.
Рассмотрим следующий пример: численность населения города меняется со временем. Это означает, что всякий раз, когда вы запрашиваете данные о населении во Freebase, вы как минимум неявно запрашиваете данные о населении на определённую дату. Здесь задействованы два значения: количество людей и дата. В этом случае CVT становится чрезвычайно полезным. Без него для моделирования данных о населении вам пришлось бы создать тему, назвать её, например, «Население Ванкувера в 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-к-n.
Краткое содержание
- Тип — это концептуальный контейнер связанных свойств, обычно необходимых для описания определенного аспекта темы.
- Теме можно назначить один или несколько типов (тип по умолчанию —
/common/topic
). - Поскольку свойства группируются в типы, типы группируются в домены.
- Домены, типы и свойства получают идентификаторы в иерархии пространства имен/ключей.
- Распространенным и известным темам присваиваются идентификаторы в пространстве имен
/en
, представляющие собой понятные человеку строки на английском языке. - Темы однозначно идентифицируются в Freebase с помощью идентификаторов GUID.
- По умолчанию свойства являются многозначными, и многозначные свойства, как и свойства с одним значением, можно запрашивать одинаково.