Graphbits: серия 5-минутных статей о графах

День, описанный в Grakn

Схема Гракна

Поговорим о гиперграфах! Короче говоря, гиперграф может иметь ребра, которые соединяют более двух узлов одновременно. Значит, должна быть база данных с моделью Hypergraph? Да, есть, и это Grakn ... и именно об этом и будет рассказываться этот пост (и еще несколько).

Grakn

Grakn цитируется как интеллектуальная база данных, которая позволяет моделировать базы знаний для различных областей, расширяя подход Entity-Relation (который в основном использовался для баз данных SQL). Оснащенный автоматизированным механизмом рассуждений, он способен выполнять логический вывод для больших наборов данных. Grakn имеет собственный декларативный язык запросов под названием Graql, а также поставляется со своим собственным инструментом визуализации под названием Grakn Workbase. (подробнее об этом позже)

Хватит разговоров ... перейдем к основам.

Схема Гракна

Прежде чем какие-либо данные будут загружены в базу данных, необходимо создать схему.

Думайте о схеме как о проекте базы данных, который дает вам ясное представление о том, как будут структурированы данные.

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

Давайте создадим простую схему на примере.

Рассмотрим этот сценарий

В Ватсвилле в канун Нового года проходил концерт Джины Гудвойс, и город ожидал наплыв посетителей из соседних городов. Бобби был одним из них. Желая познакомиться с городом, Бобби решил приехать заранее. Он сел на поезд из WhoTown, прибыл в Уотсвилл тем утром и встретил своего друга Тима за завтраком в соседнем кафе. Затем он решил посетить Городской музей и по пути купил книгу. На обед он купил бутерброд в фургоне с едой и некоторое время посидел на берегу озера. К вечеру он направился к городскому стадиону, где должен был состояться концерт. Он прекрасно провел время на концерте, слушая мелодии Джины Гудвойс. Концерт продолжался до поздней ночи, после чего Бобби вернулся домой последним поездом.

Почему я так отвлекаюсь? Причина проста.

Представьте себе мир Бобби. Вернее, день Бобби. Были люди, которых он встретил; места, которые он посетил; вещи, которые он купил и т. д. Это просто серия событий, которые произошли в течение дня. Теперь мы собираемся смоделировать этот же день в Grakn.

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

  • Сущности существуют независимо. Они есть нечто физическое.
  • Отношения обычно представляют собой некую форму связи между объектами.
  • Характеристики объекта или отношения можно указать с помощью атрибутов.
  • И, наконец, в любом отношении объекты (или атрибуты) всегда играют определенную роль

Смущенный? Давайте определим каждый из них на нашем примере.

Что можно назвать сущностями? Простой подход - идентифицировать людей, места и предметы (и животных тоже, если они там есть).

Итак, у нас есть Бобби, Тим, Джина Гудвойс, Whatsville, WhoTown, поезд, в котором ехал Бобби, кафе, в котором он завтракал, стадион, где проходил концерт, бутерброд, который он купил, и многое другое. Там! У нас есть наши основные объекты: Человек, Место и Вещь.

Итак, каковы могут быть характеристики этих сущностей? Например, у человека может быть имя и возраст. Город (или любое место) может иметь название, родительскую страну / штат, широту, долготу и т. Д., Чтобы идентифицировать его. Точно так же вещь может иметь имя и другие определенные характеристики. Это могут быть ваши атрибуты.

Затем, если вдуматься, что связывает все эти сущности вместе? событие.

Концерт Джины Гудвойс - это событие, которое связывает Бобби, Тима и Джину, и проходит на стадионе в канун Нового года. Это событие и отношение в вашей схеме, которое связывает человека, место и вещь.

Кроме того, человек играет роль участника в событии, а место играет роль места проведения мероприятия. Там мы назначили роли сущностям во взаимосвязи.

Вплоть до кода

Хорошо, пора начать отстукивать. Мы собираемся создать схему, которую мы ранее определили для Grakn.

Но сначала! Установки:

Убедитесь, что у вас установлены сервер Grakn и Workbase. Если нет, то объезжай сюда и возвращайся.

Создание схемы

Схема может быть определена в файле с расширением «. gql».

Определение схемы всегда начинается с ключевого слова «определить».

Далее мы определяем сущности. Итак, у нас есть человек, место и вещь как наши сущности. Кроме того, мы можем определить атрибуты и роли сущности.

Как человек имеет имя атрибута и играет роль участника в событии.

  • Ключевое слово «sub» используется для указания объекта, отношения или атрибутов.
  • Атрибуты объекта или отношения определяются с помощью ключевого слова «имеет».
  • Роли определяются с помощью ключевого слова «игры».

Затем нам нужно определить все атрибуты, упомянутые в схеме. При определении каждого атрибута необходимо указать тип данных атрибута. Это можно сделать с помощью ключевого слова «тип данных».

Наконец, перейдем к отношениям. Определения отношения аналогичны определению объекта. Отношение может иметь атрибуты и даже играть роли.

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

Например, взаимосвязь событий относится к ролям «eventParticipant» и «eventLocation», которые исполняются объектами person и location соответственно.

(Обратите внимание, что отношение может связывать роли, а не сущности)

Теперь, когда мы определили схему. Нам нужно загрузить его в Grakn.

Загрузка схемы в Grakn

Перейдите к своему терминалу и запустите сервер Grakn:

grakn server start

Теперь загрузите схему, используя:

grakn console -k grakn_example -f schema.gql

Аргумент -k здесь означает «пространство ключей». Думайте о пространстве ключей как о имени вашей базы данных. В то время как -f здесь - это «путь к файлу» к файлу схемы.

Заключительные проверки

Если вы получите такой результат, как

Successful commit: schema.gql

Тогда это означает, что ваша схема загружена. Теперь вы можете перейти на Grakn Workbase и увидеть свою схему. Это должно выглядеть примерно так:

И готово! Следующим шагом будет загрузка данных в базу данных…. и это заслуживает отдельного поста. Так что все, что я могу сказать, это следите за обновлениями! И приятного чтения!

Ссылка на предыдущие блоги: