1redland(3) Redland RDF Application Framework redland(3)
2
3
4
6 Redland Resource Description Framework (RDF) Library
7
9 1.0.3
10
12 #include <redland.h>
13
15 redland is a library providing support for the Resource Description
16 Framework (RDF) written in ANSI C with APIs in several other languages.
17
18 This manual page lists most of the redland public API functions but
19 does not claim to be a complete summary of the entire API. For the
20 complete API with full details of the function interface, see the HTML
21 API documentation either on the Redland web site at
22 <http://librdf.org/> or with the software release in the docs/api
23 directory.
24
26 The functions defined by redland are all defined with the "librdf_"
27 prefix
28
29 class world
30
31 librdf_world* librdf_new_world(void)
32 void librdf_free_world(librdf_world* world)
33 void librdf_world_open(librdf_world* world)
34 void librdf_world_set_error(librdf_world* world, void* user_data, void
35 (*error_fn)(void* user_data, const char* msg, ...))
36 void librdf_world_set_warning(librdf_world* world, void* user_data,
37 void (*warning_fn)(void* user_data, const char* msg, ...))
38 void librdf_world_set_digest(librdf_world*, const char* name)
39 void librdf_world_set_uris_hash(librdf_world* world, librdf_hash*
40 uris_hash)
41 const char* librdf_world_get_feature(librdf_world* world, librdf_uri*
42 feature)
43 int librdf_world_set_feature(librdf_world* world, librdf_uri* feature,
44 const char* value)
45
46 class iterator
47
48 librdf_iterator* librdf_new_iterator(librdf_world* world, void* con‐
49 text, int (*is_end)(void*), void* (*get_next)(void*), void (*fin‐
50 ished)(void*))
51 void librdf_free_iterator(librdf_iterator*)
52 int librdf_iterator_end(librdf_iterator* iterator)
53 int librdf_iterator_finished(librdf_iterator* iterator)
54 int librdf_iterator_next(librdf_iterator* iterator)
55 void* librdf_iterator_get_object(librdf_iterator* iterator)
56 void* librdf_iterator_get_context(librdf_iterator* iterator)
57 void* librdf_iterator_get_key(librdf_iterator* iterator)
58 void* librdf_iterator_get_value(librdf_iterator* iterator)
59 int librdf_iterator_add_map(librdf_iterator* iterator, void*
60 (*fn)(void* context, void* item), void* context)
61 void* librdf_iterator_map_remove_duplicate_nodes(void* item, void*
62 user_data)
63
64 class digest
65
66 void librdf_digest_register_factory(librdf_world* world, const char*
67 name, void (*factory) (librdf_digest_factory*))
68 librdf_digest_factory* librdf_get_digest_factory(librdf_world* world,
69 const char* name)
70 librdf_digest* librdf_new_digest(librdf_world* world, char* name)
71 librdf_digest* librdf_new_digest_from_factory(librdf_world* world,
72 librdf_digest_factory* factory)
73 void librdf_free_digest(librdf_digest* digest)
74 void librdf_digest_init(librdf_digest* digest)
75 void librdf_digest_update(librdf_digest* digest, unsigned char* buf,
76 size_t length)
77 void librdf_digest_final(librdf_digest* digest)
78 void* librdf_digest_get_digest(librdf_digest* digest)
79 char* librdf_digest_to_string(librdf_digest* digest)
80 void librdf_digest_print(librdf_digest* digest, FILE* fh)
81
82 class uri
83
84 librdf_uri* librdf_new_uri(librdf_world* world, const unsigned char *
85 string)
86 librdf_uri* librdf_new_uri_from_uri(librdf_uri* uri)
87 librdf_uri* librdf_new_uri_from_uri_local_name(librdf_uri* uri, const
88 unsigned char* local_name)
89 void librdf_free_uri(librdf_uri* uri)
90 unsigned char* librdf_uri_as_string(librdf_uri* uri)
91 unsigned char* librdf_uri_as_counted_string(librdf_uri* uri, size_t*
92 len_p)
93 librdf_digest* librdf_uri_get_digest(librdf_uri* uri)
94 void librdf_uri_print>(librdf_uri* uri, FILE* fh)
95 unsigned char* librdf_uri_to_string(librdf_uri* uri)
96 unsigned char* librdf_uri_to_counted_string(librdf_uri* uri, size_t*
97 len_p)
98 int librdf_uri_equals(librdf_uri* first_uri, librdf_uri* second_uri)
99 int librdf_uri_is_file_uri(librdf_uri* uri)
100 const char* librdf_uri_to_filename(librdf_uri* uri)
101 librdf_uri* librdf_new_uri_normalised_to_base(const unsigned char*
102 uri_string, librdf_uri* source_uri, librdf_uri* base_uri)
103 librdf_uri* librdf_new_uri_relative_to_base(librdf_uri* base_uri, const
104 unsigned char* uri_string)
105 librdf_uri* librdf_new_uri_from_filename(librdf_world* world, const
106 char* filename)
107
108 class node
109
110 librdf_node* librdf_new_node(librdf_world* world)
111 librdf_node* librdf_new_node_from_uri_string(librdf_world* world, const
112 char* string)
113 librdf_node* librdf_new_node_from_uri(librdf_world* world, librdf_uri*
114 uri)
115 librdf_node* librdf_new_node_from_uri_local_name(librdf_world* world,
116 librdf_uri* uri, const char* local_name)
117 librdf_node* librdf_new_node_from_normalised_uri_string(librdf_world*
118 world, const char* uri_string, librdf_uri* source_uri, librdf_uri*
119 base_uri)
120 librdf_node* librdf_new_node_from_literal(librdf_world* world, const
121 char* string, const char* xml_language, int xml_space, int is_wf_xml)
122 librdf_node* librdf_new_node_from_typed_literal(librdf_world* world,
123 const unsigned char* string, const char* xml_language, librdf_uri*
124 datatype_uri)
125 librdf_node* librdf_new_node_from_blank_identifier(librdf_world* world,
126 const unsigned char* identifier)
127 librdf_node* librdf_new_node_from_node(librdf_node* node)
128 void librdf_node_init(librdf_world* world, librdf_node* node)
129 void librdf_free_node(librdf_node* r)
130 librdf_uri* librdf_node_get_uri(librdf_node* node)
131 librdf_node_type librdf_node_get_type(librdf_node* node)
132 unsigned char* librdf_node_get_literal_value(librdf_node* node)
133 unsigned char* librdf_node_get_lit‐
134 eral_value_as_counted_string(librdf_node* node, size_t* len_p)
135 char* librdf_node_get_literal_value_as_latin1(librdf_node* node)
136 char* librdf_node_get_literal_value_language(librdf_node* node)
137 int librdf_node_get_literal_value_is_wf_xml(librdf_node* node)
138 librdf_uri* librdf_node_get_literal_value_datatype_uri(librdf_node*
139 node)
140 int librdf_node_get_li_ordinal(librdf_node* node)
141 unsigned char* librdf_node_get_blank_identifier(librdf_node* node)
142 int librdf_node_is_resource(librdf_node* node)
143 int librdf_node_is_literal(librdf_node* node)
144 int librdf_node_is_blank(librdf_node* node)
145 librdf_digest* librdf_node_get_digest(librdf_node* node)
146 size_t librdf_node_encode(librdf_node* node, unsigned char* buffer,
147 size_t length)
148 size_t librdf_node_decode(librdf_node* node, unsigned char* buffer,
149 size_t length)
150 unsigned char* librdf_node_to_string(librdf_node* node)
151 unsigned char* librdf_node_to_counted_string(librdf_node* node, size_t*
152 len_p)
153 void librdf_node_print(librdf_node* node, FILE* fh)
154 int librdf_node_equals(librdf_node* first_node, librdf_node* sec‐
155 ond_node)
156
157 class concepts
158
159 The library provides macros for all of the RDF and RDFS concepts -
160 nodes and URIs. For example, "LIBRDF_MS_Alt" for the librdf_node for
161 the rdf:Alt concept and "LIBRDF_MS_Alt_URI" for the librdf_uri for the
162 URI reference of rdf:Alt.
163
164 "LIBRDF_URI_RDF_MS" and "LIBRDF_URI_RDF_SCHEMA" provide the librdf_uri
165 objects for the RDF and RDFS namespace URIs. They must be copied using
166 librdf_new_uri_from_uri to be shared correctly.
167
168 void librdf_get_concept_by_name(librdf_world* world, int is_ms, const
169 char* name, librdf_uri **uri_p, librdf_node **node_p)
170
171 class statement
172
173 librdf_statement* librdf_new_statement(librdf_world* world)
174 librdf_statement* librdf_new_statement_from_statement(librdf_statement*
175 statement)
176 librdf_statement* librdf_new_statement_from_nodes(librdf_world* world,
177 librdf_node* subject, librdf_node* predicate, librdf_node* object)
178 void librdf_statement_init(librdf_world* world, librdf_statement*
179 statement)
180 void librdf_statement_clear(librdf_statement* statement)
181 void librdf_free_statement(librdf_statement* statement)
182 librdf_node* librdf_statement_get_subject(librdf_statement* statement)
183 void librdf_statement_set_subject(librdf_statement* statement,
184 librdf_node* subject)
185 librdf_node* librdf_statement_get_predicate(librdf_statement* state‐
186 ment)
187 void librdf_statement_set_predicate(librdf_statement* statement,
188 librdf_node* predicate)
189 librdf_node* librdf_statement_get_object(librdf_statement* statement)
190 void librdf_statement_set_object(librdf_statement* statement,
191 librdf_node* object)
192 int librdf_statement_is_complete(librdf_statement* statement)
193 char* librdf_statement_to_string(librdf_statement* statement)
194 void librdf_statement_print(librdf_statement* statement, FILE* fh)
195 int librdf_statement_equals(librdf_statement* statement1, librdf_state‐
196 ment* statement2)
197 int librdf_statement_match(librdf_statement* statement, librdf_state‐
198 ment* partial_statement)
199 size_t librdf_statement_encode(librdf_statement* statement, unsigned
200 char* buffer, size_t length)
201 size_t librdf_statement_encode_parts(librdf_statement* statement,
202 unsigned char* buffer, size_t length, librdf_statement_part fields)
203 size_t librdf_statement_decode(librdf_statement* statement, unsigned
204 char* buffer, size_t length)
205 size_t librdf_statement_decode_parts(librdf_statement* statement,
206 librdf_node** context_node, unsigned char* buffer, size_t length)
207
208 class model
209
210 librdf_model* librdf_new_model(librdf_world* world, librdf_storage*
211 storage, char* options_string)
212 librdf_model* librdf_new_model_with_options(librdf_world* world,
213 librdf_storage* storage, librdf_hash* options)
214 librdf_model* librdf_new_model_from_model(librdf_model* model)
215 void librdf_free_model(librdf_model* model)
216 int librdf_model_size(librdf_model* model)
217 int librdf_model_add(librdf_model* model, librdf_node* subject,
218 librdf_node* predicate, librdf_node* object)
219 int librdf_model_add_string_literal_statement(librdf_model* model,
220 librdf_node* subject, librdf_node* predicate, char* string, char*
221 xml_language, int xml_space, int is_wf_xml)
222 int librdf_model_add_typed_literal_statement(librdf_model* model,
223 librdf_node* subject, librdf_node* predicate, const unsigned char*
224 string, char* xml_language, librdf_uri* datatype_uri)
225 int librdf_model_add_statement(librdf_model* model, librdf_statement*
226 statement)
227 int librdf_model_add_statements(librdf_model* model, librdf_stream*
228 statement_stream)
229 int librdf_model_remove_statement(librdf_model* model, librdf_state‐
230 ment* statement)
231 int librdf_model_contains_statement(librdf_model* model, librdf_state‐
232 ment* statement)
233 int librdf_model_has_arc_in(librdf_model* model, librdf_node* node,
234 librdf_node* property)
235 int librdf_model_has_arc_out(librdf_model* model, librdf_node* node,
236 librdf_node* property)
237 librdf_stream* librdf_model_as_stream(librdf_model* model)
238 librdf_stream* librdf_model_find_statements(librdf_model* model,
239 librdf_statement* statement)
240 librdf_stream* librdf_model_find_statements_in_context(librdf_model*
241 model, librdf_statement* statement, librdf_node* context_node)
242 librdf_stream* librdf_model_find_statements_with_options(librdf_model*
243 model, librdf_statement* statement, librdf_node* context_node,
244 librdf_hash* options)
245 librdf_iterator* librdf_model_get_contexts(librdf_model* model)
246 librdf_iterator* librdf_model_get_sources(librdf_model* model,
247 librdf_node* arc, librdf_node* target)
248 librdf_iterator* librdf_model_get_arcs(librdf_model* model,
249 librdf_node* source, librdf_node* target)
250 librdf_iterator* librdf_model_get_targets(librdf_model* model,
251 librdf_node* source, librdf_node* arc)
252 librdf_node* librdf_model_get_source(librdf_model* model, librdf_node*
253 arc, librdf_node* target)
254 librdf_node* librdf_model_get_arc(librdf_model* model, librdf_node*
255 source, librdf_node* target)
256 librdf_node* librdf_model_get_target(librdf_model* model, librdf_node*
257 source, librdf_node* arc)
258 librdf_iterator* librdf_model_get_arcs_in(librdf_model* model,
259 librdf_node* node)
260 librdf_iterator* librdf_model_get_arcs_out(librdf_model* model,
261 librdf_node* node)
262 int librdf_model_add_submodel(librdf_model* model, librdf_model*
263 sub_model)
264 int librdf_model_remove_submodel(librdf_model* model, librdf_model*
265 sub_model)
266 void librdf_model_print(librdf_model* model, FILE* fh)
267 int librdf_model_context_add_statement(librdf_model* model,
268 librdf_node* context, librdf_statement* statement)
269 int librdf_model_context_add_statements(librdf_model* model,
270 librdf_node* context, librdf_stream* stream)
271 int librdf_model_context_remove_statement(librdf_model* model,
272 librdf_node* context, librdf_statement* statement)
273 int librdf_model_context_remove_statements(librdf_model* model,
274 librdf_node* context)
275 librdf_stream* librdf_model_context_as_stream(librdf_model* model,
276 librdf_node* context)
277 librdf_stream* librdf_model_query(librdf_model* model, librdf_query*
278 query)
279 librdf_stream* librdf_model_query_string(librdf_model* model, const
280 char* name, librdf_uri* uri, const unsigned char* query_string)
281 void librdf_model_sync(librdf_model* model)
282 librdf_storage* librdf_model_get_storage(librdf_model* model)
283 librdf_node* librdf_model_get_feature(librdf_model* model, librdf_uri*
284 feature) =item int librdf_model_set_feature(librdf_model* model,
285 librdf_uri* feature, librdf_node* value)
286
287 class storage
288
289 void librdf_storage_register_factory(const char* name, void (*factory)
290 (librdf_storage_factory*))
291 librdf_storage* librdf_new_storage(librdf_world* world, char* stor‐
292 age_name, char* name, char* options_string)
293 librdf_storage* librdf_new_storage_with_options(librdf_world* world,
294 char* storage_name, char* name, librdf_hash* options)
295 librdf_storage* librdf_new_storage_from_storage(librdf_storage*
296 old_storage)
297 librdf_storage* librdf_new_storage_from_factory(librdf_world* world,
298 librdf_storage_factory* factory, char* name, librdf_hash* options)
299 void librdf_free_storage(librdf_storage* storage)
300 int librdf_storage_open(librdf_storage* storage, librdf_model* model)
301 int librdf_storage_close(librdf_storage* storage)
302 int librdf_storage_get(librdf_storage* storage, void* key, size_t
303 key_len, void **value, size_t* value_len, unsigned int flags)
304 int librdf_storage_size(librdf_storage* storage)
305 int librdf_storage_add_statement(librdf_storage* storage, librdf_state‐
306 ment* statement)
307 int librdf_storage_add_statements(librdf_storage* storage,
308 librdf_stream* statement_stream)
309 int librdf_storage_remove_statement(librdf_storage* storage,
310 librdf_statement* statement)
311 int librdf_storage_contains_statement(librdf_storage* storage,
312 librdf_statement* statement)
313 librdf_stream* librdf_storage_serialise(librdf_storage* storage)
314 librdf_stream* librdf_storage_find_statements(librdf_storage* storage,
315 librdf_statement* statement)
316 librdf_iterator* librdf_storage_get_sources(librdf_storage* storage,
317 librdf_node* arc, librdf_node* target)
318 librdf_iterator* librdf_storage_get_arcs(librdf_storage* storage,
319 librdf_node* source, librdf_node* target)
320 librdf_iterator* librdf_storage_get_targets(librdf_storage* storage,
321 librdf_node* source, librdf_node* arc)
322 librdf_iterator* librdf_storage_get_arcs_in(librdf_storage* storage,
323 librdf_node* node)
324 librdf_iterator* librdf_storage_get_arcs_out(librdf_storage* storage,
325 librdf_node* node)
326 int librdf_storage_has_arc_in(librdf_storage* storage, librdf_node*
327 node, librdf_node* property)
328 int librdf_storage_has_arc_out(librdf_storage* storage, librdf_node*
329 node, librdf_node* property)
330 int librdf_storage_context_add_statement(librdf_storage* storage,
331 librdf_node* context, librdf_statement* statement)
332 int librdf_storage_context_add_statements(librdf_storage* storage,
333 librdf_node* context, librdf_stream* stream)
334 int librdf_storage_context_remove_statement(librdf_storage* storage,
335 librdf_node* context, librdf_statement* statement)
336 int librdf_storage_context_remove_statements(librdf_storage* storage,
337 librdf_node* context)
338 librdf_stream* librdf_storage_context_as_stream(librdf_storage* stor‐
339 age, librdf_node* context)
340 int librdf_storage_supports_query(librdf_storage* storage,
341 librdf_query* query)
342 librdf_stream* librdf_storage_query(librdf_storage* storage,
343 librdf_query* query)
344 void librdf_storage_sync(librdf_storage* storage)
345
346 class parser
347
348 void librdf_parser_register_factory(librdf_world* world, const char*
349 name, const char* mime_type, const char* uri_string, void (*factory)
350 (librdf_parser_factory*))
351 librdf_parser* librdf_new_parser(librdf_world* world, const char* name,
352 const char* mime_type, librdf_uri* type_uri)
353 librdf_parser* librdf_new_parser_from_factory(librdf_world* world,
354 librdf_parser_factory* factory)
355 void librdf_free_parser(librdf_parser* parser)
356 librdf_stream* librdf_parser_parse_as_stream(librdf_parser* parser,
357 librdf_uri* uri, librdf_uri* base_uri)
358 int librdf_parser_parse_into_model(librdf_parser* parser, librdf_uri*
359 uri, librdf_uri* base_uri, librdf_model* model)
360 librdf_stream* librdf_parser_parse_string_as_stream(librdf_parser*
361 parser, const unsigned char* string, librdf_uri* base_uri)
362 int librdf_parser_parse_string_into_model(librdf_parser* parser, const
363 unsigned char* string, librdf_uri* base_uri, librdf_model* model)
364 void librdf_parser_set_error(librdf_parser* parser, void* user_data,
365 void (*error_fn)(void* user_data, const char* msg, ...))
366 void librdf_parser_set_warning(librdf_parser* parser, void* user_data,
367 void (*warning_fn)(void* user_data, const char* msg, ...))
368 librdf_node* librdf_parser_get_feature(librdf_parser* parser,
369 librdf_uri* feature)
370 int librdf_parser_set_feature(librdf_parser* parser, librdf_uri* fea‐
371 ture, librdf_node* value)
372
373 class serializer
374
375 librdf_serializer* librdf_new_serializer(librdf_world* world, const
376 char *name, const char *mime_type, librdf_uri *type_uri)
377 librdf_serializer* librdf_new_serializer_from_factory(librdf_world*
378 world, librdf_serializer_factory *factory)
379 void librdf_free_serializer(librdf_serializer *serializer)
380 int librdf_serializer_serialize_model(librdf_serializer* serializer,
381 FILE* handle, librdf_uri* base_uri, librdf_model* model)
382 int librdf_serializer_serialize_model_to_file(librdf_serializer* seri‐
383 alizer, const char *name, librdf_uri* base_uri, librdf_model* model)
384 void librdf_serializer_set_error(librdf_serializer* serializer, void
385 *user_data, void (*error_fn)(void *user_data, const char *msg, ...))
386 void librdf_serializer_set_warning(librdf_serializer* serializer, void
387 *user_data, void (*warning_fn)(void *user_data, const char *msg, ...))
388 librdf_node* librdf_serializer_get_feature(librdf_serializer* serial‐
389 izer, librdf_uri* feature)
390 int librdf_serializer_set_feature(librdf_serializer* serializer,
391 librdf_uri* feature, librdf_node* value)b
392 int librdf_serializer_set_namespace(librdf_serializer* serializer,
393 librdf_uri* uri, const char* prefix)
394
395 class stream
396
397 librdf_stream* librdf_new_stream(librdf_world* world, void* context,
398 int (*end_of_stream)(void*), librdf_statement* (*next_state‐
399 ment)(void*), void (*finished)(void*))
400 librdf_stream* librdf_new_stream_from_node_iterator(librdf_iterator*
401 iterator, librdf_statement* statement, librdf_statement_part field)
402 void librdf_free_stream(librdf_stream* stream)
403 int librdf_stream_end(librdf_stream* stream)
404 int librdf_stream_next(librdf_stream* stream)
405 librdf_statement* librdf_stream_get_object(librdf_stream* stream)
406 void* librdf_stream_get_context(librdf_stream* stream)
407 void librdf_stream_set_map(librdf_stream* stream, librdf_statement*
408 (*map)(void* context, librdf_statement* statement), void* map_context)
409 void librdf_stream_print(librdf_stream* stream, FILE* fh)
410
412 #include <redland.h>
413
414 librdf_storage *storage;
415 librdf_model* model;
416 librdf_statement* statement;
417 librdf_world* world
418
419 world=librdf_new_world();
420
421 librdf_world_open(world);
422
423 storage=librdf_new_storage(world, "hashes", "test", "hash-type='bdb',dir='.'");
424 model=librdf_new_model(world, storage, NULL);
425 statement=librdf_new_statement_from_nodes(world, librdf_new_node_from_uri_string(world, "http://purl.org/net/dajobe/"), librdf_new_node_from_uri_string(world, "http://purl.org/dc/elements/1.1/creator"), librdf_new_node_from_literal(world, "Dave Beckett", NULL, 0));
426
427 librdf_model_add_statement(model, statement);
428 librdf_free_statement(statement);
429
430 librdf_model_print(model, stdout);
431
432 librdf_free_model(model);
433 librdf_free_storage(storage);
434 librdf_free_world(world);
435
437 libraptor(3), libxml(4).
438
440 The redland RDF library was created by Dave Beckett in June 2000.
441
443 Dave Beckett <http://purl.org/net/dajobe/>,
444
445
446
44715-Feb-2006 redland 1.0.3 redland(3)