Introduction ============ This project implements a reasoner for the RCC-8 calculus, called `gp-rcc8'. Reasoner gp-rcc8 employs graph partitioning to reduce the initial size of the network and exploits the degree of parallelism offered by current computer architectures by checking consistency of these smaller subnetworks in a parallel fashion. Technical and algorithmic details about gp-rcc8 may be found in the respective publication at the AAAI conference of 2014 (see the `Publications' section below). Requirements ============ * Boost's system, thread, and program options libraries (tested versions: 1.48 and 1.55): - boost_thread (use suffix -mt for Darwin) - boost_system (use suffix -mt for Darwin) - boost_program_options (use suffix -mt for Darwin) * A C++ compiler. gp-rcc8 has been tested on the following compilers: - GNU g++ 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) - Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) * MeTiS software package (tested version: 5.1.0) Available from: http://glaros.dtc.umn.edu/gkhome/metis/metis/download Static libraries for 64 bit architectures (Darwin and Linux) are provided by this package out of the box. Developing in Eclipse ===================== To develop using the Eclipse CDT IDE, you need to import the source code as follows: * First keep a copy of the file `.cproject' that stores the build configuration. * Then, go to File->Import->C/C++->Existing Code as Makefile Project. * Give a name to your project and browse to the location of the source code * Under the Toolchain options, select the appropriate one (for Linux it would be something like `GNU Linux GCC', for Mac OS X it would be something like `MacOSX GCC'). * Click `Finish'. * After importing the project, close Eclipse CDT, restore the file `.cproject' and re-open Eclipse CDT. Under Project->Build Configurations->Set Active there would be two available build options, `build' and `build-gen'. The first compiles the reasoner (available as `build/gp-rcc8'), the second compiles the generator for power-law networks (available as `build-gen/plaw-gen'). License ======= This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. Copyright (C) 2013, 2014 Department of Informatics and Telecommunications, National and Kapodistrian University of Athens Author: Charalampos Nikolaou How to apply the license ======================== * In the beginning of script files (after the shell directive) paste the following statement: # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # Copyright (C) 2013, 2014 Department of Informatics and # Telecommunications, National and Kapodistrian University of Athens # # Author: Charalampos Nikolaou # * In the beginning of C/C++ source code files paste the following statement: /** * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * Copyright (C) 2013, 2014 Department of Informatics and * Telecommunications, National and Kapodistrian University of Athens * * Author: Charalampos Nikolaou */ Publications ============ * Charalampos Nikolaou and Manolis Koubarakis: Fast consistency checking of very large real-world RCC-8 constraint networks using graph partitioning. In proceedings of the 28th AAAI Conference on Artificial Intelligence (AAAI '14), Québec, Canada, July 27–31, 2014.