This is the project behind the VLDB submission Evaluating navigational RDF queries over the Web.
This projects aims to show how search can be improved by using A* instead of DFS and BFS. A* takes an edge over blind search algorithms by using the query automaton, to induce a heuristic.
The induced heuristic is consistent, (and thus admissible, properties that ensure that A* runs smoothly.
This project requires python3
, pip
and a set of python packages.
To install the python packages run
pip install -r requirements.txt
Optionally, fish-shell
is required, but it’s only used to call a python script that does the work.
Previously defined queries can be run from `run.py` by running it with the `-q` parameter set. Optional parameters for the time-limit, algorithm to use and parallelism-degree exist.
./run.py -q 15 [--pool-size 1] [--alg AStar] [--time 600]
There is a `fish-shell` script that runs the previous script with multiple configurations.
./exps.fish
While experiments run, dumps with data about the run are generated. Those dumps can be used to generate plots after the runs complete.
An utility for generating plots from dumps is provided, and can be ran onto per-run directories
./utils/load_dump.py RUN_DIRECTORIES [--x KEYS_FOR_X_AXIS] [--y KEYS_FOR_X_AXIS]
A typical execution looks like this,
./utils/load_dump.py bench/machine-2016-12-24T23:59:59-03:00/ --x remote_expansions wallClock --y goals_found remote_expansions wallClock memory