1
0
Fork 0
mirror of https://code.mro.name/mro/librdf.sqlite synced 2026-01-14 14:22:34 +01:00
🛠 improved SQLite RDF triple store for Redland librdf http://purl.mro.name/librdf.sqlite/
  • Turtle 97.2%
  • C 2.1%
  • TSQL 0.5%
  • Shell 0.2%
Find a file
2020-04-16 13:51:41 +02:00
sql fix compiler warnings and stricter compilations (-Wall -Werror) 2015-11-03 14:47:30 +01:00
test compare with vanilla sqlite store. 2018-08-17 22:28:40 +02:00
tools 💄 refs #13 2015-11-04 10:44:13 +01:00
.gitignore less indexes. saves 50% space but has low impact on runtime. refs #2 2014-06-23 23:28:39 +02:00
.travis.yml 🌀. 2017-10-14 10:42:48 +02:00
CHANGELOG.md Release 0.0.1 2014-06-14 15:12:38 +02:00
doap.rdf add git mirrors 2020-04-16 13:51:41 +02:00
librdf.sqlite.podspec brush up podfile. 2015-11-12 20:58:24 +01:00
LICENSE copyright year 2015-04-12 00:11:17 +02:00
package.json add a package description for https://github.com/clibs/clib 2015-11-12 20:58:39 +01:00
rdf_storage_sqlite_mro.c fix copy-paste error that caused -DDEBUG build to fail 2018-12-15 23:27:59 +02:00
rdf_storage_sqlite_mro.h Update rdf_storage_sqlite_mro.h 2015-11-08 22:49:12 +01:00
README.md 'README.md' ändern 2018-08-11 22:51:23 +02:00
VERSION give cocoapods another try. 2015-11-10 10:06:00 +01:00

Build Status

Improved SQLite RDF triple storage module for librdf.

Cross platform, plain C source file. Comes with a Version for those targeting iOS.

Inspired by the official sqlite store.

Usage

#include "rdf_storage_sqlite_mro.h"
....
librdf_world *world = librdf_new_world();
librdf_init_storage_sqlite_mro(world);  // register storage factory
....
const char* options = "new='yes', contexts='no'";
librdf_storage *newStorage = librdf_new_storage(world, LIBRDF_STORAGE_SQLITE_MRO, file_path, options);

See e.g. in (my) http://purl.mro.name/ios/librdf.objc.

License

Design Goals

Quality very good good normal  irrelevant
Functionality ×
Reliability ×
Usability ×
Efficiency ×
Changeability ×
Portability ×

Currently 50% code and 99% runtime saving (for 100k triples).

  • intense use of SQLite prepared statements and bound values:
    • no stringbuffers
    • no strcpy/memcpy,
    • no SQL escaping,
  • re-use compiled statements where possible (at the cost of thread safety),
  • as few SQL statements as possible (at the cost of some non-trivial ones),
  • SQLite indexes (at the cost of larger DB files).