1redland(3)             Redland RDF Application Framework            redland(3)
2
3
4

NAME

6       Redland Resource Description Framework (RDF) Library
7

VERSION

9       1.0.3
10

SYNOPSIS

12        #include <redland.h>
13

DESCRIPTION

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

FUNCTIONS

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

EXAMPLES

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

SEE ALSO

437       libraptor(3), libxml(4).
438

HISTORY

440       The redland RDF library was created by Dave Beckett in June 2000.
441

AUTHOR

443       Dave Beckett <http://purl.org/net/dajobe/>,
444
445
446
44715-Feb-2006                      redland 1.0.3                      redland(3)
Impressum