June 7, 2022

Triples (тройки) в Golden — что это и зачем они нужны.

Всем привет!

Если вы читаете эту статью, скорее всего вы интересуетесь проектом Golden, который ставит перед собой цель создать самую большую децентрализованную базу знаний в мире (порядка 10 млрд различных объектов) чем-то напоминающую Википедию по содержанию но с большим функционалом для поиска информации.

На сайте Golden указано, что протокол будет работать с Triples (тройками) и что они являются элементарными строительными блоками фактов (знаний), которые связывают объекты вместе, образуя базу данных. Предлагаю рассмотреть их более подробно.

В лингвистике есть раздел, который изучает смысловое значение единиц языка — Семантика. Семантическая тройка — это единица данных, которая объясняет какой-то определенный факт. Она состоит из трех элементов (подлежащее-сказуемое-дополнение/subject- predicate-object) которые кодируют этот факт.

Примеры семантических троек:

Илон Маск основал SpaceX
SpaceX производит космическую технику
Илон Маск основал Tesla
Tesla производит электромобили

Для того, чтобы сформировать базу данных из семантических троек используют модель RDF (Resource Description Framework). Этот формат позволяет представить знания в машиночитаемом виде. Каждая часть тройки RDF имеет индивидуальную адресацию. Благодаря этому, можно запрашивать данные и проводить с ними логические операции. Например, из приведенных выше троек, поисковое программное обеспечение может сделать вывод, что Илон Маск связан с производством космической техники и электромобилей. Данная модель позволяет и организовать валидацию данных.

Семантическая тройка состоит из трех компонентов:

Подлежащее (Subject) — Илон Маск
Сказуемое (predicate) — основал
Дополнение (object) — SpaceX

Тройки могут быть составлены в более сложные модели , используя тройки в качестве Дополнения (object) или Подлежащего (Subject) других троек.

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

Хранение информации при помощи семантических троек имеет и свои недостатки. Одна их проблем — недостаточная масштабируемость базы данных. Эта проблема особенно актуальна, если в базе данных хранятся и извлекаются миллионы троек. Время поиска больше, чем для классических баз данных на основе SQL. Но все же семантические тройки пока самый оптимальный вариант для систематизации текстовой информации и организации ее поиска.