Расширение Cypher и Neo4j поддержкой запросов с контекстно-свободными ограничениями

Сообщество разрабатывает расширение Cypher, позволяющее задавать контекстно-свободные ограничения на пути. Было показано, что алгоритм выполнения КС-запросов, основанный на GLL, достаточно производителен при интеграции с Neo4j. Однако в рамках упомянутой интеграции не расширялся язык запросов, а лишь предоставлялась хранимая процедура. Предлагается расширить язык запросов Cypher (синтаксис языка, построение плана выполнения запроса, оптимизатор), провести экспериментальное исследование полученного решения с целью оценить его производительность.

Требования к студенту
  • Отличное знание теории формальных языков и алгоритмов синтаксического анализа: контекстно-свободные грамматики, алгоритмы GLL, LL, LR, парсер-комбинаторы.
  • Отличное знание теории графов: ориентированные помеченные (на рёбрах) графы, алгоритмы обхода, поиска путей.
  • Основы графовых БД: языки запросов (Cypher), property graphs, знакомство с Neo4j.
  • Хорошие знания Java и Scala.
Уровень

Бакалаврская ВКР, Магистерская ВКР


Руководитель

Григорьев Семен Вячеславович


Консультант

Grigorev Semyon


Источник

Кафедра системного программирования СПбГУ