---
name: "redland"
section: "3"
platform: "linux"
package: "redland"
version: "1:1.0.17-10"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/redland"
---

# redland(3)

Resource Description Framework (RDF) Library

## NAME

redland - Resource Description Framework (RDF) Library

## VERSION

.0.16

## SYNOPSIS

```
 #include <redland.h>
```

## DESCRIPTION

**redland** is a library providing support for the Resource Description Framework (RDF) written in ANSI C with APIs in several other languages.

This manual page lists most of the redland public API functions but does not claim to be a complete summary of the entire API.  For the complete API with full details of the function interface, see the HTML API documentation either on the Redland web site at \<http://librdf.org/\> or with the software release in the docs/api directory.

## FUNCTIONS

The functions defined by **redland** are all defined with the `"librdf_"` prefix

### class world

- librdf\_world\* **librdf\_new\_world**(*void*)

  - void **librdf\_free\_world**(librdf\_world\* *world*)

  - void **librdf\_world\_open**(librdf\_world\* *world*)

  - void **librdf\_world\_set\_error**(librdf\_world\* *world*, void\* *user\_data*, void (\**error\_fn*)(void\* *user\_data*, const char\* *msg*, ...))

  - void **librdf\_world\_set\_warning**(librdf\_world\* *world*, void\* *user\_data*, void (\**warning\_fn*)(void\* *user\_data*, const char\* *msg*, ...))

  - void **librdf\_world\_set\_digest**(librdf\_world\*, const char\* *name*)

  - void **librdf\_world\_set\_uris\_hash**(librdf\_world\* *world*, librdf\_hash\* *uris\_hash*)

  - const char\* **librdf\_world\_get\_feature**(librdf\_world\* *world*, librdf\_uri\* *feature*)

  - int **librdf\_world\_set\_feature**(librdf\_world\* *world*, librdf\_uri\* *feature*, const char\* *value*)

  ### class iterator

- librdf\_iterator\* **librdf\_new\_iterator**(librdf\_world\* *world*, void\* *context*, int (\**is\_end*)(void\*), void\* (\**get\_next*)(void\*), void (\**finished*)(void\*))

  - void **librdf\_free\_iterator**(librdf\_iterator\*)

  - int **librdf\_iterator\_end**(librdf\_iterator\* *iterator*)

  - int **librdf\_iterator\_finished**(librdf\_iterator\* *iterator*)

  - int **librdf\_iterator\_next**(librdf\_iterator\* *iterator*)

  - void\* **librdf\_iterator\_get\_object**(librdf\_iterator\* *iterator*)

  - void\* **librdf\_iterator\_get\_context**(librdf\_iterator\* *iterator*)

  - void\* **librdf\_iterator\_get\_key**(librdf\_iterator\* *iterator*)

  - void\* **librdf\_iterator\_get\_value**(librdf\_iterator\* *iterator*)

  - int **librdf\_iterator\_add\_map**(librdf\_iterator\* *iterator*, void\* (\**fn*)(void\* *context*, void\* *item*), void\* *context*)

  - void\* **librdf\_iterator\_map\_remove\_duplicate\_nodes**(void\* *item*, void\* *user\_data*)

  ### class digest

- void **librdf\_digest\_register\_factory**(librdf\_world\* *world*, const char\* *name*, void (\**factory*) (librdf\_digest\_factory\*))

  - librdf\_digest\_factory\* **librdf\_get\_digest\_factory**(librdf\_world\* *world*, const char\* *name*)

  - librdf\_digest\* **librdf\_new\_digest**(librdf\_world\* *world*, char\* *name*)

  - librdf\_digest\* **librdf\_new\_digest\_from\_factory**(librdf\_world\* *world*, librdf\_digest\_factory\* *factory*)

  - void **librdf\_free\_digest**(librdf\_digest\* *digest*)

  - void **librdf\_digest\_init**(librdf\_digest\* *digest*)

  - void **librdf\_digest\_update**(librdf\_digest\* *digest*, unsigned char\* *buf*, size\_t *length*)

  - void **librdf\_digest\_final**(librdf\_digest\* *digest*)

  - void\* **librdf\_digest\_get\_digest**(librdf\_digest\* *digest*)

  - char\* **librdf\_digest\_to\_string**(librdf\_digest\* *digest*)

  - void **librdf\_digest\_print**(librdf\_digest\* *digest*, FILE\* *fh*)

  ### class uri

- librdf\_uri\* **librdf\_new\_uri**(librdf\_world\* *world*, const unsigned char \* *string*)

  - librdf\_uri\* **librdf\_new\_uri\_from\_uri**(librdf\_uri\* *uri*)

  - librdf\_uri\* **librdf\_new\_uri\_from\_uri\_local\_name**(librdf\_uri\* *uri*, const unsigned char\* *local\_name*)

  - void **librdf\_free\_uri**(librdf\_uri\* *uri*)

  - unsigned char\* **librdf\_uri\_as\_string**(librdf\_uri\* *uri*)

  - unsigned char\* **librdf\_uri\_as\_counted\_string**(librdf\_uri\* *uri*, size\_t\* *len\_p*)

  - librdf\_digest\* **librdf\_uri\_get\_digest**(librdf\_uri\* *uri*)

  - void librdf\_uri\_print\>(librdf\_uri\* *uri*, FILE\* *fh*)

  - unsigned char\* **librdf\_uri\_to\_string**(librdf\_uri\* *uri*)

  - unsigned char\* **librdf\_uri\_to\_counted\_string**(librdf\_uri\* *uri*, size\_t\* *len\_p*)

  - int **librdf\_uri\_equals**(librdf\_uri\* *first\_uri*, librdf\_uri\* *second\_uri*)

  - int **librdf\_uri\_is\_file\_uri**(librdf\_uri\* *uri*)

  - const char\* **librdf\_uri\_to\_filename**(librdf\_uri\* *uri*)

  - librdf\_uri\* **librdf\_new\_uri\_normalised\_to\_base**(const unsigned char\* *uri\_string*, librdf\_uri\* *source\_uri*, librdf\_uri\* *base\_uri*)

  - librdf\_uri\* **librdf\_new\_uri\_relative\_to\_base**(librdf\_uri\* *base\_uri*, const unsigned char\* *uri\_string*)

  - librdf\_uri\* **librdf\_new\_uri\_from\_filename**(librdf\_world\* *world*, const char\* *filename*)

  ### class node

- librdf\_node\* **librdf\_new\_node**(librdf\_world\* *world*)

  - librdf\_node\* **librdf\_new\_node\_from\_uri\_string**(librdf\_world\* *world*, const char\* *string*)

  - librdf\_node\* **librdf\_new\_node\_from\_uri**(librdf\_world\* *world*, librdf\_uri\* *uri*)

  - librdf\_node\* **librdf\_new\_node\_from\_uri\_local\_name**(librdf\_world\* *world*, librdf\_uri\* *uri*, const char\* *local\_name*)

  - librdf\_node\* **librdf\_new\_node\_from\_normalised\_uri\_string**(librdf\_world\* *world*, const char\* *uri\_string*, librdf\_uri\* *source\_uri*, librdf\_uri\* *base\_uri*)

  - librdf\_node\* **librdf\_new\_node\_from\_literal**(librdf\_world\* *world*, const char\* *string*, const char\* *xml\_language*, int *xml\_space*, int *is\_wf\_xml*)

  - librdf\_node\* **librdf\_new\_node\_from\_typed\_literal**(librdf\_world\* *world*, const unsigned char\* *string*, const char\* *xml\_language*, librdf\_uri\* *datatype\_uri*)

  - librdf\_node\* **librdf\_new\_node\_from\_blank\_identifier**(librdf\_world\* *world*, const unsigned char\* *identifier*)

  - librdf\_node\* **librdf\_new\_node\_from\_node**(librdf\_node\* *node*)

  - void **librdf\_node\_init**(librdf\_world\* *world*, librdf\_node\* *node*)

  - void **librdf\_free\_node**(librdf\_node\* *r*)

  - librdf\_uri\* **librdf\_node\_get\_uri**(librdf\_node\* *node*)

  - librdf\_node\_type **librdf\_node\_get\_type**(librdf\_node\* *node*)

  - unsigned char\* **librdf\_node\_get\_literal\_value**(librdf\_node\* *node*)

  - unsigned char\* **librdf\_node\_get\_literal\_value\_as\_counted\_string**(librdf\_node\* *node*, size\_t\* *len\_p*)

  - char\* **librdf\_node\_get\_literal\_value\_as\_latin1**(librdf\_node\* *node*)

  - char\* **librdf\_node\_get\_literal\_value\_language**(librdf\_node\* *node*)

  - int **librdf\_node\_get\_literal\_value\_is\_wf\_xml**(librdf\_node\* *node*)

  - librdf\_uri\* **librdf\_node\_get\_literal\_value\_datatype\_uri**(librdf\_node\* *node*)

  - int **librdf\_node\_get\_li\_ordinal**(librdf\_node\* *node*)

  - unsigned char\* **librdf\_node\_get\_blank\_identifier**(librdf\_node\* *node*)

  - int **librdf\_node\_is\_resource**(librdf\_node\* *node*)

  - int **librdf\_node\_is\_literal**(librdf\_node\* *node*)

  - int **librdf\_node\_is\_blank**(librdf\_node\* *node*)

  - librdf\_digest\* **librdf\_node\_get\_digest**(librdf\_node\* *node*)

  - size\_t **librdf\_node\_encode**(librdf\_node\* *node*, unsigned char\* *buffer*, size\_t *length*)

  - size\_t **librdf\_node\_decode**(librdf\_node\* *node*, unsigned char\* *buffer*, size\_t *length*)

  - unsigned char\* **librdf\_node\_to\_string**(librdf\_node\* *node*)

  - unsigned char\* **librdf\_node\_to\_counted\_string**(librdf\_node\* *node*, size\_t\* *len\_p*)

  - void **librdf\_node\_print**(librdf\_node\* *node*, FILE\* *fh*)

  - int **librdf\_node\_equals**(librdf\_node\* *first\_node*, librdf\_node\* *second\_node*)

  ### class concepts

The library provides macros for all of the RDF and RDFS concepts - nodes and URIs.  For example, `"LIBRDF_MS_Alt"` for the librdf\_node for the rdf:Alt concept and `"LIBRDF_MS_Alt_URI"` for the librdf\_uri for the URI reference of rdf:Alt.

`"LIBRDF_URI_RDF_MS"` and `"LIBRDF_URI_RDF_SCHEMA"` provide the librdf\_uri objects for the RDF and RDFS namespace URIs.  They must be copied using **librdf\_new\_uri\_from\_uri** to be shared correctly.

- void **librdf\_get\_concept\_by\_name**(librdf\_world\* *world*, int *is\_ms*, const char\* *name*, librdf\_uri \*\**uri\_p*, librdf\_node \*\**node\_p*)

  ### class statement

- librdf\_statement\* **librdf\_new\_statement**(librdf\_world\* *world*)

  - librdf\_statement\* **librdf\_new\_statement\_from\_statement**(librdf\_statement\* *statement*)

  - librdf\_statement\* **librdf\_new\_statement\_from\_nodes**(librdf\_world\* *world*, librdf\_node\* *subject*, librdf\_node\* *predicate*, librdf\_node\* *object*)

  - void **librdf\_statement\_init**(librdf\_world\* *world*, librdf\_statement\* *statement*)

  - void **librdf\_statement\_clear**(librdf\_statement\* *statement*)

  - void **librdf\_free\_statement**(librdf\_statement\* *statement*)

  - librdf\_node\* **librdf\_statement\_get\_subject**(librdf\_statement\* *statement*)

  - void **librdf\_statement\_set\_subject**(librdf\_statement\* *statement*, librdf\_node\* *subject*)

  - librdf\_node\* **librdf\_statement\_get\_predicate**(librdf\_statement\* *statement*)

  - void **librdf\_statement\_set\_predicate**(librdf\_statement\* *statement*, librdf\_node\* *predicate*)

  - librdf\_node\* **librdf\_statement\_get\_object**(librdf\_statement\* *statement*)

  - void **librdf\_statement\_set\_object**(librdf\_statement\* *statement*, librdf\_node\* *object*)

  - int **librdf\_statement\_is\_complete**(librdf\_statement\* *statement*)

  - char\* **librdf\_statement\_to\_string**(librdf\_statement\* *statement*)

  - void **librdf\_statement\_print**(librdf\_statement\* *statement*, FILE\* *fh*)

  - int **librdf\_statement\_equals**(librdf\_statement\* *statement1*, librdf\_statement\* *statement2*)

  - int **librdf\_statement\_match**(librdf\_statement\* *statement*, librdf\_statement\* *partial\_statement*)

  - size\_t **librdf\_statement\_encode**(librdf\_statement\* *statement*, unsigned char\* *buffer*, size\_t *length*)

  - size\_t **librdf\_statement\_encode\_parts**(librdf\_statement\* *statement*, unsigned char\* *buffer*, size\_t *length*, librdf\_statement\_part *fields*)

  - size\_t **librdf\_statement\_decode**(librdf\_statement\* *statement*, unsigned char\* *buffer*, size\_t *length*)

  - size\_t **librdf\_statement\_decode\_parts**(librdf\_statement\* *statement*, librdf\_node\*\* *context\_node*, unsigned char\* *buffer*, size\_t *length*)

  ### class model

- librdf\_model\* **librdf\_new\_model**(librdf\_world\* *world*, librdf\_storage\* *storage*, char\* *options\_string*)

  - librdf\_model\* **librdf\_new\_model\_with\_options**(librdf\_world\* *world*, librdf\_storage\* *storage*, librdf\_hash\* *options*)

  - librdf\_model\* **librdf\_new\_model\_from\_model**(librdf\_model\* *model*)

  - void **librdf\_free\_model**(librdf\_model\* *model*)

  - int **librdf\_model\_size**(librdf\_model\* *model*)

  - int **librdf\_model\_add**(librdf\_model\* *model*, librdf\_node\* *subject*, librdf\_node\* *predicate*, librdf\_node\* *object*)

  - int **librdf\_model\_add\_string\_literal\_statement**(librdf\_model\* *model*, librdf\_node\* *subject*, librdf\_node\* *predicate*, char\* *string*, char\* *xml\_language*, int *xml\_space*, int *is\_wf\_xml*)

  - int **librdf\_model\_add\_typed\_literal\_statement**(librdf\_model\* *model*, librdf\_node\* *subject*, librdf\_node\* *predicate*, const unsigned char\* *string*, char\* *xml\_language*, librdf\_uri\* *datatype\_uri*)

  - int **librdf\_model\_add\_statement**(librdf\_model\* *model*, librdf\_statement\* *statement*)

  - int **librdf\_model\_add\_statements**(librdf\_model\* *model*, librdf\_stream\* *statement\_stream*)

  - int **librdf\_model\_remove\_statement**(librdf\_model\* *model*, librdf\_statement\* *statement*)

  - int **librdf\_model\_contains\_statement**(librdf\_model\* *model*, librdf\_statement\* *statement*)

  - int **librdf\_model\_has\_arc\_in**(librdf\_model\* *model*, librdf\_node\* *node*, librdf\_node\* *property*)

  - int **librdf\_model\_has\_arc\_out**(librdf\_model\* *model*, librdf\_node\* *node*, librdf\_node\* *property*)

  - librdf\_stream\* **librdf\_model\_as\_stream**(librdf\_model\* *model*)

  - librdf\_stream\* **librdf\_model\_find\_statements**(librdf\_model\* *model*, librdf\_statement\* *statement*)

  - librdf\_stream\* **librdf\_model\_find\_statements\_in\_context**(librdf\_model\* *model*, librdf\_statement\* *statement*, librdf\_node\* *context\_node*)

  - librdf\_stream\* **librdf\_model\_find\_statements\_with\_options**(librdf\_model\* *model*, librdf\_statement\* *statement*, librdf\_node\* *context\_node*, librdf\_hash\* *options*)

  - librdf\_iterator\* **librdf\_model\_get\_contexts**(librdf\_model\* *model*)

  - librdf\_iterator\* **librdf\_model\_get\_sources**(librdf\_model\* *model*, librdf\_node\* *arc*, librdf\_node\* *target*)

  - librdf\_iterator\* **librdf\_model\_get\_arcs**(librdf\_model\* *model*, librdf\_node\* *source*, librdf\_node\* *target*)

  - librdf\_iterator\* **librdf\_model\_get\_targets**(librdf\_model\* *model*, librdf\_node\* *source*, librdf\_node\* *arc*)

  - librdf\_node\* **librdf\_model\_get\_source**(librdf\_model\* *model*, librdf\_node\* *arc*, librdf\_node\* *target*)

  - librdf\_node\* **librdf\_model\_get\_arc**(librdf\_model\* *model*, librdf\_node\* *source*, librdf\_node\* *target*)

  - librdf\_node\* **librdf\_model\_get\_target**(librdf\_model\* *model*, librdf\_node\* *source*, librdf\_node\* *arc*)

  - librdf\_iterator\* **librdf\_model\_get\_arcs\_in**(librdf\_model\* *model*, librdf\_node\* *node*)

  - librdf\_iterator\* **librdf\_model\_get\_arcs\_out**(librdf\_model\* *model*, librdf\_node\* *node*)

  - int **librdf\_model\_add\_submodel**(librdf\_model\* *model*, librdf\_model\* *sub\_model*)

  - int **librdf\_model\_remove\_submodel**(librdf\_model\* *model*, librdf\_model\* *sub\_model*)

  - void **librdf\_model\_print**(librdf\_model\* *model*, FILE\* *fh*)

  - int **librdf\_model\_context\_add\_statement**(librdf\_model\* *model*, librdf\_node\* *context*, librdf\_statement\* *statement*)

  - int **librdf\_model\_context\_add\_statements**(librdf\_model\* *model*, librdf\_node\* *context*, librdf\_stream\* *stream*)

  - int **librdf\_model\_context\_remove\_statement**(librdf\_model\* *model*, librdf\_node\* *context*, librdf\_statement\* *statement*)

  - int **librdf\_model\_context\_remove\_statements**(librdf\_model\* *model*, librdf\_node\* *context*)

  - librdf\_stream\* **librdf\_model\_context\_as\_stream**(librdf\_model\* *model*, librdf\_node\* *context*)

  - librdf\_stream\* **librdf\_model\_query**(librdf\_model\* *model*, librdf\_query\* *query*)

  - librdf\_stream\* **librdf\_model\_query\_string**(librdf\_model\* *model*, const char\* *name*, librdf\_uri\* *uri*, const unsigned char\* *query\_string*)

  - void **librdf\_model\_sync**(librdf\_model\* *model*)

  - librdf\_storage\* **librdf\_model\_get\_storage**(librdf\_model\* *model*)

  - librdf\_node\* **librdf\_model\_get\_feature**(librdf\_model\* *model*, librdf\_uri\* *feature*) =item int **librdf\_model\_set\_feature**(librdf\_model\* *model*, librdf\_uri\* *feature*, librdf\_node\* *value*)

  ### class storage

- void **librdf\_storage\_register\_factory**(const char\* *name*, void (\**factory*) (librdf\_storage\_factory\*))

  - librdf\_storage\* **librdf\_new\_storage**(librdf\_world\* *world*, char\* *storage\_name*, char\* *name*, char\* *options\_string*)

  - librdf\_storage\* **librdf\_new\_storage\_with\_options**(librdf\_world\* *world*, char\* *storage\_name*, char\* *name*, librdf\_hash\* *options*)

  - librdf\_storage\* **librdf\_new\_storage\_from\_storage**(librdf\_storage\* *old\_storage*)

  - librdf\_storage\* **librdf\_new\_storage\_from\_factory**(librdf\_world\* *world*, librdf\_storage\_factory\* *factory*, char\* *name*, librdf\_hash\* *options*)

  - void **librdf\_free\_storage**(librdf\_storage\* *storage*)

  - int **librdf\_storage\_open**(librdf\_storage\* *storage*, librdf\_model\* *model*)

  - int **librdf\_storage\_close**(librdf\_storage\* *storage*)

  - int **librdf\_storage\_get**(librdf\_storage\* *storage*, void\* *key*, size\_t *key\_len*, void \*\**value*, size\_t\* *value\_len*, unsigned int *flags*)

  - int **librdf\_storage\_size**(librdf\_storage\* *storage*)

  - int **librdf\_storage\_add\_statement**(librdf\_storage\* *storage*, librdf\_statement\* *statement*)

  - int **librdf\_storage\_add\_statements**(librdf\_storage\* *storage*, librdf\_stream\* *statement\_stream*)

  - int **librdf\_storage\_remove\_statement**(librdf\_storage\* *storage*, librdf\_statement\* *statement*)

  - int **librdf\_storage\_contains\_statement**(librdf\_storage\* *storage*, librdf\_statement\* *statement*)

  - librdf\_stream\* **librdf\_storage\_serialise**(librdf\_storage\* *storage*)

  - librdf\_stream\* **librdf\_storage\_find\_statements**(librdf\_storage\* *storage*, librdf\_statement\* *statement*)

  - librdf\_iterator\* **librdf\_storage\_get\_sources**(librdf\_storage\* *storage*, librdf\_node\* *arc*, librdf\_node\* *target*)

  - librdf\_iterator\* **librdf\_storage\_get\_arcs**(librdf\_storage\* *storage*, librdf\_node\* *source*, librdf\_node\* *target*)

  - librdf\_iterator\* **librdf\_storage\_get\_targets**(librdf\_storage\* *storage*, librdf\_node\* *source*, librdf\_node\* *arc*)

  - librdf\_iterator\* **librdf\_storage\_get\_arcs\_in**(librdf\_storage\* *storage*, librdf\_node\* *node*)

  - librdf\_iterator\* **librdf\_storage\_get\_arcs\_out**(librdf\_storage\* *storage*, librdf\_node\* *node*)

  - int **librdf\_storage\_has\_arc\_in**(librdf\_storage\* *storage*, librdf\_node\* *node*, librdf\_node\* *property*)

  - int **librdf\_storage\_has\_arc\_out**(librdf\_storage\* *storage*, librdf\_node\* *node*, librdf\_node\* *property*)

  - int **librdf\_storage\_context\_add\_statement**(librdf\_storage\* *storage*, librdf\_node\* *context*, librdf\_statement\* *statement*)

  - int **librdf\_storage\_context\_add\_statements**(librdf\_storage\* *storage*, librdf\_node\* *context*, librdf\_stream\* *stream*)

  - int **librdf\_storage\_context\_remove\_statement**(librdf\_storage\* *storage*, librdf\_node\* *context*, librdf\_statement\* *statement*)

  - int **librdf\_storage\_context\_remove\_statements**(librdf\_storage\* *storage*, librdf\_node\* *context*)

  - librdf\_stream\* **librdf\_storage\_context\_as\_stream**(librdf\_storage\* *storage*, librdf\_node\* *context*)

  - int **librdf\_storage\_supports\_query**(librdf\_storage\* *storage*, librdf\_query\* *query*)

  - librdf\_stream\* **librdf\_storage\_query**(librdf\_storage\* *storage*, librdf\_query\* *query*)

  - void **librdf\_storage\_sync**(librdf\_storage\* *storage*)

  ### class parser

- void **librdf\_parser\_register\_factory**(librdf\_world\* *world*, const char\* *name*, const char\* *mime\_type*, const char\* *uri\_string*, void (\**factory*) (librdf\_parser\_factory\*))

  - librdf\_parser\* **librdf\_new\_parser**(librdf\_world\* *world*, const char\* *name*, const char\* *mime\_type*, librdf\_uri\* *type\_uri*)

  - librdf\_parser\* **librdf\_new\_parser\_from\_factory**(librdf\_world\* *world*, librdf\_parser\_factory\* *factory*)

  - void **librdf\_free\_parser**(librdf\_parser\* *parser*)

  - librdf\_stream\* **librdf\_parser\_parse\_as\_stream**(librdf\_parser\* *parser*, librdf\_uri\* *uri*, librdf\_uri\* *base\_uri*)

  - int **librdf\_parser\_parse\_into\_model**(librdf\_parser\* *parser*, librdf\_uri\* *uri*, librdf\_uri\* *base\_uri*, librdf\_model\* *model*)

  - librdf\_stream\* **librdf\_parser\_parse\_string\_as\_stream**(librdf\_parser\* *parser*, const unsigned char\* *string*, librdf\_uri\* *base\_uri*)

  - int librdf\_parser\_parse\_string\_into\_model(librdf\_parser\* *parser*, const unsigned char\* *string*, librdf\_uri\* *base\_uri*, librdf\_model\* *model*)

  - void **librdf\_parser\_set\_error**(librdf\_parser\* *parser*, void\* *user\_data*, void (\**error\_fn*)(void\* *user\_data*, const char\* *msg*, ...))

  - void **librdf\_parser\_set\_warning**(librdf\_parser\* *parser*, void\* *user\_data*, void (\**warning\_fn*)(void\* *user\_data*, const char\* *msg*, ...))

  - librdf\_node\* **librdf\_parser\_get\_feature**(librdf\_parser\* *parser*, librdf\_uri\* *feature*)

  - int **librdf\_parser\_set\_feature**(librdf\_parser\* *parser*, librdf\_uri\* *feature*, librdf\_node\* *value*)

  ### class serializer

- librdf\_serializer\* librdf\_new\_serializer(librdf\_world\* *world*, const char \**name*, const char \**mime\_type*, librdf\_uri \**type\_uri*)

  - librdf\_serializer\* librdf\_new\_serializer\_from\_factory(librdf\_world\* *world*, librdf\_serializer\_factory \**factory*)

  - void librdf\_free\_serializer(librdf\_serializer \**serializer*)

  - int librdf\_serializer\_serialize\_model(librdf\_serializer\* *serializer*, FILE\* *handle*, librdf\_uri\* *base\_uri*, librdf\_model\* *model*)

  - int librdf\_serializer\_serialize\_model\_to\_file(librdf\_serializer\* *serializer*, const char \**name*, librdf\_uri\* *base\_uri*, librdf\_model\* *model*)

  - void librdf\_serializer\_set\_error(librdf\_serializer\* *serializer*, void \**user\_data*, void (\**error\_fn*)(void \*user\_data, const char \*msg, ...))

  - void librdf\_serializer\_set\_warning(librdf\_serializer\* *serializer*, void \**user\_data*, void (\**warning\_fn*)(void \*user\_data, const char \*msg, ...))

  - librdf\_node\* librdf\_serializer\_get\_feature(librdf\_serializer\* *serializer*, librdf\_uri\* *feature*)

  - int librdf\_serializer\_set\_feature(librdf\_serializer\* *serializer*, librdf\_uri\* *feature*, librdf\_node\* *value*)b

  - int librdf\_serializer\_set\_namespace(librdf\_serializer\* *serializer*, librdf\_uri\* *uri*, const char\* *prefix*)

  ### class stream

- librdf\_stream\* **librdf\_new\_stream**(librdf\_world\* *world*, void\* *context*, int (\**end\_of\_stream*)(void\*), librdf\_statement\* (\**next\_statement*)(void\*), void (\**finished*)(void\*))

  - librdf\_stream\* **librdf\_new\_stream\_from\_node\_iterator**(librdf\_iterator\* *iterator*, librdf\_statement\* *statement*, librdf\_statement\_part *field*)

  - void **librdf\_free\_stream**(librdf\_stream\* *stream*)

  - int **librdf\_stream\_end**(librdf\_stream\* *stream*)

  - int **librdf\_stream\_next**(librdf\_stream\* *stream*)

  - librdf\_statement\* **librdf\_stream\_get\_object**(librdf\_stream\* *stream*)

  - void\* **librdf\_stream\_get\_context**(librdf\_stream\* *stream*)

  - void **librdf\_stream\_set\_map**(librdf\_stream\* *stream*, librdf\_statement\* (\**map*)(void\* *context*, librdf\_statement\* *statement*), void\* *map\_context*)

  - void **librdf\_stream\_print**(librdf\_stream\* *stream*, FILE\* *fh*)

  ## EXAMPLES

```
  #include <redland.h>
  librdf_storage *storage;
  librdf_model* model;
  librdf_statement* statement;
  librdf_world* world
  world=librdf_new_world();
  librdf_world_open(world);
  storage=librdf_new_storage(world, "hashes", "test", "hash-type='bdb',dir='.'");
  model=librdf_new_model(world, storage, NULL);
  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));
  librdf_model_add_statement(model, statement);
  librdf_free_statement(statement);
  librdf_model_print(model, stdout);
  librdf_free_model(model);
  librdf_free_storage(storage);
  librdf_free_world(world);
```

## SEE ALSO

[*libraptor*(3)](/libraptor/3.md), *libxml*(4).

## HISTORY

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

## AUTHOR

Dave Beckett \<http://purl.org/net/dajobe/\>,
