В этом репозитории лежит пример кода и задачи по работе с БД Neo4j на Haskell.
Для выполнения задач на воркшопе вам понадобятся следующие инструменты.
Docker используется для запуска самой базы данных Neo4j. Установить Docker для macOS можно по этой ссылке: https://hub.docker.com/editions/community/docker-ce-desktop-mac
Установка на Ubuntu также описана на официальном сайте: https://docs.docker.com/install/linux/docker-ce/ubuntu/
Для установки на свой любимый дистрибутив воспользуйтесь пакетным менеджером и инструкциями в интернете.
Для воркшопа подготовлен Docker образ Neo4j с загруженным датасетом. Скачайте его с Docker Hub:
$ docker pull maksbotan/neo4j-fpureИ запустите:
$ docker run -d -p 7474:7474 -p 7687:7687 maksbotan/neo4j-fpureВеб-интерфейс к Neo4j доступен по адресу http://localhost:7474.
Вам также понадобится компилятор Haskell и система сборки Stack. Установить Stack можно следующим образом:
$ curl -sSL https://get.haskellstack.org/ | shСклонируйте этот репозиторий и выполните в нем
$ stack buildЭта команда скачает все нужные зависимости и скомпилирует код с задачами.
Репозиторий включает в себя полностью реализованный пример работы с Neo4j:
Sample.hs. Запустить его после компиляции можно так:
$ stack exec -- neo4j-sample- docker/ - сборочные файлы для контейнера с базой данных
src/- вспомогательный кодtasks/- задачиpackage.yaml- файл hpackstack.yaml- конфигурация Stack
В package.yaml описаны три executable:
neo4j-sample- код изSample.hsneo4j-task1- первая задачаneo4j-task2- вторая задача
Запускаются они с помощью Stack:
$ stack exec -- neo4j-sample
$ stack exec -- neo4j-task1
$ stack exec -- neo4j-task2В коде каждой задачи оставлены пропуски в виде undefined, которые надо заполнить вам.
К каждой задаче уже подключены нужные зависимости, включая lens и, на всякий случай, mtl.
Документация по нужным модулям в hasbolt и hasbolt-extras: