@@ -11,17 +11,42 @@ and work with them in terms of linear algebra.
11
11
For the installation instructions, refer to [ docs/install.md] ( docs/install.md ) .
12
12
13
13
## CLI
14
- CFPQ_PyAlgo provides a command line interface for running
14
+ The CFPQ_PyAlgo project includes a command line interface for running
15
15
all-pairs CFPQ solver with relation query semantics.
16
16
17
17
For more details, refer to [ docs/cli.md] ( docs/cli.md ) .
18
18
19
19
## Evaluation
20
20
21
- CFPQ_PyAlgo provides scripts for evaluating performance
22
- of various CFPQ solvers (including third-party ones) .
21
+ The CFPQ_PyAlgo project includes a [ CFPQ evaluator ] ( cfpq_eval ) tool for evaluating the performance
22
+ of various CFPQ solvers.
23
23
24
- For more details, refer to [ docs/eval.md] ( docs/eval.md ) .
24
+ For more details on [ CFPQ evaluator] ( cfpq_eval ) usage, refer to [ docs/eval.md] ( docs/eval.md ) .
25
+
26
+ We used the [ CFPQ evaluator] ( cfpq_eval ) to compare our solver, FastMatrixCFPQ, with five
27
+ state-of-the-art competitors:
28
+ [ PEARL] ( https://figshare.com/articles/dataset/ASE_2023_artifact/23702271 ) ,
29
+ [ POCR] ( https://github.com/kisslune/POCR ) ,
30
+ [ KotGLL] ( https://github.com/vadyushkins/kotgll ) ,
31
+ [ Graspan] ( https://github.com/Graspan/Graspan-C ) , and
32
+ [ Gigascale] ( https://bitbucket.org/jensdietrich/gigascale-pointsto-oopsla2015/src ) ,
33
+ as well as with the previous version of our solver, MatrixCFPQ.
34
+ The input data was provided by the
35
+ [ CFPQ_Data] ( https://github.com/FormalLanguageConstrainedPathQuerying/CFPQ_Data ) ,
36
+ [ CFPQ_JavaGraphMiner] ( https://github.com/FormalLanguageConstrainedPathQuerying/CFPQ_JavaGraphMiner ) , and
37
+ [ CPU17-graphs] ( https://github.com/kisslune/CPU17-graphs )
38
+ projects and is included in the [ CFPQ evaluator distribution] ( docs/eval_install.md ) .
39
+ We ran the evaluation five times on a Ryzen 9 7900X CPU with 128 GB of DDR5 RAM,
40
+ with a timeout of 10,000 seconds for each solver invocation.
41
+
42
+ As shown in the bar chart below, FastMatrixCFPQ consistently outperforms other universal solvers
43
+ but is sometimes slower than the specialized solver
44
+ [ Gigascale] ( https://bitbucket.org/jensdietrich/gigascale-pointsto-oopsla2015/src ) ,
45
+ which is optimized for one specific context-free grammar.
46
+ Therefore, generalizing the ideas of [ Gigascale] ( https://bitbucket.org/jensdietrich/gigascale-pointsto-oopsla2015/src ) (i.e., recognizing and exploiting answer patterns)
47
+ is one of our future research directions.
48
+
49
+ ![ Performance of All-Pairs CFPQ Solvers With Relation Query Semantics] ( performance.png )
25
50
26
51
## Project structure
27
52
The global project structure is the following.
0 commit comments