This repository is work in progress to provide access to HDT files from SWI-Prolog based on the C++ library for these files.
HDT files form a natural addition to SWI-Prolog's memory based RDF store to access large amounts of static background knowledge without enlarging the memory footprint.
This repository is organised as a SWI-Prolog pack. To install it, perform the steps below. Installation and usage is tested on Ubuntu and Fedora. This should work on most Unix-like machines. Installation on Windows requires more creativity though.
In addition to the usual development tools such as make
and a C compiler,
we need GNU automake and related tools and the RDF base libraries serd
and raptor2
. Below are the dependencies for apt
based Linux systems
and rpm
based systems.
For Debian/Ubuntu based systems:
apt-get install libtool automake autoconf libserd-dev libraptor2-dev
For Fedora
dnf install aclocal automake libtool serd-devel raptor2-devel
The minimum version of Serd is 0.28.0 (see hdt-cpp/README.md
), which
can be checked by the command serdi -v
(requires installing the
serdi
package). This package has been tested with Serd 0.30.16.
- After the prerequisites are installed, the HDT library can be installed from within Prolog using the following command:
?- pack_install(hdt).
If the installation went well, you can load the HDT library with the following command:
?- [library(hdt)].
The HDT format is attractive for accessing large amounts of background RDF data. HDT is the basis for several companies that provide RDF technology at scale. Unfortunately the public version of the software is poorly maintained.
This pack is based on our fork of the hdt-cpp. The fork is mostly the work of Peter Ludemann, fixing several issues with modern C++ and libraries.
See also RDF basics wiki.
The hdt-cpp
directory has a number of utilities in
hdt-cpp/libhdt/tools
. For details, see hdt-cpp/README.md
:
- hdt2rdf
- hdtInfo
- hdtSearch
- modifyHeader
- rdf2hdt
- replaceHeader
- searchHeader