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