• Rustam Azimov, Semyon Grigorev

    The generalization of matrix-based Valiant's context-free language recognition algorithm for graph case is widely considered as a recipe for efficient context-free path querying; however, no progress has been made in this direction so far. We propose the first generalization of matrix-based Valiant's algorithm for context-free path querying. Our generalization does not deliver a truly sub-cubic worst-case complexity algorithm, whose existence still remains a hard open problem in the area. On the other hand, the utilization of matrix operations (such as matrix multiplication) in the process of context-free path query evaluation makes it possible to efficiently apply a wide class of optimizations and computing techniques, such as GPGPU, parallel processing, sparse matrix representation, distributed-memory computation, etc. Indeed, the evaluation on a set of conventional benchmarks shows, that our algorithm outperforms the existing ones.

    GRADES-NDA '18 Proceedings of the 1st ACM SIGMOD Joint International Workshop on Graph Data Management Experiences & Systems (GRADES) and Network Data Analytics (NDA),
  • Petr Lozov, Andrey Vyatkin, Dmitry Boulytchev

    18th International Symposium on Trends in Functional Programming

  • A. Podkopaev, O. Lahav, V. Vafeiadis
  • A. Podkopaev, O. Lahav, V. Vafeiadis
    Proceedings of ISP RAS,
  • Rustam Azimov, Semyon Grigorev

    Graph data model is widely used in many areas, for example, bioinformatics, graph databases, RDF. One of the most common graph queries are navigational queries. The result of query evaluation are implicit relations between nodes of the graph, i.e. paths in the graph. A natural way to specify these relations is by specifying paths using formal grammars over edge labels. This type of queries is usually evaluated using the relational query semantics. There is a number of algorithms for query evaluation which use such semantics but they have computational problems with big data. One of the most common technique for efficient big data processing is GPGPU, but these algorithms do not allow to use this technique effectively. In this paper we propose a graph parsing algorithm for query evaluation which use relational query semantics and context-free grammars, and is based on matrix operations which allows to speed up computations by means of GPGPU.

  • Anton Podkopaev, Ori Lahav, Viktor Vafeiadis
    In the European Conference on Object-Oriented Programming (ECOOP),
  • Daniil Berezun and Neil D. Jones
    Proceedings of the 2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation,
  • Semyon Grigorev, Anastasiya Ragozina

    Graph data model and graph databases are very popular in various areas such as bioinformatics, semantic web, and social networks. One specific problem in the area is a path querying with constraints formulated in terms of formal grammars. The query in this approach is written as grammar, and paths querying is graph parsing with respect to given grammar. There are several solutions to it, but how to provide structural representation of query result which is practical for answer processing and debugging is still an open problem. In this paper we propose a graph parsing technique which allows one to build such representation with respect to given grammar in polynomial time and space for arbitrary context-free grammar and graph. Proposed algorithm is based on generalized LL parsing algorithm, while previous solutions are based mostly on CYK or Earley algorithms, which reduces time complexity in some cases.

  • Marina Polubelova, Sergey Bozhko, Semyon Grigorev

    There are numerous toolchains designed for certified programming, but F* is the only language that support both general-purpose programming and semi-automated proving. We work on the application of this technique to a grammarware research and development project YaccConstructor. We present a work in progress verified implementation of transformation of Context-free grammar to Chomsky normal form, that is making progress toward the certification of the entire project. Among other features, F* system allows to extract code in F# or OCaml languages from a program written in F*. YaccConstructor project is mostly written in F#, so this feature of F* is of particular importance because it allows to maintain compatibility between certified modules and those existing in the project which are not certified yet.

    Proceedings of the Institute for System Programming,
  • Anton Podkopaev, Ilya Sergey, Aleksandar Nanevski

Sort by: