|
@@ -6,12 +6,14 @@ Embedded RDF (and maybe later, generic graph) store and manipulation library.
|
|
|
|
|
|
## Purpose
|
|
## Purpose
|
|
|
|
|
|
-The goal of this library is to provide extremely efficient and compact
|
|
|
|
-handling of RDF data. At least a C API and Python bindings are planned.
|
|
|
|
|
|
+The goal of this library is to provide efficient and compact handling of RDF
|
|
|
|
+data. At least a complete C API and Python bindings are planned.
|
|
|
|
|
|
This library can be thought of as SQLite or BerkeleyDB for graphs. It can be
|
|
This library can be thought of as SQLite or BerkeleyDB for graphs. It can be
|
|
embedded directly in a program and store persistent data without the need of
|
|
embedded directly in a program and store persistent data without the need of
|
|
-running a server.
|
|
|
|
|
|
+running a server. In addition, `lsup_rdf` can perform in-memory graph
|
|
|
|
+operations such as validation, de/serialization, boolean operations, lookup,
|
|
|
|
+etc.
|
|
|
|
|
|
Two graph back ends are available: a memory one based on hash maps and a
|
|
Two graph back ends are available: a memory one based on hash maps and a
|
|
disk-based one based on [LMDB](https://symas.com/lmdb/), an extremely fast and
|
|
disk-based one based on [LMDB](https://symas.com/lmdb/), an extremely fast and
|
|
@@ -29,9 +31,9 @@ remain focused on serving Lakesuperior.
|
|
|
|
|
|
## Development Status
|
|
## Development Status
|
|
|
|
|
|
-**Pre-alpha.** The API is not yet defined and may change radically. The code
|
|
|
|
-may not compile, or throw a fit when run. At the moment this project is only
|
|
|
|
-intended for curious developers and researchers.
|
|
|
|
|
|
+**Alpha.** The API structure is not yet stable and may change radically. The
|
|
|
|
+code may not compile, or throw a fit when run. Testing is minimal. At the
|
|
|
|
+moment this project is only intended for curious developers and researchers.
|
|
|
|
|
|
This is also my first stab at writing a C library (coming from Python) and an
|
|
This is also my first stab at writing a C library (coming from Python) and an
|
|
unpaid fun project, so don't be surprised if you find some gross stuff.
|
|
unpaid fun project, so don't be surprised if you find some gross stuff.
|
|
@@ -48,9 +50,10 @@ of features as a standalone library:
|
|
- Memory- and disk-backed (persistent) graph storage
|
|
- Memory- and disk-backed (persistent) graph storage
|
|
- Contexts (disk-backed only)
|
|
- Contexts (disk-backed only)
|
|
- Handling of blank nodes
|
|
- Handling of blank nodes
|
|
|
|
+- Namespace prefixes
|
|
- Validation of literal and URI terms
|
|
- Validation of literal and URI terms
|
|
- Validation of RDF triples
|
|
- Validation of RDF triples
|
|
-- Fast graph Lookup using matching patterns
|
|
|
|
|
|
+- Fast graph lookup using matching patterns
|
|
- Graph boolean operations
|
|
- Graph boolean operations
|
|
- Serialization and de-serialization to/from N-Triples and N-Quads
|
|
- Serialization and de-serialization to/from N-Triples and N-Quads
|
|
- Serialization and de-serialization to/from Turtle and TriG
|
|
- Serialization and de-serialization to/from Turtle and TriG
|
|
@@ -62,6 +65,7 @@ of features as a standalone library:
|
|
|
|
|
|
- Binary serialization and hashing of graphs
|
|
- Binary serialization and hashing of graphs
|
|
- Binary protocol for synchronizing remote replicas
|
|
- Binary protocol for synchronizing remote replicas
|
|
|
|
+- Backend for massive distributed storage (possibly Ceph)
|
|
- Lua bindings
|
|
- Lua bindings
|
|
|
|
|
|
### Likely Out of Scope
|
|
### Likely Out of Scope
|