grdfs is an RDFS reasoner that uses OpenCL for fine-grained parallelism. It can thus exploit massively parallel hardware such as modern GPUs but also runs well on CPUs. Currently it supports the following features:
- OpenCL implementation of most used RDFS entailment rules.
- In-memory storage of entailed triples.
- Writing all or only entailed triples to stdout.
- Including RDFS axiomatic triples
- On-device removal of global and local duplicates (local duplicate removal currently only works on GPU devices).
- grdfs uses the turtle parser from RDF3-X, it thus is used as follows:
grdfs -i <turtle_file>- By default,
grdfswill use the GPU and print some info tostdout.
-ior--input-file<file.ttl>-- source turtle file (required)--devicegpu|cpu-- OpenCL device to use (gpu, cpu)-lor--no-local-dedup-- disable local deduplication-gor--no-global-dedup-- disable global deduplication-aor--axioms-- include RDFS axiomatic triples-tor--time-- print profiling information-por--print-triples-- write triples tostdout(in NTriples format)
- For building grdfs a C++11 compiler is needed. We recommend one of the following:
- Clang 3.1
- GCC 4.7
- On Linux, the AMD APP SDK must be installed
- Boost
program_options- Mac OS X:
brew install boost --with-c++11 - Ubuntu:
sudo apt-get install libboost-dev libboost-program-options-dev
- Mac OS X:
- Mac OS X: use provided Xcode project or type
make. - Linux: type
make.
- Complete rule implementation
- Using multiple OpenCL devices
- Partitioning large graphs to fit in device memory