RASQAL_API
# define RASQAL_API
RASQAL_API
# define RASQAL_API _declspec(dllexport)
RASQAL_API
# define RASQAL_API _declspec(dllimport)
RASQAL_API
# define RASQAL_API
RASQAL_DEPRECATED
#define RASQAL_DEPRECATED
RASQAL_DEPRECATED
#define RASQAL_DEPRECATED __attribute__((deprecated))
RASQAL_DEPRECATED
#define RASQAL_DEPRECATED
rasqal_version_major
extern const unsigned int rasqal_version_major;
rasqal_version_minor
extern const unsigned int rasqal_version_minor;
rasqal_version_release
extern const unsigned int rasqal_version_release;
rasqal_version_decimal
extern const unsigned int rasqal_version_decimal;
rasqal_query
typedef struct rasqal_query_s rasqal_query;
rasqal_query_results
typedef struct rasqal_query_results_s rasqal_query_results;
rasqal_query_results_formatter
typedef struct rasqal_query_results_formatter_s rasqal_query_results_formatter;
rasqal_literal
typedef struct rasqal_literal_s rasqal_literal;
rasqal_graph_pattern
typedef struct rasqal_graph_pattern_s rasqal_graph_pattern;
rasqal_feature
typedef enum {
RASQAL_FEATURE_NO_NET,
RASQAL_FEATURE_LAST = RASQAL_FEATURE_NO_NET
} rasqal_feature;
rasqal_prefix
typedef struct {
const unsigned char *prefix;
raptor_uri* uri;
int declared;
int depth;
} rasqal_prefix;
rasqal_variable_type
typedef enum {
RASQAL_VARIABLE_TYPE_UNKNOWN = 0,
RASQAL_VARIABLE_TYPE_NORMAL = 1,
RASQAL_VARIABLE_TYPE_ANONYMOUS = 2
} rasqal_variable_type;
rasqal_variable
typedef struct {
const unsigned char *name;
rasqal_literal* value;
int offset;
rasqal_variable_type type;
} rasqal_variable;
rasqal_data_graph_flags
typedef enum {
RASQAL_DATA_GRAPH_NONE = 0,
RASQAL_DATA_GRAPH_NAMED = 1,
RASQAL_DATA_GRAPH_BACKGROUND = 2,
} rasqal_data_graph_flags;
rasqal_data_graph
typedef struct {
raptor_uri* uri;
raptor_uri* name_uri;
int flags;
} rasqal_data_graph;
rasqal_literal_type
typedef enum {
/* internal */
RASQAL_LITERAL_UNKNOWN,
RASQAL_LITERAL_BLANK,
RASQAL_LITERAL_URI,
RASQAL_LITERAL_STRING,
RASQAL_LITERAL_BOOLEAN,
RASQAL_LITERAL_INTEGER,
RASQAL_LITERAL_DOUBLE,
/* deprecated */
RASQAL_LITERAL_FLOATING = RASQAL_LITERAL_DOUBLE,
RASQAL_LITERAL_FLOAT,
RASQAL_LITERAL_DECIMAL,
RASQAL_LITERAL_DATETIME,
/* internal */
RASQAL_LITERAL_FIRST_XSD = RASQAL_LITERAL_BOOLEAN,
/* internal */
RASQAL_LITERAL_LAST_XSD = RASQAL_LITERAL_DATETIME,
RASQAL_LITERAL_PATTERN,
RASQAL_LITERAL_QNAME,
RASQAL_LITERAL_VARIABLE,
/* internal */
RASQAL_LITERAL_LAST= RASQAL_LITERAL_VARIABLE
} rasqal_literal_type;
rasqal_literal_s
struct rasqal_literal_s {
int usage;
rasqal_literal_type type;
/* UTF-8 string, pattern, qname, blank, double, float, decimal, datetime */
const unsigned char *string;
unsigned int string_len;
union {
/* integer and boolean types */
int integer;
/* double and float */
double floating;
/* uri (can be temporarily NULL if a qname, see flags below) */
raptor_uri* uri;
/* variable */
rasqal_variable* variable;
} value;
rasqal_op
typedef enum {
/* internal */
RASQAL_EXPR_UNKNOWN,
RASQAL_EXPR_AND,
RASQAL_EXPR_OR,
RASQAL_EXPR_EQ,
RASQAL_EXPR_NEQ,
RASQAL_EXPR_LT,
RASQAL_EXPR_GT,
RASQAL_EXPR_LE,
RASQAL_EXPR_GE,
RASQAL_EXPR_UMINUS,
RASQAL_EXPR_PLUS,
RASQAL_EXPR_MINUS,
RASQAL_EXPR_STAR,
RASQAL_EXPR_SLASH,
RASQAL_EXPR_REM,
RASQAL_EXPR_STR_EQ,
RASQAL_EXPR_STR_NEQ,
RASQAL_EXPR_STR_MATCH,
RASQAL_EXPR_STR_NMATCH,
RASQAL_EXPR_TILDE,
RASQAL_EXPR_BANG,
RASQAL_EXPR_LITERAL,
RASQAL_EXPR_FUNCTION,
RASQAL_EXPR_BOUND,
RASQAL_EXPR_STR,
RASQAL_EXPR_LANG,
RASQAL_EXPR_DATATYPE,
RASQAL_EXPR_ISURI,
RASQAL_EXPR_ISBLANK,
RASQAL_EXPR_ISLITERAL,
RASQAL_EXPR_CAST,
RASQAL_EXPR_ORDER_COND_ASC,
RASQAL_EXPR_ORDER_COND_DESC,
RASQAL_EXPR_LANGMATCHES,
RASQAL_EXPR_REGEX,
/* internal */
RASQAL_EXPR_LAST= RASQAL_EXPR_REGEX
} rasqal_op;
rasqal_expression_s
struct rasqal_expression_s {
int usage; /* reference count - 1 for itself */
rasqal_op op;
struct rasqal_expression_s* arg1;
struct rasqal_expression_s* arg2;
struct rasqal_expression_s* arg3; /* optional 3rd arg for EXPR_REGEX */
rasqal_literal* literal;
rasqal_variable* variable;
unsigned char *value; /* UTF-8 value */
/* for extension function qname(args...) and cast-to-uri */
raptor_uri* name;
raptor_sequence* args;
};
rasqal_expression
typedef struct rasqal_expression_s rasqal_expression;
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;
rasqal_triple
typedef struct {
rasqal_literal* subject;
rasqal_literal* predicate;
rasqal_literal* object;
rasqal_literal* origin;
unsigned int flags;
} rasqal_triple;
rasqal_pattern_flags
typedef enum {
RASQAL_PATTERN_FLAGS_OPTIONAL=1,
RASQAL_PATTERN_FLAGS_LAST=RASQAL_PATTERN_FLAGS_OPTIONAL
} rasqal_pattern_flags;
rasqal_query_verb
typedef enum {
/* internal */
RASQAL_QUERY_VERB_UNKNOWN = 0,
RASQAL_QUERY_VERB_SELECT = 1,
RASQAL_QUERY_VERB_CONSTRUCT = 2,
RASQAL_QUERY_VERB_DESCRIBE = 3,
RASQAL_QUERY_VERB_ASK = 4,
/* internal */
RASQAL_QUERY_VERB_LAST=RASQAL_QUERY_VERB_ASK
} rasqal_query_verb;
rasqal_graph_pattern_operator
typedef enum {
RASQAL_GRAPH_PATTERN_OPERATOR_UNKNOWN = 0,
RASQAL_GRAPH_PATTERN_OPERATOR_BASIC = 1,
RASQAL_GRAPH_PATTERN_OPERATOR_OPTIONAL = 2,
RASQAL_GRAPH_PATTERN_OPERATOR_UNION = 3,
RASQAL_GRAPH_PATTERN_OPERATOR_GROUP = 4,
RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH = 5,
RASQAL_GRAPH_PATTERN_OPERATOR_LAST=RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH
} rasqal_graph_pattern_operator;
rasqal_graph_pattern_visit_fn
int
rasqal_query* query, rasqal_graph_pattern* gp, void *user_data
rasqal_init
void
void
rasqal_finish
void
void
rasqal_features_enumerate
int
const rasqal_feature feature, const char **name, raptor_uri **uri, const char **label
rasqal_get_feature_count
unsigned int
void
rasqal_feature_from_uri
rasqal_feature
raptor_uri *uri
rasqal_feature_value_type
int
const rasqal_feature feature
rasqal_languages_enumerate
int
const unsigned int counter, const char **name, const char **label, const unsigned char **uri_string
rasqal_language_name_check
int
const char *name
rasqal_new_query
rasqal_query*
const char *name, const unsigned char *uri
rasqal_free_query
void
rasqal_query* query
rasqal_query_get_name
const char*
rasqal_query* query
rasqal_query_get_label
const char*
rasqal_query* query
rasqal_query_set_fatal_error_handler
void
rasqal_query* query, void *user_data, raptor_message_handler handler
rasqal_query_set_error_handler
void
rasqal_query* query, void *user_data, raptor_message_handler handler
rasqal_query_set_warning_handler
void
rasqal_query* query, void *user_data, raptor_message_handler handler
rasqal_query_set_feature
int
rasqal_query* query, rasqal_feature feature, int value
rasqal_query_set_feature_string
int
rasqal_query *query, rasqal_feature feature, const unsigned char *value
rasqal_query_get_feature
int
rasqal_query *query, rasqal_feature feature
rasqal_query_get_feature_string
const unsigned char*
rasqal_query *query, rasqal_feature feature
rasqal_query_set_default_generate_bnodeid_parameters
void
rasqal_query* rdf_query, char *prefix, int base
rasqal_query_set_generate_bnodeid_handler
void
rasqal_query* query, void *user_data, rasqal_generate_bnodeid_handler handler
rasqal_query_get_verb
rasqal_query_verb
rasqal_query* query
rasqal_query_get_wildcard
int
rasqal_query* query
rasqal_query_get_distinct
int
rasqal_query* query
rasqal_query_set_distinct
void
rasqal_query* query, int is_distinct
rasqal_query_get_limit
int
rasqal_query* query
rasqal_query_set_limit
void
rasqal_query* query, int limit
rasqal_query_get_offset
int
rasqal_query* query
rasqal_query_set_offset
void
rasqal_query* query, int offset
rasqal_query_add_data_graph
int
rasqal_query* query, raptor_uri* uri, raptor_uri* name_uri, int flags
rasqal_query_get_data_graph_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_data_graph
rasqal_data_graph*
rasqal_query* query, int idx
rasqal_query_add_variable
void
rasqal_query* query, rasqal_variable* var
rasqal_query_get_bound_variable_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_anonymous_variable_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_all_variable_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_variable
rasqal_variable*
rasqal_query* query, int idx
rasqal_query_has_variable
int
rasqal_query* query, const unsigned char *name
rasqal_query_set_variable
int
rasqal_query* query, const unsigned char *name, rasqal_literal* value
rasqal_query_get_triple_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_triple
rasqal_triple*
rasqal_query* query, int idx
rasqal_query_add_prefix
void
rasqal_query* query, rasqal_prefix* prefix
rasqal_query_get_prefix_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_prefix
rasqal_prefix*
rasqal_query* query, int idx
rasqal_query_get_order_conditions_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_order_condition
rasqal_expression*
rasqal_query* query, int idx
rasqal_query_get_construct_triples_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_construct_triple
rasqal_triple*
rasqal_query* query, int idx
rasqal_query_graph_pattern_visit
void
rasqal_query* query, rasqal_graph_pattern_visit_fn visit_fn, void* data
rasqal_query_write
int
raptor_iostream* iostr, rasqal_query* query, raptor_uri* format_uri, raptor_uri* base_uri
rasqal_query_get_query_graph_pattern
rasqal_graph_pattern*
rasqal_query* query
rasqal_query_get_graph_pattern_sequence
raptor_sequence*
rasqal_query* query
rasqal_query_get_graph_pattern
rasqal_graph_pattern*
rasqal_query* query, int idx
rasqal_graph_pattern_add_sub_graph_pattern
void
rasqal_graph_pattern* graph_pattern, rasqal_graph_pattern* sub_graph_pattern
rasqal_graph_pattern_get_triple
rasqal_triple*
rasqal_graph_pattern* graph_pattern, int idx
rasqal_graph_pattern_get_sub_graph_pattern_sequence
raptor_sequence*
rasqal_graph_pattern* graph_pattern
rasqal_graph_pattern_get_sub_graph_pattern
rasqal_graph_pattern*
rasqal_graph_pattern* graph_pattern, int idx
rasqal_graph_pattern_get_flags
int
rasqal_graph_pattern* graph_pattern
rasqal_graph_pattern_get_operator
rasqal_graph_pattern_operator
rasqal_graph_pattern* graph_pattern
rasqal_graph_pattern_operator_as_string
const char*
rasqal_graph_pattern_operator op
rasqal_graph_pattern_print
void
rasqal_graph_pattern* gp, FILE* fh
rasqal_graph_pattern_add_constraint
int
rasqal_graph_pattern* gp, rasqal_expression* expr
rasqal_graph_pattern_get_constraint_sequence
raptor_sequence*
rasqal_graph_pattern* gp
rasqal_graph_pattern_get_constraint
rasqal_expression*
rasqal_graph_pattern* gp, int idx
rasqal_graph_pattern_visit
int
rasqal_query* query, rasqal_graph_pattern *gp, rasqal_graph_pattern_visit_fn fn, void* user_data
rasqal_graph_pattern_get_index
int
rasqal_graph_pattern* gp
rasqal_query_verb_as_string
const char*
rasqal_query_verb verb
rasqal_query_print
void
rasqal_query* query, FILE* fh
rasqal_query_prepare
int
rasqal_query* query, const unsigned char *query_string, raptor_uri *base_uri
rasqal_query_execute
rasqal_query_results*
rasqal_query* query
rasqal_query_get_user_data
void*
rasqal_query* query
rasqal_query_set_user_data
void
rasqal_query* query, void *user_data
rasqal_free_query_results
void
rasqal_query_results *query_results
rasqal_query_results_is_bindings
int
rasqal_query_results *query_results
rasqal_query_results_get_count
int
rasqal_query_results *query_results
rasqal_query_results_next
int
rasqal_query_results *query_results
rasqal_query_results_finished
int
rasqal_query_results *query_results
rasqal_query_results_get_bindings
int
rasqal_query_results *query_results, const unsigned char ***names, rasqal_literal ***values
rasqal_query_results_get_binding_value
rasqal_literal*
rasqal_query_results *query_results, int offset
rasqal_query_results_get_binding_name
const unsigned char*
rasqal_query_results *query_results, int offset
rasqal_query_results_get_binding_value_by_name
rasqal_literal*
rasqal_query_results *query_results, const unsigned char *name
rasqal_query_results_get_bindings_count
int
rasqal_query_results *query_results
rasqal_query_results_is_boolean
int
rasqal_query_results *query_results
rasqal_query_results_get_boolean
int
rasqal_query_results *query_results
rasqal_query_results_is_graph
int
rasqal_query_results *query_results
rasqal_query_results_get_triple
raptor_statement*
rasqal_query_results *query_results
rasqal_query_results_next_triple
int
rasqal_query_results *query_results
rasqal_query_results_write
int
raptor_iostream *iostr, rasqal_query_results *results, raptor_uri *format_uri, raptor_uri *base_uri
rasqal_query_results_formats_enumerate
int
const unsigned int counter, const char **name, const char **label, const unsigned char **uri_string
rasqal_new_query_results_formatter
rasqal_query_results_formatter*
const char *name, raptor_uri* uri
rasqal_free_query_results_formatter
void
rasqal_query_results_formatter* formatter
rasqal_query_results_formatter_write
int
raptor_iostream *iostr, rasqal_query_results_formatter* formatter, rasqal_query_results* results, raptor_uri *base_uri
rasqal_query_iostream_write_escaped_counted_string
int
rasqal_query* query, raptor_iostream* iostr, const unsigned char* string, size_t len
rasqal_query_escape_counted_string
unsigned char*
rasqal_query* query, const unsigned char *string, size_t len, size_t* output_len_p
rasqal_new_data_graph
rasqal_data_graph*
raptor_uri* uri, raptor_uri* name_uri, int flags
rasqal_free_data_graph
void
rasqal_data_graph* dg
rasqal_data_graph_print
void
rasqal_data_graph* dg, FILE* fh
rasqal_compare_flags
typedef enum {
RASQAL_COMPARE_NOCASE = 1,
RASQAL_COMPARE_XQUERY = 2
} rasqal_compare_flags;
rasqal_new_1op_expression
rasqal_expression*
rasqal_op op, rasqal_expression* arg
rasqal_new_2op_expression
rasqal_expression*
rasqal_op op, rasqal_expression* arg1, rasqal_expression* arg2
rasqal_new_3op_expression
rasqal_expression*
rasqal_op op, rasqal_expression* arg1, rasqal_expression* arg2, rasqal_expression* arg3
rasqal_new_string_op_expression
rasqal_expression*
rasqal_op op, rasqal_expression* arg1, rasqal_literal* literal
rasqal_new_literal_expression
rasqal_expression*
rasqal_literal* literal
rasqal_new_function_expression
rasqal_expression*
raptor_uri* name, raptor_sequence* args
rasqal_new_cast_expression
rasqal_expression*
raptor_uri* name, rasqal_expression *value
rasqal_new_expression_from_expression
rasqal_expression*
rasqal_expression* e
rasqal_free_expression
void
rasqal_expression* e
rasqal_expression_print_op
void
rasqal_expression* e, FILE* fh
rasqal_expression_print
void
rasqal_expression* e, FILE* fh
rasqal_expression_evaluate
rasqal_literal*
rasqal_query* query, rasqal_expression* e, int flags
rasqal_expression_foreach_fn
int
void *user_data, rasqal_expression *e
rasqal_expression_foreach
int
rasqal_expression* e, rasqal_expression_foreach_fn fn, void *user_data
rasqal_expression_visit_fn
int
void *user_data, rasqal_expression *e
rasqal_expression_visit
int
rasqal_expression* e, rasqal_expression_visit_fn fn, void *user_data
rasqal_new_integer_literal
rasqal_literal*
rasqal_literal_type type, int integer
rasqal_new_floating_literal
rasqal_literal*
double f
rasqal_new_double_literal
rasqal_literal*
double d
rasqal_new_uri_literal
rasqal_literal*
raptor_uri* uri
rasqal_new_pattern_literal
rasqal_literal*
const unsigned char *pattern, const char *flags
rasqal_new_string_literal
rasqal_literal*
const unsigned char *string, const char *language, raptor_uri *datatype, const unsigned char *datatype_qname
rasqal_new_simple_literal
rasqal_literal*
rasqal_literal_type type, const unsigned char *string
rasqal_new_boolean_literal
rasqal_literal*
int value
rasqal_new_variable_literal
rasqal_literal*
rasqal_variable *variable
rasqal_new_decimal_literal
rasqal_literal*
const unsigned char *decimal
rasqal_new_literal_from_literal
rasqal_literal*
rasqal_literal* l
rasqal_free_literal
void
rasqal_literal* l
rasqal_literal_print
void
rasqal_literal* l, FILE* fh
rasqal_literal_print_type
void
rasqal_literal* l, FILE* fh
rasqal_literal_as_variable
rasqal_variable*
rasqal_literal* l
rasqal_literal_as_string
const unsigned char*
rasqal_literal* l
rasqal_literal_as_string_flags
const unsigned char*
rasqal_literal* l, int flags, int *error
rasqal_literal_as_node
rasqal_literal*
rasqal_literal* l
rasqal_literal_compare
int
rasqal_literal* l1, rasqal_literal* l2, int flags, int *error
rasqal_literal_equals
int
rasqal_literal* l1, rasqal_literal* l2
rasqal_new_prefix
rasqal_prefix*
const unsigned char* prefix, raptor_uri* uri
rasqal_free_prefix
void
rasqal_prefix* p
rasqal_prefix_print
void
rasqal_prefix* p, FILE* fh
rasqal_new_triple
rasqal_triple*
rasqal_literal* subject, rasqal_literal* predicate, rasqal_literal* object
rasqal_new_triple_from_triple
rasqal_triple*
rasqal_triple* t
rasqal_free_triple
void
rasqal_triple* t
rasqal_triple_print
void
rasqal_triple* t, FILE* fh
rasqal_triple_set_origin
void
rasqal_triple* t, rasqal_literal *l
rasqal_triple_get_origin
rasqal_literal*
rasqal_triple* t
rasqal_new_variable_typed
rasqal_variable*
rasqal_query* rq, rasqal_variable_type type, unsigned char *name, rasqal_literal *value
rasqal_new_variable
rasqal_variable*
rasqal_query* rq, unsigned char *name, rasqal_literal *value
rasqal_free_variable
void
rasqal_variable* v
rasqal_variable_print
void
rasqal_variable* v, FILE* fh
rasqal_variable_set_value
void
rasqal_variable* v, rasqal_literal* l
rasqal_free_memory
void
void *ptr
rasqal_alloc_memory
void*
size_t size
rasqal_calloc_memory
void*
size_t nmemb, size_t size
rasqal_triple_parts
typedef enum {
RASQAL_TRIPLE_SUBJECT = 1,
RASQAL_TRIPLE_PREDICATE= 2,
RASQAL_TRIPLE_OBJECT = 4,
RASQAL_TRIPLE_ORIGIN = 8
} rasqal_triple_parts;
rasqal_triples_match_s
struct rasqal_triples_match_s {
void *user_data;
rasqal_triple_parts (*bind_match)(struct rasqal_triples_match_s*, void *user_data, rasqal_variable *bindings[4], rasqal_triple_parts parts);
void (*next_match)(struct rasqal_triples_match_s*, void *user_data);
int (*is_end)(struct rasqal_triples_match_s*, void *user_data);
void (*finish)(struct rasqal_triples_match_s*, void *user_data);
};
rasqal_triples_match
typedef struct rasqal_triples_match_s rasqal_triples_match;
rasqal_triples_source_s
struct rasqal_triples_source_s {
rasqal_query* query;
void *user_data;
int (*init_triples_match)(rasqal_triples_match* rtm, struct rasqal_triples_source_s* rts, void *user_data, rasqal_triple_meta *m, rasqal_triple *t);
int (*triple_present)(struct rasqal_triples_source_s* rts, void *user_data, rasqal_triple *t);
void (*free_triples_source)(void *user_data);
};
rasqal_triples_source
typedef struct rasqal_triples_source_s rasqal_triples_source;
rasqal_triples_source_factory
typedef struct {
void *user_data;
size_t user_data_size;
int (*new_triples_source)(rasqal_query* query, void *factory_user_data, void *user_data, rasqal_triples_source* rts);
} rasqal_triples_source_factory;
rasqal_set_triples_source_factory
void
void (*register_fn)(rasqal_triples_source_factory *factory), void* user_data