Kamus Tajuk Tiga Kali Lipat (HDT) adalah format kompresi untuk data RDF yang juga dapat ditanyakan untuk Pola Tiga Kali Lipat.
Untuk mengkompilasi perpustakaan ini, Anda perlu menginstal dependensi berikut:
Konfigurasi Otomatis GNU
sudo apt install autoconf
pada distro berbasis Debian (misalnya Ubuntu)sudo dnf install autoconf
pada distro berbasis Red Hat (misal, Fedora)brew install autoconf
di macOS/OSXAlat Lib GNU
sudo apt install libtool
di distro berbasis Debian (misalnya Ubuntu)sudo dnf install libtool
di distro berbasis Red Hat (misalnya, Fedora)brew install libtool
di macOS/OSXGNU zip (gzip) Memungkinkan file masukan RDF yang di-zip GNU untuk diserap, dan memungkinkan file HDT yang di-zip GNU untuk dimuat.
sudo apt install zlib1g zlib1g-dev
di distro berbasis Debian (misalnya Ubuntu)sudo dnf install gzip
di distro berbasis Red Hat (misalnya, Fedora)pkg-config Alat pembantu untuk mengkompilasi aplikasi dan perpustakaan.
sudo apt install pkg-config
di distro berbasis Debian (misalnya Ubuntu)sudo dnf install pkgconf-pkg-config
di distro berbasis Red Hat (misalnya, Fedora)brew install pkg-config
di macOS/OSXSerd v0.28+ Parser default yang digunakan untuk memproses file input RDF. Ini mendukung format serialisasi N-Quads, N-Triples, TriG, dan Turtle.
sudo apt install libserd-0-0 libserd-dev
pada distro berbasis Debian (misalnya Ubuntu)sudo dnf install serd serd-devel
di distro berbasis Red Hat (misalnya, Fedora)brew install serd
di macOS/OSXTerkadang versi Serd yang didistribusikan oleh pengelola paket terlalu lama. Dalam hal ini, Serd juga dapat dibuat secara manual: lihat https://github.com/drobilla/serd untuk petunjuk instalasi.
Untuk mengkompilasi dan menginstal, jalankan perintah berikut di bawah direktori hdt-cpp
. Ini juga akan mengkompilasi dan menginstal beberapa alat praktis.
./autogen.sh
./configure
make -j2
sudo make install
Terkadang, petunjuk di atas tidak menghasilkan instalasi HDT yang berfungsi. Bagian ini menguraikan masalah umum dan solusinya.
Dukungan terhadap Kabinet Kyoto tidak pernah selesai dan saat ini ditangguhkan. Untuk saat ini, kompilasi HDT dengan KyotoCabinet tidak dapat dilakukan.
Kesalahan umum:
In file included from src/dictionary/KyotoDictionary.cpp:38:0:
src/dictionary/KyotoDictionary.hpp:108:18: error: conflicting return type specified for 'virtual unsigned int hdt::KyotoDictionary::getMapping()'
unsigned int getMapping();
^
Saat mendapatkan
Package requirements (serd-0 >= 0.28.0) were not met: Requested 'serd-0 >= 0.28.0' but version of Serd is 0.X
Serd bukan 0,28+, mungkin karena manajer paket. Buat secara manual di https://github.com/drobilla/serd.
./configure
tidak dapat menemukan Serd Saat menjalankan ./configure
Anda mendapatkan pesan seperti berikut:
Package 'serd-0', required by 'virtual:world', not found
Artinya ./configure
tidak dapat menemukan lokasi file serd-0.pc
di komputer Anda. Anda harus menemukan sendiri lokasi ini, misalnya dengan cara berikut:
find /usr/ -name serd-0.pc
Setelah Anda menemukan direktori yang berisi file serd-0.pc
, Anda harus menginformasikan skrip ./configure
tentang lokasi ini dengan mengatur variabel lingkungan berikut (di mana direktori /usr/local/lib/pkgconfig/
disesuaikan dengan situasi Anda ):
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
Setelah mengkompilasi dan menginstal, Anda dapat menggunakan alat praktis yang terletak di hdt-cpp/libhdt/tools
. Kami menunjukkan beberapa tugas umum yang dapat dilakukan dengan alat ini.
File HDT hanya dapat dibuat untuk file input RDF yang memenuhi standar. Jika file masukan Anda bukan RDF yang memenuhi standar, tidak mungkin membuat file HDT darinya.
$ ./rdf2hdt data.nt data.hdt
Anda dapat mengekspor file HDT ke file RDF dalam salah satu format serialisasi yang didukung (saat ini: N-Quads, N-Triples, TriG, dan Turtle). Format serialisasi default untuk mengekspor adalah N-Triples.
$ ./hdt2rdf data.hdt data.nt
Anda dapat mengeluarkan pertanyaan Triple Pattern (TP) di terminal dengan menentukan subjek, predikat, dan/atau istilah objek. Tanda tanya ( ?
) menunjukkan istilah yang tidak dipakai. Misalnya, Anda dapat mengambil semua tripel dengan menanyakan TP ? ? ?
:
$ ./hdtSearch data.hdt
>> ? ? ?
http://example.org/uri3 http://example.org/predicate3 http://example.org/uri4
http://example.org/uri3 http://example.org/predicate3 http://example.org/uri5
http://example.org/uri4 http://example.org/predicate4 http://example.org/uri5
http://example.org/uri1 http://example.org/predicate1 "literal1"
http://example.org/uri1 http://example.org/predicate1 "literalA"
http://example.org/uri1 http://example.org/predicate1 "literalB"
http://example.org/uri1 http://example.org/predicate1 "literalC"
http://example.org/uri1 http://example.org/predicate2 http://example.org/uri3
http://example.org/uri1 http://example.org/predicate2 http://example.org/uriA3
http://example.org/uri2 http://example.org/predicate1 "literal1"
9 results shown.
>> http://example.org/uri3 ? ?
http://example.org/uri3 http://example.org/predicate3 http://example.org/uri4
http://example.org/uri3 http://example.org/predicate3 http://example.org/uri5
2 results shown.
>> exit
Komponen header HDT berisi metadata yang menjelaskan data yang terdapat dalam HDT, serta metadata pembuatan tentang HDT itu sendiri. Isi header dapat diekspor ke file N-Triples:
$ ./hdtInfo data.hdt > header.nt
Mungkin berguna untuk memperbarui informasi header HDT. Hal ini dapat dilakukan dengan membuat file HDT baru ( new.hdt
) dari file HDT yang sudah ada ( old.hdt
) dan file N-Triples ( new-header.nt
) yang berisi informasi header baru:
$ ./replaceHeader old.hdt new.hdt new-header.nt
Alternatifnya, alat ini dapat digunakan melalui buruh pelabuhan.
Untuk membuat image buruh pelabuhan (menggunakan nama arbitrer hdt
):
docker build -t hdt .
Dengan asumsi Anda telah membuat gambar buruh pelabuhan bernama hdt
:
docker run -it --rm -v $PWD :/workdir hdt bash
root@abcd1234:/workdir#
Ini memulai gambar buruh pelabuhan secara interaktif. Mencantumkan file dalam wadah yang sedang berjalan akan menampilkan file dari direktori Anda saat ini.
Untuk menjalankan perintah apa pun dari hdt toolset:
root@abcd1234:/workdir# rdf2hdt -f turtle input.ttl output.hdt
Untuk keluar dari container yang sedang berjalan, gunakan perintah exit
.
Perintah HDT juga dapat dipanggil langsung dari sistem host (buruh pelabuhan):
docker run --rm -v $PWD :/workdir hdt rdf2hdt -f turtle input.ttl output.hdt
Ini mengambil input.ttl
dari direktori saat ini dan membuat output.hdt
baru.
Kontribusi dipersilakan! Harap dasarkan kontribusi dan permintaan tarik (PR) Anda pada cabang develop
, dan bukan pada cabang master
.
hdt-cpp
adalah perangkat lunak gratis yang dilisensikan sebagai GNU Lesser General Public License (LGPL). Lihat libhdt/COPYRIGHT
.