Triples 3 RAPTOR Library
Triples RDF Triples

## Synopsis

    enum        raptor_genid_type;
    enum        raptor_identifier_type;
                raptor_identifier;
    raptor_identifier* raptor_new_identifier    (raptor_identifier_type type,
                                                 raptor_uri *uri,
                                                 raptor_uri_source uri_source,
                                                 unsigned char *id,
                                                 unsigned char *literal,
                                                 raptor_uri *literal_datatype,
                                                 unsigned char *literal_language);
    int         raptor_copy_identifier          (raptor_identifier *dest,
                                                 raptor_identifier *src);
    void        raptor_free_identifier          (raptor_identifier *identifier);
                raptor_statement;
    void        raptor_print_statement          (const raptor_statement *statement,
                                                 FILE *stream);
    void        raptor_print_statement_as_ntriples
                                                (const raptor_statement *statement,
                                                 FILE *stream);
    void        raptor_print_statement_detailed (const raptor_statement *statement,
                                                 int detailed,
                                                 FILE *stream);
    unsigned char* raptor_statement_part_as_counted_string
                                                (const void *term,
                                                 raptor_identifier_type type,
                                                 raptor_uri *literal_datatype,
                                                 unsigned char *literal_language,
                                                 size_t *len_p);
    unsigned char* raptor_statement_part_as_string
                                                (const void *term,
                                                 raptor_identifier_type type,
                                                 raptor_uri *literal_datatype,
                                                 unsigned char *literal_language);

## Description

Representation of RDF triples inside Raptor. They are a sequence of three raptor_identifier which cover the RDF terms of URI (`RAPTOR_IDENTIFIER_TYPE_RESOURCE`), Literal (`RAPTOR_IDENTIFIER_TYPE_LITERAL`) and Blank Node (`RAPTOR_IDENTIFIER_TYPE_ANONYMOUS`). Some other raptor_identifer_type forms exist but are deprecated.

## Details

### enum raptor_genid_type

    typedef enum {
      RAPTOR_GENID_TYPE_BNODEID,
      RAPTOR_GENID_TYPE_BAGID
    } raptor_genid_type;

Intended type for a generated identifier asked for by the handler registered with `raptor_set_generate_id_handler()`.

`RAPTOR_GENID_TYPE_BNODEID`

  Generated ID is for a blank node

`RAPTOR_GENID_TYPE_BAGID`

  Generated ID is for rdf:bagID

raptor_genid_type

### enum raptor_identifier_type

    typedef enum {
      RAPTOR_IDENTIFIER_TYPE_UNKNOWN,
      RAPTOR_IDENTIFIER_TYPE_RESOURCE,
      RAPTOR_IDENTIFIER_TYPE_ANONYMOUS,
      RAPTOR_IDENTIFIER_TYPE_PREDICATE,
      RAPTOR_IDENTIFIER_TYPE_ORDINAL,
      RAPTOR_IDENTIFIER_TYPE_LITERAL,
      RAPTOR_IDENTIFIER_TYPE_XML_LITERAL
    } raptor_identifier_type;

Type of identifier in a raptor_statement

`RAPTOR_IDENTIFIER_TYPE_UNKNOWN`

  Internal

`RAPTOR_IDENTIFIER_TYPE_RESOURCE`

  Resource URI (e.g. `rdf:about`)

`RAPTOR_IDENTIFIER_TYPE_ANONYMOUS`

  `_:foo` N-Triples, or generated

`RAPTOR_IDENTIFIER_TYPE_PREDICATE`

  predicate URI. WARNING: Will not be generated in in Raptor 1.4.9 or newer. Instead a RAPTOR_IDENTIFIER_TYPE_RESOURCE will be returned.

`RAPTOR_IDENTIFIER_TYPE_ORDINAL`

  `rdf:li`, `rdf:_` n. No longer generated in any parser in Raptor 1.4.10+, instead a RAPTOR_IDENTIFIER_TYPE_RESOURCE is returned.

`RAPTOR_IDENTIFIER_TYPE_LITERAL`

  regular literal

`RAPTOR_IDENTIFIER_TYPE_XML_LITERAL`

  `rdf:parseType="Literal"`. No longer generated by any parser in Raptor 1.4.8+, instead a RAPTOR_IDENTIFIER_TYPE_LITERAL is returned with a datatype of `rdf:XMLLiteral`.

raptor_identifier_type

### raptor_identifier

    typedef struct {
      raptor_identifier_type type;
      raptor_uri *uri;
      raptor_uri_source uri_source;
      const unsigned char *id;
      int ordinal;
      int is_malloced;
      const unsigned char *literal;
      raptor_uri *literal_datatype;
      const unsigned char *literal_language;
    } raptor_identifier;

Raptor RDF term identifier.

raptor_identifier_type type;

  Type of identifier

raptor_uri *uri;

  URI of identifier for types `RAPTOR_IDENTIFIER_TYPE_RESOURCE` and `RAPTOR_IDENTIFIER_TYPE_PREDICATE`

raptor_uri_source uri_source;

  where the identifier (URI or blank node) came from

const unsigned char *id;

  blank node identifier for type `RAPTOR_IDENTIFIER_TYPE_ANONYMOUS`

int ordinal;

  integer ordinal for type `RAPTOR_IDENTIFIER_TYPE_ORDINAL`

int is_malloced;

  internal

const unsigned char *literal;

  literal string for types `RAPTOR_IDENTIFIER_TYPE_LITERAL` and `RAPTOR_IDENTIFIER_TYPE_XML_LITERAL`

raptor_uri *literal_datatype;

  RDF literal datatype URI for types `RAPTOR_IDENTIFIER_TYPE_LITERAL` and `RAPTOR_IDENTIFIER_TYPE_XML_LITERAL`

const unsigned char *literal_language;

  RDF literal language for type `RAPTOR_IDENTIFIER_TYPE_LITERAL`

raptor_identifier

### raptor_new_identifier ()

    raptor_identifier* raptor_new_identifier    (raptor_identifier_type type,
                                                 raptor_uri *uri,
                                                 raptor_uri_source uri_source,
                                                 unsigned char *id,
                                                 unsigned char *literal,
                                                 raptor_uri *literal_datatype,
                                                 unsigned char *literal_language);

Constructor - create a raptor_identifier.

Constructs a new identifier copying the URI, ID fields. SHARED means raptor_new_identifier owns this argument after calling.

type :

  raptor_identifier_type of identifier

uri :

  raptor_uri of identifier (if relevant) (SHARED)

uri_source :

  raptor_uri_source of URI (if relevant)

id :

  string for ID or genid (if relevant) (SHARED)

literal :

  string for literal (SHARED)

literal_datatype :

  raptor_uri of identifier (SHARED)

literal_language :

  literal language (SHARED)

Returns :

  a new raptor_identifier object or NULL on failure

raptor_new_identifier

### raptor_copy_identifier ()

    int         raptor_copy_identifier          (raptor_identifier *dest,
                                                 raptor_identifier *src);

Copy raptor_identifiers.

dest :

  destination raptor_identifier (previously created)

src :

  source raptor_identifier

Returns :

  Non 0 on failure

raptor_copy_identifier

### raptor_free_identifier ()

    void        raptor_free_identifier          (raptor_identifier *identifier);

Destructor - destroy a raptor_identifier object.

identifier :

  raptor_identifier object

raptor_free_identifier

### raptor_statement

    typedef struct {
      const void *subject;
      raptor_identifier_type subject_type;
      const void *predicate;
      raptor_identifier_type predicate_type;
      const void *object;
      raptor_identifier_type object_type;
      raptor_uri *object_literal_datatype;
      const unsigned char *object_literal_language;
    } raptor_statement;

An RDF triple

See raptor_identifier for a description of how the fields may be used. As returned by a parser statement_handler.

const void *subject;

  triple subject data

raptor_identifier_type subject_type;

  triple subject type

const void *predicate;

  triple predicate data

raptor_identifier_type predicate_type;

  triple predicate type

const void *object;

  triple object literal string

raptor_identifier_type object_type;

  triple object type

raptor_uri *object_literal_datatype;

  triple object literal datatype URI (or NULL)

const unsigned char *object_literal_language;

  triple object literal language string (or NULL)

raptor_statement

### raptor_print_statement ()

    void        raptor_print_statement          (const raptor_statement *statement,
                                                 FILE *stream);

Print a raptor_statement to a stream.

statement :

  raptor_statement object to print

stream :

  FILE* stream

raptor_print_statement

### raptor_print_statement_as_ntriples ()

    void        raptor_print_statement_as_ntriples
                                                (const raptor_statement *statement,
                                                 FILE *stream);

Print a raptor_statement in N-Triples form.

statement :

  raptor_statement to print

stream :

  FILE* stream

raptor_print_statement_as_ntriples

### raptor_print_statement_detailed ()

    void        raptor_print_statement_detailed (const raptor_statement *statement,
                                                 int detailed,
                                                 FILE *stream);

Print a raptor_statement to a stream in a detailed fashion.

No current difference from calling `raptor_print_statement()`.

statement :

  raptor_statement object to print

detailed :

  unused

stream :

  FILE* stream

raptor_print_statement_detailed

### raptor_statement_part_as_counted_string ()

    unsigned char* raptor_statement_part_as_counted_string
                                                (const void *term,
                                                 raptor_identifier_type type,
                                                 raptor_uri *literal_datatype,
                                                 unsigned char *literal_language,
                                                 size_t *len_p);

Turns part of raptor statement into a N-Triples format counted string.

Turns the given term into an N-Triples escaped string using all the escapes as defined in http://www.w3.org/TR/rdf-testcases/ntriples

The part (subject, predicate, object) of the raptor_statement is typically passed in as term, the part type (subject_type, predicate_type, object_type) is passed in as type. When the part is a literal, the literal_datatype and literal_language fields are set, otherwise NULL (usually object_datatype, object_literal_language).

term :

  raptor_statement part (subject, predicate, object)

type :

  raptor_statement part type

literal_datatype :

  raptor_statement part datatype

literal_language :

  raptor_statement part language

len_p :

  Pointer to location to store length of new string (if not NULL)

Returns :

  the new string or NULL on failure. The length of the new string is returned in *len_p if len_p is not NULL.

raptor_statement_part_as_counted_string

### raptor_statement_part_as_string ()

    unsigned char* raptor_statement_part_as_string
                                                (const void *term,
                                                 raptor_identifier_type type,
                                                 raptor_uri *literal_datatype,
                                                 unsigned char *literal_language);

Turns part of raptor statement into a N-Triples format string.

Turns the given term into an N-Triples escaped string using all the escapes as defined in http://www.w3.org/TR/rdf-testcases/ntriples

The part (subject, predicate, object) of the raptor_statement is typically passed in as term, the part type (subject_type, predicate_type, object_type) is passed in as type. When the part is a literal, the literal_datatype and literal_language fields are set, otherwise NULL (usually object_datatype, object_literal_language).

term :

  raptor_statement part (subject, predicate, object)

type :

  raptor_statement part type

literal_datatype :

  raptor_statement part datatype

literal_language :

  raptor_statement part language

Returns :

  the new string or NULL on failure.

raptor_statement_part_as_string