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,
grdfs
will use the GPU and print some info tostdout
.
-i
or--input-file
<file.ttl>
-- source turtle file (required)--device
gpu|cpu
-- OpenCL device to use (gpu, cpu)-l
or--no-local-dedup
-- disable local deduplication-g
or--no-global-dedup
-- disable global deduplication-a
or--axioms
-- include RDFS axiomatic triples-t
or--time
-- print profiling information-p
or--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