# Domain-Specific Languages for Algorithmic Graph Processing: A Systematic Literature Review
## 3 Results
### Result Synthesis
#### 3.2.2 RQ2  
Domain-Specific Abstractions for Property Graphs  
Table 2 synthesizes the domain-specific abstractions introduced via DSLs for property graphs. These include semantic abstractions (domain-specific types) or syntactic abstractions, which we list below. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Property Graph Model** & **GraphBLAS Model** & **Vertex-Centric Model** \\ \hline GreenMarl [21] & PyGB [32] & Palgol [28] \\ Elixir [22] & Peng et al. [33] & Fregel [36] \\ Falcon [23] & \\ GraphH [29] & \\ PGX Algorithm [27] & \\ StarPlat [37] & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Graph model taxonomy. Figure 1: PRISMA flow diagram for our systematic review. Template source: [[https://www.prismatatement.org/prisma-2020-flow-diagram](https://www.prismatatement.org/prisma-2020-flow-diagram)]([https://www.prismatatement.org/prisma-2020-flow-diagram](https://www.prismatatement.org/prisma-2020-flow-diagram)) (accessed on 3 July 2025). Figure 2: Timeline of surveyed graph DSLs. The year is given based on the earliest publication [33]. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline  & & Elair & Gross-Mark & Falcon & Grapht & PCX Algorithm & StarPut \\ \hline \multirow{4}{*}{domain-specific types} & graph & Graph & graph & Graph & & PcgGraph & Graph \\ \cline{2-8}  & node & node & vertex & Plant & Element & PcgVertex & node \\ \cline{2-8}  & edge & edge & edge & Edge & Element & PcgEdge & edge \\ \cline{2-8}  & property & implicit & vertexProperty & implicit & Vector & VertexProperty & progNode \\ \cline{2-8}  & property & implicit & edgeProperty & implicit & Vector & EdgeProperty & progEdge \\ \cline{2-8}  & \multirow{2}{*}{collection} & & & & & & VertexSet & VertexSet \\ \cline{2-8}  & & & & & & & EdgeSet \\ \hline \multirow{4}{*}{graph iteration} & sequential & for & for & for & for & for \\ \cline{2-8}  & parallel & foreach & foreach & foreach & in scheduling & foreach & foreall \\ \cline{2-8}  & fixed point & iterate & & & & & fixedPoint \\ \cline{2-8}  & BPS & inBFS & & & & & Traversal\_injBFS \\ \cline{2-8}  & DFS & inDFS & & & & Traversal\_injBFS & \\ \hline \multirow{4}{*}{aggregation operations} & \multirow{4}{*}{numeric operations} & sum & sum & & sum & \\  & & product & max & ReduxSum & Sum & max & \\  & & & max & & & & min \\  & & & min & & & & avg & \\ \cline{2-8}  & \multirow{2}{*}{boolean} & any & & & & & avgMatch & \\  & & all & & & & allMatch & \\ \hline \multirow{4}{*}{property operations} & property & \(n\) p & \(n\) p & \(p\) & [pl] & p-get(s) & n\(p\) \\  & read & & e\(p\) & e\(p\) & [glue, dad] & p-get(s) & e\(p\) \\ \cline{2-8}  & single-point update & a rewrite rule, & \(\
eg\) & n\(p\) = \(v\); & p-l = \(v\); & p-set(s, v) & n\(p\) = \(v\); \\  & update & p (p) \(v\) & e = \(v\); & e\(p\) = \(v\); & p-lrc, dad(s) = \(v\); & p-set(s, v) & e\(p\) = \(v\); \\ \cline{2-8}  & batch & iteration matching & iteration updating & iteration updating & function applied & iteration updating & iteration updating \\  & update & the update operator & every element & every element & to set & every element & every element \\ \cline{2-8}  & & & & & & & \\ \cline{2-8}  & & & & & & & \\ \end{tabular}
\end{table} 
Table 2: Domain-specific abstractions provided by reviewed DSLs for property graphs. Domain-specific types embody graph-related notions, such as graphs, nodes (also called vertices), edges, graph properties, or collections of graph elements. * Graph iterations are constructs for iterating over a set of graph elements (i.e., set of nodes or set of edges). In other words, they are loops specified for graph elements. These loops can be sequential, parallel, or a specific graph traversal (breadth-first search or depth-first search). * Aggregations are constructs that perform a reduction operation (such as sum, average, max, or min) over a set of graph elements.