Semantic Foundations of Seraph Continuous Graph Query Language
The scientific community has been studying graph data models for decades. Their high expressiveness and elasticity led the scientific community to design a variety of graph data models and graph query languages, and the practitioners to use them to model real-world cases and extract useful information. Recently, property graphs and, in particular, Cypher 9 (the first open version of the well-known Neo4j Inc.'s language) are gaining popularity. Practitioners find Cypher useful and applicable in many scenarios. However, we are living in a streaming world where data continuously flows. A growing number of Cypher's users show interest in continuously querying graph data to act in a timely fashion. Indeed, Cypher lacks the features for dealing with streams of (graph) data and continuous query evaluation. In this work, we propose Seraph, an extension of Cypher, as a first attempt to introduce streaming features in the context of property graph query languages. Specifically, we define Seraph semantics, we propose a first version of Seraph syntax, and we discuss the potential impacts from a user perspective.
READ FULL TEXT