scientific-programming-exer.../exam/ex01
Daniel Knuettel cb1a2d1346 added the cache to git because SCP does not work 2019-02-27 11:51:19 +01:00
..
cache added the cache to git because SCP does not work 2019-02-27 11:51:19 +01:00
README.rst finished language support 2019-02-25 14:43:15 +01:00
cache.py finished language support 2019-02-25 14:43:15 +01:00
cfg.py Merge branch 'master' of https://daknuett.eu/gitea/daknuett/scientific-programming-exercises 2019-02-27 11:43:06 +01:00
connectivity.py finished of mysql/sqlite cross support 2019-02-25 14:14:55 +01:00
db_util.py finished of mysql/sqlite cross support 2019-02-25 14:14:55 +01:00
dijkstra.py finished of mysql/sqlite cross support 2019-02-25 14:14:55 +01:00
graph.py fixed one bug in dijkstra backtracking 2019-02-27 11:41:44 +01:00
main.py Merge branch 'master' of https://daknuett.eu/gitea/daknuett/scientific-programming-exercises 2019-02-27 11:43:06 +01:00
proxy.py finished of mysql/sqlite cross support 2019-02-25 14:14:55 +01:00
receive.py finished language support 2019-02-25 14:43:15 +01:00
sql.py fixed one bug in dijkstra backtracking 2019-02-27 11:41:44 +01:00
start_mysql.sh don't forget to start the mariadb server 2019-02-21 17:15:02 +01:00
url.py added support for different languages 2019-02-19 14:15:28 +01:00

README.rst

Wikipedia Link Graph Analyzer
*****************************

.. contents::

Configuration
=============

Configuration is done in the file ``cfg.py``. There one can
specify whether the system should use a sqlite or a mysql
backend. Using the sqlite backend is faster for fetching the
data because sqlite omits implicit keys. However when one
wants to analyze the data using SQL instead of the pure
python implementation mysql is faster.

It is recommended to use sqlite for fetching the data, then
transferring it to a mysql database and use this database
for analyzing. 

The main options in ``cfg.py`` are whether to use mysql or
sqlite and options for those systems.

Invocation
==========

Before invocating the program one should make sure that the
`configuration`_ is correct, in particular whether the cache
directory and cache name are set correctly for sqlite and
the mysql connection information is correct.

Then one must edit the name of the article to analyze around
and the depth to receive the links. After this is done the
link graph can be received (using ``python3 main.py``).
One can specify the language to use using a language
abbreviation in ``receive_link_graph``. 

It might be necessary to run this part several times if the
program was unable to fetch all links. One can check for
unreceived data by executing ``SELECT COUNT(*) FROM
failed_to_fetch``. The result should be 0.

Then the script uses Dijkstra's Algorithm in width-first
mode to analyze the graph. By default this is done
in-memory, it is however possible to do it with SQL. Using
SQL is recommended only, if the data exceeds the RAM, as it
is way slower.