22 char *out = NULL, *escaped;
23 const char *metadata = NULL;
26 char *data = term->
data;
29 out = realloc (*out_p, strlen (data) + 3);
32 sprintf (out,
"<%s>", data);
34 if (data != term->
data) free (data);
42 buf_len = strlen (escaped) + 3;
49 buf_len += strlen (metadata) + 4;
52 out = realloc (*out_p, buf_len);
55 sprintf (out,
"\"%s\"", escaped);
60 out = strcat (strcat (strcat (out,
"^^<"), metadata),
">");
70 buf_len = strlen (escaped) + 3;
72 if (term->
lang[0] !=
'\0') {
73 metadata = term->
lang;
74 buf_len += strlen (metadata) + 1;
77 out = realloc (*out_p, buf_len);
80 sprintf (out,
"\"%s\"", escaped);
84 if (metadata) out = strcat (strcat (out,
"@"), metadata);
91 out = realloc (*out_p, strlen (term->
data) + 3);
94 sprintf (out,
"_:%s", term->
data);
114 NTEncodeIterator *it;
127 NTEncodeIterator *it = h;
131 if (rc !=
VOLK_OK)
goto finally;
151 char *tmp = realloc (
152 *res, strlen (it->str_s) + strlen (it->str_p)
153 + strlen (it->str_o) + 6);
160 sprintf (tmp,
"%s %s %s .\n", it->str_s, it->str_p, it->str_o);
173 NTEncodeIterator *it = h;
VOLK_CodecFlags
Parse error information.
VOLK_rc escape_lit(const char *in, char **out_p)
Add escape character (backslash) to illegal literal characters.
#define VOLK_graph_lookup(...)
Non-transactional version of VOLK_graph_lookup_txn.
VOLK_rc VOLK_graph_iter_next(VOLK_GraphIterator *it, VOLK_Triple **spo_p)
Advance a cursor obtained by a lookup and return a matching triple.
void VOLK_graph_iter_free(VOLK_GraphIterator *it)
Free a graph iterator.
const VOLK_Term * VOLK_graph_uri(const VOLK_Graph *gr)
Read-only graph URI.
#define CALLOC_GUARD(var, rc)
Allocate one pointer with calloc and return rc if it fails.
#define VOLK_ERROR
Generic error return code.
#define VOLK_MEM_ERR
Memory allocation error.
#define VOLK_OK
Generic success return code.
#define VOLK_PARSE_ERR
Codec parser error.
VOLK_Term * VOLK_iriref_new_abs(const VOLK_Term *root, const VOLK_Term *iri)
Create a new absolute IRI from a path relative to a root IRI.
VOLK_Term * VOLK_default_datatype
Default literal data type URI.
void VOLK_term_free(VOLK_Term *term)
void VOLK_triple_free(VOLK_Triple *spo)
Free a triple and all its internal pointers.
@ VOLK_TERM_IRIREF
IRI reference.
@ VOLK_TERM_LT_LITERAL
Language-tagged string literal.
@ VOLK_TERM_LITERAL
Literal without language tag.
@ VOLK_TERM_BNODE
Blank node.
char * data
URI, literal value, or BNode label.
struct term_t * datatype
Data type IRI for VOLK_TERM_LITERAL.
VOLK_TermType type
Term type.
VOLK_LangTag lang
Lang tag for VOLK_TERM_LT_LITERAL.
char * str_p
Temporary string.
char * str_o
Temporary string.
VOLK_GraphIterator * gr_it
Graph iterator.
size_t cur
Internal cursor.
char * str_s
Temporary string.
VOLK_rc rc
Internal return code.
const VOLK_Term * gr_uri
Graph URI.
void nt_encode_graph_done(void *h)
VOLK_rc nt_encode_graph_iter(void *h, char **res)
VOLK_rc nt_encode_term(const VOLK_Term *term, char **out_p)
void * nt_encode_graph_init(const VOLK_Graph *gr, VOLK_CodecFlags _unused)