APEX is a graph query engine for RDF data based on worst-case optimal joins (WCOJ). It supports variable-wise parallel execution and dynamic variable ordering, and is designed to efficiently process complex graph queries on large-scale knowledge graphs.
- Build RDF databases with trie-based indexes
- Execute graph queries using worst-case optimal joins
- Train and test variable ordering models
- Multi-threaded query execution
- Clone this project
git clone git@github.com:MKMaS-GUET/APEX.git
git submodule update --init- Build this project
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build buildOr use the build.sh script to build this project directly
./scripts/build.sh./apex build -d <DATABASE_PATH> -f <RDF_DATA_FILE>./apex query -d <DATABASE_PATH> -f <QUERY_FILE> -t <NUM_THREADS>./apex train -d <DATABASE_NAME> -f <QUERY_FILE> -t <NUM_THREADS>./apex test -d <DATABASE_NAME> -f <QUERY_FILE> -t <NUM_THREADS>| Option | Description |
|---|---|
-d, --database |
Database path or name |
-f, --file |
RDF data file or query file |
-t, --threads |
Number of threads |
./apex build -d mydb -f data.nt
./apex query -d mydb -f queries.txt -t 16- If the database path does not contain
/, it will be stored underDB_DATA_ARCHIVE/by default. - The default number of threads is 32.