Создание нового децентрализованного интернета долгие годы волнует умы специалистов. Профессор Тим Бернерс-Ли пошел еще дальше и нашел способ редецентрализовать интернет. Что это значит, как с этим связан проект Solid и что такое «поды»? Читайте в нашем переводе статьи Arnav Bansal, опубликованной на сайте freeCodeCamp.

Недавно профессор Тим Бернерс-Ли представил проект под названием Solid. Я решил ознакомиться с ним. В этой статье я объясню, для чего нужен Solid и как вы можете начать работать с ним.

Что такое Solid?


Solid — это попытка редецентрализовать интернет.

Редецентрализовать?

Раньше интернет представляли как децентрализованное общее пространство для считывания и записи данных. Первый браузер, который назывался WorldWideWeb, был также и редактором.

Однако с развитием интернета структура веб-приложений по целому ряду причин стала централизоваться. Данные пользователей превратились в источник силы и дохода интернет-компаний.

Solid — решение этой проблемы.

Solid — это новая парадигма для веб-приложений, которая обратно совместима с существующим интернетом.

Solid — это набор технологий, группа связанных протоколов и внедрений, а также растущее сообщество. Совсем как интернет.

Разделение приложений и данных


До появления интернета ваши данные хранились на личном компьютере.

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

Таким образом, приложения оказались тесно связаны с данными пользователей. Создание какого-либо приложения для сети предполагает глобальное управление персональными данными.

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

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

Правила защиты данных


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

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

Поды: держите свои данные при себе


Проект Solid решает технический аспект этой проблемы. Он позволяет создавать приложения таким образом, чтобы они могли считывать и записывать данные, которые хранятся в вашем поде (англ. «pod» — personal online data).

У вас и ваших друзей есть поды, которые содержат информацию. Вы даете приложениям разрешение на доступ к вашему поду.

У вас их может быть несколько: один вы используете дома, другой на работе. Ваш под может существовать на компьютере, или распределяться между вашими устройствами, или храниться для вас на каком-то ресурсе.

Поды содержат связанные данные. Ваш под может быть связан с информацией на моем поде или где-то в интернете.

Мы хотим, чтобы приложения работали на разных устройствах, но при этом наши данные были независимыми. И нам нужно, чтобы различные приложения могли использовать одни и те же данные и имели к ним доступ.

Идеи, лежащие в основе Solid


Изучение проекта Solid напомнило мне, как я делал первые шаги в веб-разработке. Помню, как одновременно осваивал HTML, CSS, JavaScript и фреймворки, которые использовались на тот момент.

Отличие лишь в том, что Solid это новый п��оект и найти помощь в его освоении сложнее.

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

(P.S. Если вы хотите сразу перейти к делу, читайте раздел «Первые шаги»).

Связанные данные


Сила Solid и интернета в целом заключается в том, как все данные скрепляются гиперссылками.
В Solid вы храните созданные вами данные где угодно. Ваша личная информация, скорее всего, хранится в вашем поде. Как и в интернете, для доступа к этим данным вам нужно перейти по URL-адресу.

Самое время представить вам расшифровку названия Solid: SOcial LInked Data (общественные связанные данные).

Читайте подробности о связанных данных в контексте проекта Solid.

Среда описания ресурса (RDF)


RDF — это способ представления связанных данных посредством утверждений вида subject-predicate-object. Их также называют триплетами.

RDF — это абстрактная модель. Ее даже можно представить на примере английских предложений. Перед вами задание из списка задач:

T1 is a task
T1 is labelled "Write an article about Solid"
T1 is due October 5rd 2018
T1 is assigned to @itsarnavb
T1 is incomplete


Turtle


Turtle — это компактный способ представления данных RDF с помощью URL для передачи subject, predicate и object.

<http://example.org/person/Nassim_Taleb> <http://example.org/relation/author> <http://example.org/books/The_Black_Swan>.
<http://example.org/person/Nassim_Taleb> <http://example.org/relation/author> <http://example.org/books/Antifragile>.
<http://example.org/person/Nassim_Taleb> <http://example.org/relation/author> <http://example.org/books/Skin_in_the_Game>.

Три ссылки в каждой строке — Subject, Predicate и Object соответственно.

Они повторяются, их тяжело читать, поэтому у turtle есть система префиксов и условных обозначений. Это особенно важно при работе с большими документами.

@prefix p: <http://example.org/person/> .
@prefix rel: <http://example.org/relation/> .
@prefix book: <http://example.org/book/> .

p:Nassim_Taleb rel:author book:The_Black_Swan,
                          book:Antifragile,
                          book:Skin_in_the_Game.

Читайте больше о turtle. Также вы можете ознакомиться с полным документом о turtle здесь. Это подробный публичный профиль профессора Рубена Вербора, который является частью команды создателей Solid.

Семантическая паутина


Тим Бернерс-Ли наилучшим образом объясняет смысл всего этого:
«Я мечтаю о том, чтобы интернет [с по��ощью компьютеров] мог анализировать все сетевые данные — контент, ссылки и транзакции между людьми и компьютерами. «Семантическую паутину», которая сделает это возможным, еще только предстоит разработать, но когда это произойдет, ежедневными механизмами торговли, бюрократическими процедурами и нашей повседневной жизнью будут заниматься машины, общающиеся между собой. «Интеллектуальные агенты», которых люди так давно расхваливают, наконец-то станут реальностью».

Первые шаги


Выполняйте эти задачи в любой удобной для вас последовательности.


Переходите на Solid


Вы поможете экосистеме Solid, если:

  • вложитесь в разработку самого проекта Solid и инфраструктуры, связанной с ним;
  • будете разрабатывать приложения, используя Solid.


Но имейте в виду, что в данный момент разработка для Solid — это тернистый путь со множеством проб и ошибок, на котором вам придется задавать глупые вопросы и искать на них ответы. Тут нет Stack Overflow, куда можно было бы обратиться. Для того, чтобы отладить некоторые ошибки, вам, вероятно, потребуется погрузиться в исходный код.

Вот сообщества, в которых вам могут помочь:


И наконец, вот мой Twitter для личных сообщений: @itsarnavb. Я попытаюсь ответить на все поступающие вопросы или найду того, кто сможет это сделать.

Я буду поддерживать актуальность этой статьи, опираясь на лучшие ресурсы для изучения Solid.

Дополнительные материалы