|
@@ -2,9 +2,11 @@
|
|
|
|
|
|
**This software is work in progress.**
|
|
**This software is work in progress.**
|
|
|
|
|
|
-`lsup_repo` is a C and Python library providing embedded (server-less)
|
|
|
|
-data repository services. It builds upon a foundational library, [`lsup_rdf`](
|
|
|
|
|
|
+`lsup_repo` is a C library providing embedded (server-less) data repository
|
|
|
|
+services. It builds upon a foundational library, [`lsup_rdf`](
|
|
https://git.knowledgetx.com/scossu/lsup_rdf) which handles RDF and graph data.
|
|
https://git.knowledgetx.com/scossu/lsup_rdf) which handles RDF and graph data.
|
|
|
|
+Python binding are also planned, in a [separate
|
|
|
|
+project](https://git.knowledgetx.com/scossu/lsup_py).
|
|
|
|
|
|
## Background & scope
|
|
## Background & scope
|
|
|
|
|
|
@@ -23,16 +25,16 @@ a foundation the basic repository functionality.
|
|
|
|
|
|
## Use
|
|
## Use
|
|
|
|
|
|
-`lsup_repo` can be included in a C or Python program to manage the life cycle
|
|
|
|
-of RDF and non-RDF data. It allows to store and manage documents of any format
|
|
|
|
-and size, and catalog them via RDF metadata.
|
|
|
|
|
|
+`lsup_repo` can be included in a C program to manage the life cycle of RDF and
|
|
|
|
+non-RDF data. It allows to store and manage documents of any format and size,
|
|
|
|
+and catalog them via RDF metadata.
|
|
|
|
|
|
`lsup_repo` does not need to run a server for its core functionality. The
|
|
`lsup_repo` does not need to run a server for its core functionality. The
|
|
-interaction with the library is done via a C or Python API. That said, a REST
|
|
|
|
-API or any other type of server can be built with relative ease on top of this
|
|
|
|
-library. A separate project, based on this library, may in the future provide a
|
|
|
|
-REST API for generic resource management, likely based on some existing
|
|
|
|
-standard.
|
|
|
|
|
|
+interaction with the library is done via a C API or other bindings created for
|
|
|
|
+the purpose. That said, a REST API or any other type of server can be built
|
|
|
|
+with relative ease on top of this library. A separate project, based on this
|
|
|
|
+library, may in the future provide a REST API for generic resource management,
|
|
|
|
+likely based on some existing standard.
|
|
|
|
|
|
The current goal of this development is to build a minimum-viable product (MVP)
|
|
The current goal of this development is to build a minimum-viable product (MVP)
|
|
to replace the essential functionality of a previous project,
|
|
to replace the essential functionality of a previous project,
|
|
@@ -40,9 +42,9 @@ to replace the essential functionality of a previous project,
|
|
|
|
|
|
## Status
|
|
## Status
|
|
|
|
|
|
-Alpha. Currently at the beginning of the implementation phase. The
|
|
|
|
-structure of the code may change radically. Basic functionality is still being
|
|
|
|
-built. See [road map](doc/ROADMAP.md) for details.
|
|
|
|
|
|
+Alpha. Currently in an early implementation phase. The structure of the code
|
|
|
|
+may change radically. Basic functionality is still being built. See the [road
|
|
|
|
+map](doc/ROADMAP.md) for details.
|
|
|
|
|
|
## Features
|
|
## Features
|
|
|
|
|
|
@@ -76,7 +78,7 @@ built. See [road map](doc/ROADMAP.md) for details.
|
|
### Storage areas
|
|
### Storage areas
|
|
|
|
|
|
While the underlying `LSUP_RDF` allows for working with multiple, user-defined
|
|
While the underlying `LSUP_RDF` allows for working with multiple, user-defined
|
|
-storage back ends, `LSUP_REPO` has two designated stores: an in-memory staging
|
|
|
|
|
|
+storage back ends, `lsup_repo` has two designated stores: an in-memory staging
|
|
area, where resources are created and manipulated, and a persistent storage
|
|
area, where resources are created and manipulated, and a persistent storage
|
|
backed by LMDB, where resources are pushed after they are modified. Functions
|
|
backed by LMDB, where resources are pushed after they are modified. Functions
|
|
such as `LSR_dres_new`, `LSR_dres_update`, and `LSR_dres_triples` operate on
|
|
such as `LSR_dres_new`, `LSR_dres_update`, and `LSR_dres_triples` operate on
|
|
@@ -84,7 +86,7 @@ the staging area. Functions such as `LSR_dres_store`, `LRS_dres_get`, and
|
|
`LSR_dres_delete` move resources between the staging area and the persistent
|
|
`LSR_dres_delete` move resources between the staging area and the persistent
|
|
store, or delete them from the persistent store.
|
|
store, or delete them from the persistent store.
|
|
|
|
|
|
-Usual actions in a resource lifecycle flow in `LSUP_REPO` may be, for example:
|
|
|
|
|
|
+Usual actions in a resource lifecycle flow in `lsup_repo` may be, for example:
|
|
|
|
|
|
- Creating a resource and adding some data graphs
|
|
- Creating a resource and adding some data graphs
|
|
- Storing the staged resource
|
|
- Storing the staged resource
|
|
@@ -95,7 +97,7 @@ Usual actions in a resource lifecycle flow in `LSUP_REPO` may be, for example:
|
|
|
|
|
|
### Versioning and soft & hard deletion
|
|
### Versioning and soft & hard deletion
|
|
|
|
|
|
-`LSUP_REPO` is planned to support full resource-level versioning, along the
|
|
|
|
|
|
+`lsup_repo` is planned to support full resource-level versioning, along the
|
|
following lines:
|
|
following lines:
|
|
|
|
|
|
- A version for a resource may be created on demand at any point in time.
|
|
- A version for a resource may be created on demand at any point in time.
|
|
@@ -118,7 +120,7 @@ drive, remote server, etc. These files are called *Opaque Resources* (O-RES).
|
|
Their contents are entirely opaque to Lakesuperior, therefore any type of
|
|
Their contents are entirely opaque to Lakesuperior, therefore any type of
|
|
document can be handled.
|
|
document can be handled.
|
|
|
|
|
|
-In further development phases `LSUP_REPO` may perform some essential
|
|
|
|
|
|
+In further development phases `lsup_repo` may perform some essential
|
|
preservation tasks, such as checksum and basic characterization.
|
|
preservation tasks, such as checksum and basic characterization.
|
|
|
|
|
|
### Descriptive Resources
|
|
### Descriptive Resources
|