Triples

Triples — Triple pattern or RDF triple.

Synopsis




                    rasqal_triple;
enum                rasqal_triple_flags;
rasqal_triple*      rasqal_new_triple                   (rasqal_literal *subject,
                                                         rasqal_literal *predicate,
                                                         rasqal_literal *object);
rasqal_triple*      rasqal_new_triple_from_triple       (rasqal_triple *t);
void                rasqal_free_triple                  (rasqal_triple *t);
rasqal_literal*     rasqal_triple_get_origin            (rasqal_triple *t);
enum                rasqal_triple_parts;
void                rasqal_triple_print                 (rasqal_triple *t,
                                                         FILE *fh);
void                rasqal_triple_set_origin            (rasqal_triple *t,
                                                         rasqal_literal *l);

Description

An object for a triple pattern or an RDF triple in a query. It contains the three parts of an RDF triple - subject, predicate, object as well as origin for matching triples in some graph (such as with the SPARQL GRAPH).

Details

rasqal_triple

typedef struct {
  rasqal_literal* subject;
  rasqal_literal* predicate;
  rasqal_literal* object;
  rasqal_literal* origin;
  unsigned int flags;
} rasqal_triple;

A triple pattern or RDF triple.

This is used as a triple pattern in queries and an RDF triple when generating RDF triples such as with SPARQL CONSTRUCT.

rasqal_literal *subject; Triple subject.
rasqal_literal *predicate; Triple predicate.
rasqal_literal *object; Triple object.
rasqal_literal *origin; Triple origin.
unsigned int flags; Or of enum rasqal_triple_flags bits.

enum rasqal_triple_flags

typedef enum {

  /* Not used - was only used internally in the execution engine */
  RASQAL_TRIPLE_FLAGS_EXACT=1,

  /* Not used - this is now a property of a graph pattern */
  RASQAL_TRIPLE_FLAGS_OPTIONAL=2,

  RASQAL_TRIPLE_FLAGS_LAST=RASQAL_TRIPLE_FLAGS_OPTIONAL
} rasqal_triple_flags;

Flags for triple patterns.

RASQAL_TRIPLE_FLAGS_EXACT Not used.
RASQAL_TRIPLE_FLAGS_OPTIONAL Not used.
RASQAL_TRIPLE_FLAGS_LAST Internal.

rasqal_new_triple ()

rasqal_triple*      rasqal_new_triple                   (rasqal_literal *subject,
                                                         rasqal_literal *predicate,
                                                         rasqal_literal *object);

Constructor - create a new rasqal_triple triple or triple pattern.

The triple origin can be set with rasqal_triple_set_origin().

subject : Triple subject.
predicate : Triple predicate.
object : Triple object.
Returns : a new rasqal_triple or NULL on failure.

rasqal_new_triple_from_triple ()

rasqal_triple*      rasqal_new_triple_from_triple       (rasqal_triple *t);

Copy constructor - create a new rasqal_triple from an existing one.

t : Triple to copy.
Returns : a new rasqal_triple or NULL on failure.

rasqal_free_triple ()

void                rasqal_free_triple                  (rasqal_triple *t);

Destructor - destroy a rasqal_triple object.

t : rasqal_triple object.

rasqal_triple_get_origin ()

rasqal_literal*     rasqal_triple_get_origin            (rasqal_triple *t);

Get the origin field of a rasqal_triple.

t : The triple object.
Returns : The triple origin or NULL.

enum rasqal_triple_parts

typedef enum {
  RASQAL_TRIPLE_SUBJECT  = 1,
  RASQAL_TRIPLE_PREDICATE= 2,
  RASQAL_TRIPLE_OBJECT   = 4,
  RASQAL_TRIPLE_ORIGIN   = 8
} rasqal_triple_parts;

Flags for parts of a triple.

RASQAL_TRIPLE_SUBJECT Subject present in a triple.
RASQAL_TRIPLE_PREDICATE Predicate present in a triple.
RASQAL_TRIPLE_OBJECT Object present in a triple.
RASQAL_TRIPLE_ORIGIN Origin present in a triple.

rasqal_triple_print ()

void                rasqal_triple_print                 (rasqal_triple *t,
                                                         FILE *fh);

Print a Rasqal triple in a debug format.

The print debug format may change in any release.

t : rasqal_triple object.
fh : The FILE* handle to print to.

rasqal_triple_set_origin ()

void                rasqal_triple_set_origin            (rasqal_triple *t,
                                                         rasqal_literal *l);

Set the origin field of a rasqal_triple.

t : The triple object.
l : The rasqal_literal object to set as origin.