## Heuristics

Heuristics — Utility heuristic functions.

## Synopsis

    char*               librdf_heuristic_gen_name           (const char *name);
    int                 librdf_heuristic_is_blank_node      (const char *node);
    const char*         librdf_heuristic_get_blank_node     (const char *node);
    int                 librdf_heuristic_object_is_literal  (const char *object);

## Description

Various utility functions for performing heuristics such as generating a name, guessing if a string is a URI or RDF literal.

## Details

### librdf_heuristic_gen_name ()

    char*               librdf_heuristic_gen_name           (const char *name);

Generate a new name from an existing name.

Adds an integer or increases the integer at the end of the name in order to generate a new one

`name` : | the name
Returns : | a new name or NULL on failure

### librdf_heuristic_is_blank_node ()

    int                 librdf_heuristic_is_blank_node      (const char *node);

Try to guess if an node string is a blank node identifier.

The guessing is done by assuming the object is a blank node if it matches ^_: like N-Triples, N3 and related.

`node` : | string object to guess type
Returns : | non 0 if node is probably a blank node identifier

### librdf_heuristic_get_blank_node ()

    const char*         librdf_heuristic_get_blank_node     (const char *node);

Get a blank node identifier from a node string.

Picks the blank node identifier out of a string. Looks for things like _:ABC

`node` : | string object to guess type
Returns : | the blank node identifer string or NULL if the node does not seem to be a blank node identifier

### librdf_heuristic_object_is_literal ()

    int                 librdf_heuristic_object_is_literal  (const char *object);

Try to guess if an object string is a literal or a resource.

The guessing is done by assuming the object is a URL if it matches ^[`isalnum()`]+:[^`isblank()`]+$

This will be fooled by literals of form 'thing:non-blank-thing' but is good enough.

`object` : | string object to guess type
Returns : | non 0 if object is probably a literal