Введение 4
1. Постановка задачи 7
2. Обзор 8
2.1. Базовые определения из теории формальных языков . . 8
2.2. Базовые определения из теории графов 11
2.3. Задачи поиска путей с контекстно-свободными ограничениями 12
2.4. Обобщенный LL алгоритм 12
2.5. Алгоритм выполнения контекстно-свободных запросов, базирующийся на GLL 14
3. Реализация алгоритма 16
3.1. Мотивация 16
3.2. Особенности реализации 17
3.3. Архитектура 18
4. Экспериментальное исследование 21
4.1. Оборудование 21
4.2. Экспериментальные данные 21
4.3. Постановка экспериментов 27
4.4. Результаты экспериментов 28
Заключение 36
Список литературы 37
Представление данных в виде помеченных графов находит широкое применение во многих научных областях [17], таких как анализ социальных сетей [2], биоинформатика[16], статический анализ кода [7] и т.д. Одним из основных преимуществ данной модели над реляционной моделью является более быстрое получение информации об отношениях между объектами, ведь взаимосвязи между узлами не вычисляются во время выполнения запроса, а хранятся в самой модели.
При работе с такими данными зачастую возникают запросы навигации и поиска путей между вершинами. Одним из способов выражения такого рода запросов является определение формальных грамматик над алфавитом меток ребер графа [3]. Путь в графе удовлетворяет ограничениям, задаваемым данной формальной грамматикой, если ему принадлежит слово, получаемое конкатенацией меток на ребрах данного пути. Наибольшее практическое применение находят регулярные грамматики, несколько менее популярными являются контекстно-свободные свободные грамматики. Однако, с точки зрения приложений к языкам программирования и компиляции наиболее важными являются именно контекстно-свободные грамматики. Таким образом встает вопрос о необходимости разработки и реализации алгоритмов поиска путей с контекстно-свободными ограничениям (англ. «Context-Free Path Querying», кратко CFPQ).
Несмотря на то, что проблема выполнения контестно-свободных запросов широко изучена и существует целый ряд алгоритмов, ее решающих [1,4,10, 13], тем не менее одной из наиболее остро стоящих проблем является низкая производительность существующих алгоритмов [6], поэтому актуальной задачей является разработка и реализация новых алгоритмов, решающих данную проблему.
Одним из недавно разработанных методов решения данной задачи является алгоритм, использующий матричное представление для получения информации о достижимостях в графе. Данный алгоритм был предложен Азимовым Р.Ш. в [5] и основан на матричных операциях. В его работе было показано, что данный алгоритм демонстрирует достаточно хорошую производительность. Кроме того, основанный на матрицах CFPQ-алгоритм в дальнейшем стал основой для первой полноценной поддержки контекстно-свободных запросов в результате расширения графовой базы данных RedisGraph [14].
Матричное представление не единственный возможный способ решения такого рода задач. Более того, результаты исследований показали, что базовые алгоритма распознавания строк по заданной грамматике могут быть естественным путем обобщены на входные данные в виде графа [8]. Например, существуют описания того, как проблема поиска путей с контекстно-свободными ограничениями может быть решена с помощью использования обобщенного LL-парсера [12, 9] или обобщенного LR-парсера [18, 20]. Более того, такой подход позволяет получать информацию не только о достижимостях в графе, но и о самих путях [11].
Так, в рамках предыдущих работ [22] была получена реализация алгоритма для выполнения контекстно-свободных запросов в графовой базе данных Neo4j. Данный алгоритм является адаптацией классического алгоритма синтаксического анализа Generlized LL для выполнения контекстно-свободных запросов на графах. Важно отметить, что полученный алгоритм поддерживает весь класс контекстно-свободных языков. Модифицированный GLL, так же как и оригинальный алгоритм, возвращает информацию не только о достижимостях между вершинами, но и информацию для построения самих путей. Несмотря на то, что проведенное экспериментальное исследование показало практическую эффективность полученного решения при работе с контекстно-свободными грамматиками, тем не менее данная реализация не позволяет напрямую работать наиболее распространенным на сегодняшний день способом задания ограничений — с регулярными выражениями. Для их обработки сначала необходимо преобразование грамматики, что ведет к увеличению количества продукций в ней и, как следствие, ухудшению производительности алгоритма GLL. Обойти данную проблему может помочь выражение грамматик в виде рекурсивных автоматов, которые одинаково оптимально поддерживают как регулярные, так и контекстно-свободные грамматики.
Таким образом, целью данной работы является предоставление реализации GLL алгоритма, основанного на рекурсивном автомате, для обработки входных данных в виде графа как для решения задачи достижимости, так и для поиска путей. Далее планируется проведение экспериментального исследования с целью выявления значимого повышения эффективности по сравнению с альтернативными решениями.
1 Постановка задачи
Целью данной работы является реализация и экспериментальное исследование производительности GLL-парсера, основанного на рекурсивном автомате.
Для достижения данной цели были поставлены следующие задачи.
• Реализация классического алгоритма GLL.
• Модификация алгоритма GLL для поддержки представления грамматики в виде рекурсивного автомата.
• Расширение модифицированного алгоритма GLL на входные данные в виде графа.
• Проведение экспериментального исследования и сравнение с существующими решениями.
В ходе работы были достигнуты следующие результаты.
• Реализован классический GLL алгоритм.
• Алгоритм GLL был модификацирован для поддержки представления грамматики в виде рекурсивного автомата.
• Реализовано расширение модификацированного GLL алгоритма на входные данные в виде графа.
• Проведено экспериментальное исследование, по результатам которого можно сделать выводы о том, что полученная модификация алгоритма GLL работает существенно эффективнее классического алгоритма GLL.
Можно выделить несколько дальнейших возможных направлений работы.
• Проведение экспериментального исследования на более широком наборе реальных данных. Примером таких данных являются графы MemoryAliases [21]
• Интеграция с одной из графовых баз данных. Примером такой базы является графовая база данных Neo4j.
[1] Azimov Rustam, Grigorev Semyon.Context-Free Path Querying byMatrix Multiplication. - GRADES-NDA ’18. - New York, NY, USA : Association for Computing Machinery, 2018. — 10 p. — URL: https://doi.org/10.1145/3210259.3210264.
[2] Barcelo Baeza Pablo.Querying Graph Databases // Proceedings of the 32nd ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database Systems. — PODS ’13. — New York, NY, USA : Association for Computing Machinery, 2013. — P. 175-188. — URL: https://doi.org/10.1145/2463664.2465216.
[3] Barrett Chris, Jacob Riko, Marathe Madhav. Formal-
Language-Constrained Path Problems //SIAM Journal onComputing. — 2000. — Vol. 30, no. 3. — P. 809-837. —
https://doi.org/10.1137/S0097539798337716.
[4] Zhang Xiaowang, Feng Zhiyong, Wang Xin et al. Context-Free Path Queries on RDF Graphs. — 2016. — 1506.00743.
[5] Context-Free Path Querying with Single-Path Semantics by MatrixMultiplication/ Arseniy Terekhov, Artyom Khoroshev, Rustam Az¬imov, Semyon Grigorev // Proceedings of the 3rd Joint Interna¬tional Workshop on Graph Data Management Experiences & Sys¬tems (GRADES) and Network Data Analytics (NDA).— GRADES- NDA’20. — New York, NY, USA : Association for Computing Ma¬chinery, 2020.— 12 p.— URL: https://doi.org/10.1145/3398682.3399163.
[6] An Experimental Study of Context-Free Path Query Evaluation Meth-ods / Jochem Kuijpers, George Fletcher, Nikolay Yakovets, Tobias Lin- daaker // Proceedings of the 31st International Conference on Scientific and Statistical Database Management.— SSDBM ’19.— New York, NY, USA : Association for Computing Machinery, 2019. — P. 121— 132. — URL: https://doi.org/10.1145/3335783.3335791.
[7] Fast Algorithms for Dyck-CFL-Reachability with Applications to Alias Analysis / Qirun Zhang, Michael R. Lyu, Hao Yuan, Zhendong Su // SIGPLAN Not. - 2013. - Vol. 48, no. 6. - P. 435-446. - URL: https://doi.org/10.1145/2499370.2462159.
[8] Grigorev Semyon, Ragozina Anastasiya.Context-Free Path Queryingwith Structural Representation of Result // Proceedings of the 13th Central amp; Eastern European Software Engineering Conference in Russia. — CEE-SECR ’17.— New York, NY, USA : Association for Computing Machinery, 2017.— 7 p. — URL: https://doi.org/10.1145/3166094.3166104.
[9] Grigorev Semyon, Ragozina Anastasiya.Context-free path queryingwith structural representation of result // Proceedings of the 13th Central & Eastern European Software Engineering Conference in Russia. - ACM, 2017. - oct. - URL:
[10] Hellings Jelle. Querying for Paths in Graphs using Context-Free Path Queries. - 2016. - 1502.02242.
[11] Hellings Jelle. Explaining Results of Path Queries on Graphs // Soft¬ware Foundations for Data Interoperability and Large Scale Graph Data Analytics / Ed. by Lu Qin, Wenjie Zhang, Ying Zhang et al. — Cham : Springer International Publishing, 2020. — P. 84-98.
[12] Medeiros Ciro M., Musicante Martin A., Costa Umberto S.EfficientEvaluation of Context-Free Path Queries for Graph Databases // Pro¬ceedings of the 33rd Annual ACM Symposium on Applied Comput¬ing. — SAC ’18.— New York, NY, USA : Association for Comput¬ing Machinery, 2018.— P. 1230-1237.— URL: https://doi.org/10.1145/3167132.3167265.
[13] Medeiros Ciro M., Musicante Martin A., Costa Umberto S. An Algo-rithm for Context-Free Path Queries over Graph Databases. — 2020. — 2004.03477.
[14] Multiple-Source Context-Free Path Querying in Terms of Linear Alge-bra / Arseniy Terekhov, Vlada Pogozhelskaya, Vadim Abzalov et al. // International Conference on Extending Database Technology.— 2021.
[15] Shemetova Ekaterina, Azimov Rustam, Orachev Egor et al. One Algo-rithm to Evaluate Them All: Unified Linear Algebra Based Approach to Evaluate Both Regular and Context-Free Path Queries. — 2021.— P. 23.
[16] Quantifying variances in comparative RNA secondary structure pre-diction / James Anderson, Adam Novak, Zsuzsanna Sukosd et al. // BMC bioinformatics. — 2013. — 05. — Vol. 14. — P. 149.
[17] Robinson I., Webber J., Eifrem E. Graph Databases: New Opportunities for Connected Data.— O’Reilly Media, 2015.— ISBN:9781491930847.
[18] Santos Fred, Costa Umberto, Musicante Martin.A Bottom-Up Algo-rithm for Answering Context-Free Path Queries in Graph Databases. — 2018. —01. —P. 225-233. — ISBN:978-3-319-91661-3.
[19] Scott Elizabeth, Johnstone Adrian. GLL parsing //Electr. NotesTheor. Comput. Sci. — 2010. — 09. — Vol. 253. — P. 177-189.
[20] Tomita Masaru.LR Parsers for Natural Languages // Proceedings of the 10th International Conference on Computational Linguistics and 22nd Annual Meeting on Association for Computational Linguis¬tics. — ACL ’84/COLING ’84. — USA : Association for Computational Linguistics, 1984.— P. 354-357. — URL: https://doi.org/10.3115/980491.980564.
[21] Zheng Xin, Rugina Radu.Demand-Driven Alias Analysis for C // Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. — POPL ’08. — New York, NY, USA : Association for Computing Machinery, 2008. — P. 197¬208. — URL: https://doi.org/10.1145/1328438.1328464.
[22] Выпускная квалификационная работа “Реализация и экспериментальное исследование алгоритма поиска путей с контекстно-свободными ограничениями в графовой базе данных Neo4j“ Погожельской В.В.— URL: https://oops.math.spbu.ru/SE/diploma/2022/pi/Pogozhelskaya-report.pdf. (accessed: 05.04.2023).