|
@@ -11,8 +11,8 @@ LSR_desc_new_multi (LSUP_Graph *const *data, LSR_Desc **rsrc_p)
|
|
|
uuid_generate_random (rsrc->id);
|
|
|
|
|
|
// Default context graph.
|
|
|
- rsrc->main_data = LSUP_graph_new (LSUP_term_new_from_buffer (
|
|
|
- LSUP_default_env->default_ctx), LSUP_STORE_MEM);
|
|
|
+ rsrc->main_data = LSUP_graph_new (
|
|
|
+ LSUP_default_ctx, LSUP_STORE_HTABLE, NULL, NULL, 0);
|
|
|
|
|
|
LSUP_GraphIterator *lu_it, *add_it, *admin_add_it = NULL;
|
|
|
|
|
@@ -23,7 +23,7 @@ LSR_desc_new_multi (LSUP_Graph *const *data, LSR_Desc **rsrc_p)
|
|
|
*dest_spo = &dest_spo_s;
|
|
|
|
|
|
LSUP_Term *rsrc_uri = LSR_id_to_urn (rsrc->id, NULL);
|
|
|
- LSUP_Term *rdf_t = LSUP_iriref_new ("rdf:type", LSUP_DEF_NSM);
|
|
|
+ LSUP_Term *rdf_t = LSUP_iriref_new ("rdf:type", LSUP_default_nsm);
|
|
|
|
|
|
// Count graphs inserted and allocate space.
|
|
|
size_t ct = 0;
|
|
@@ -45,13 +45,14 @@ LSR_desc_new_multi (LSUP_Graph *const *data, LSR_Desc **rsrc_p)
|
|
|
LSUP_term_free (rel_uri);
|
|
|
if (rc < 0) goto finally;
|
|
|
|
|
|
- rsrc->user_data[i] = LSUP_graph_new (gr_uri, LSUP_STORE_MEM);
|
|
|
+ rsrc->user_data[i] = LSUP_graph_new (
|
|
|
+ gr_uri, LSUP_STORE_HTABLE, NULL, NULL, 0);
|
|
|
|
|
|
add_it = LSUP_graph_add_init (rsrc->user_data[i]);
|
|
|
lu_it = LSUP_graph_lookup (rsrc->user_data[i], NULL, NULL, NULL, NULL);
|
|
|
|
|
|
// Loop over graph triples.
|
|
|
- while (LSUP_graph_iter_next (lu_it, src_spo) == LSUP_OK) {
|
|
|
+ while (LSUP_graph_iter_next (lu_it, &src_spo) == LSUP_OK) {
|
|
|
dest_s = LSUP_IS_IRI (src_spo->s) ?
|
|
|
LSUP_iriref_relative (rsrc_uri, src_spo->s) : src_spo->s;
|
|
|
dest_p = LSUP_term_copy (src_spo->p);
|
|
@@ -120,21 +121,21 @@ loop_end:
|
|
|
// Add user graph metadata to default graph.
|
|
|
admin_add_it = LSUP_graph_add_init (rsrc->main_data);
|
|
|
dest_s = gr_uri;
|
|
|
- dest_p = LSUP_iriref_new ("rdf:type", LSUP_DEF_NSM);
|
|
|
+ dest_p = LSUP_iriref_new ("rdf:type", LSUP_default_nsm);
|
|
|
|
|
|
- dest_o = LSUP_iriref_new ("lsup:Metadata", LSUP_DEF_NSM);
|
|
|
+ dest_o = LSUP_iriref_new ("lsup:Metadata", LSUP_default_nsm);
|
|
|
LSUP_triple_init (dest_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, dest_spo);
|
|
|
LSUP_term_free (dest_o);
|
|
|
|
|
|
- dest_o = LSUP_iriref_new ("lsup:UserMetadata", LSUP_DEF_NSM);
|
|
|
+ dest_o = LSUP_iriref_new ("lsup:UserMetadata", LSUP_default_nsm);
|
|
|
LSUP_triple_init (dest_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, dest_spo);
|
|
|
LSUP_term_free (dest_o);
|
|
|
LSUP_term_free (dest_p);
|
|
|
|
|
|
// Relationship between data graph and resource.
|
|
|
- dest_p = LSUP_iriref_new ("foaf:primaryTopic", LSUP_DEF_NSM);
|
|
|
+ dest_p = LSUP_iriref_new ("foaf:primaryTopic", LSUP_default_nsm);
|
|
|
dest_o = rsrc_uri;
|
|
|
LSUP_triple_init (dest_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, dest_spo);
|
|
@@ -151,7 +152,8 @@ loop_end:
|
|
|
/* BEGIN adding managed (admin) data. */
|
|
|
|
|
|
LSUP_Term *gr_uri = LSR_id_to_urn (rsrc->id, "__admin");
|
|
|
- rsrc->admin_data = LSUP_graph_new (gr_uri, LSUP_STORE_MEM);
|
|
|
+ rsrc->admin_data = LSUP_graph_new (
|
|
|
+ gr_uri, LSUP_STORE_HTABLE, NULL, NULL, 0);
|
|
|
|
|
|
admin_add_it = LSUP_graph_add_init (rsrc->admin_data);
|
|
|
dest_s = LSUP_iriref_new("", NULL); // Relative to resource URI.
|
|
@@ -161,12 +163,12 @@ loop_end:
|
|
|
// RDF types.
|
|
|
dest_p = rdf_t;
|
|
|
|
|
|
- dest_o = LSUP_iriref_new ("lsup:Resource", LSUP_DEF_NSM);
|
|
|
+ dest_o = LSUP_iriref_new ("lsup:Resource", LSUP_default_nsm);
|
|
|
LSUP_triple_init (admin_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, admin_spo);
|
|
|
LSUP_term_free (dest_o);
|
|
|
|
|
|
- dest_o = LSUP_iriref_new ("lsup:DescriptiveResource", LSUP_DEF_NSM);
|
|
|
+ dest_o = LSUP_iriref_new ("lsup:DescriptiveResource", LSUP_default_nsm);
|
|
|
LSUP_triple_init (admin_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, admin_spo);
|
|
|
LSUP_term_free (dest_o);
|
|
@@ -177,14 +179,14 @@ loop_end:
|
|
|
char buf [sizeof ("0000-00-00T00:00:00Z")];
|
|
|
strftime (buf, sizeof (buf), "%FT%TZ", gmtime (&now));
|
|
|
|
|
|
- dest_p = LSUP_iriref_new ("lsup:created", LSUP_DEF_NSM);
|
|
|
+ dest_p = LSUP_iriref_new ("lsup:created", LSUP_default_nsm);
|
|
|
dest_o = LSUP_literal_new (
|
|
|
- buf, LSUP_iriref_new ("xsd:dateTime", LSUP_DEF_NSM));
|
|
|
+ buf, LSUP_iriref_new ("xsd:dateTime", LSUP_default_nsm));
|
|
|
LSUP_triple_init (admin_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, admin_spo);
|
|
|
LSUP_term_free (dest_p);
|
|
|
|
|
|
- dest_p = LSUP_iriref_new ("lsup:lastModified", LSUP_DEF_NSM);
|
|
|
+ dest_p = LSUP_iriref_new ("lsup:lastModified", LSUP_default_nsm);
|
|
|
LSUP_triple_init (admin_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, admin_spo);
|
|
|
LSUP_term_free (dest_p);
|
|
@@ -200,18 +202,18 @@ loop_end:
|
|
|
dest_s = gr_uri;
|
|
|
dest_p = rdf_t;
|
|
|
|
|
|
- dest_o = LSUP_iriref_new ("lsup:Metadata", LSUP_DEF_NSM);
|
|
|
+ dest_o = LSUP_iriref_new ("lsup:Metadata", LSUP_default_nsm);
|
|
|
LSUP_triple_init (dest_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, dest_spo);
|
|
|
LSUP_term_free (dest_o);
|
|
|
|
|
|
- dest_o = LSUP_iriref_new ("lsup:AdminMetadata", LSUP_DEF_NSM);
|
|
|
+ dest_o = LSUP_iriref_new ("lsup:AdminMetadata", LSUP_default_nsm);
|
|
|
LSUP_triple_init (dest_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, dest_spo);
|
|
|
LSUP_term_free (dest_o);
|
|
|
|
|
|
// Relationship between data graph and resource.
|
|
|
- dest_p = LSUP_iriref_new ("foaf:primaryTopic", LSUP_DEF_NSM);
|
|
|
+ dest_p = LSUP_iriref_new ("foaf:primaryTopic", LSUP_default_nsm);
|
|
|
dest_o = rsrc_uri;
|
|
|
LSUP_triple_init (dest_spo, dest_s, dest_p, dest_o);
|
|
|
LSUP_graph_add_iter (admin_add_it, dest_spo);
|
|
@@ -297,14 +299,13 @@ LSR_desc_get (const uuid_t id, LSR_Desc **rsrc_p)
|
|
|
{
|
|
|
LSUP_rc rc = LSUP_OK;
|
|
|
|
|
|
- LSUP_Term *default_gr_uri = LSUP_term_new_from_buffer (
|
|
|
- LSUP_default_env->default_ctx);
|
|
|
- LSUP_Graph *main_gr = LSUP_graph_new (default_gr_uri, LSUP_STORE_MDB);
|
|
|
+ LSUP_Graph *main_gr = LSUP_graph_new (
|
|
|
+ LSUP_default_ctx, LSR_DEFAULT_BACKEND, NULL, NULL, 0);
|
|
|
|
|
|
LSUP_Term
|
|
|
*s = LSR_id_to_urn (id, NULL),
|
|
|
- *p = LSUP_iriref_new ("rdf:type", LSUP_DEF_NSM),
|
|
|
- *o = LSUP_iriref_new ("lsup:Resource", LSUP_DEF_NSM);
|
|
|
+ *p = LSUP_iriref_new ("rdf:type", LSUP_default_nsm),
|
|
|
+ *o = LSUP_iriref_new ("lsup:Resource", LSUP_default_nsm);
|
|
|
|
|
|
LSUP_Triple *spo = LSUP_triple_new (s, p, o);
|
|
|
LSUP_triple_free (spo);
|
|
@@ -315,7 +316,7 @@ LSR_desc_get (const uuid_t id, LSR_Desc **rsrc_p)
|
|
|
}
|
|
|
|
|
|
LSUP_term_free (o);
|
|
|
- o = LSUP_iriref_new ("lsup:DescriptiveResource", LSUP_DEF_NSM);
|
|
|
+ o = LSUP_iriref_new ("lsup:DescriptiveResource", LSUP_default_nsm);
|
|
|
spo = LSUP_triple_new (s, p, o);
|
|
|
if (!LSUP_graph_contains (main_gr, spo)) {
|
|
|
log_error ("%s is not a descriptive resource.", o->data);
|
|
@@ -324,14 +325,14 @@ LSR_desc_get (const uuid_t id, LSR_Desc **rsrc_p)
|
|
|
}
|
|
|
|
|
|
LSUP_term_free (p);
|
|
|
- p = LSUP_iriref_new ("foaf:primaryTopic", LSUP_DEF_NSM);
|
|
|
+ p = LSUP_iriref_new ("foaf:primaryTopic", LSUP_default_nsm);
|
|
|
size_t ct = 0, i = 0;
|
|
|
|
|
|
// Find all graphs making up the resource.
|
|
|
LSUP_GraphIterator *it = LSUP_graph_lookup (main_gr, NULL, p, s, &ct);
|
|
|
LSUP_Graph **data = calloc (sizeof (*data), ct + 1);
|
|
|
- while (LSUP_graph_iter_next (it, spo)) {
|
|
|
- data[i] = LSUP_graph_new (spo->s, LSUP_STORE_MDB);
|
|
|
+ while (LSUP_graph_iter_next (it, &spo)) {
|
|
|
+ data[i] = LSUP_graph_new (spo->s, LSR_DEFAULT_BACKEND, NULL, NULL, 0);
|
|
|
if (! data[i++]) break; // Last slot remains NULL (sentinel).
|
|
|
}
|
|
|
LSUP_graph_iter_free (it);
|