SLV2Values slv2_query_get_variable_bindings(SLV2World world, SLV2Results results, int variable) { SLV2Values result = NULL; if (!librdf_query_results_finished(results->rdf_results)) result = slv2_values_new(); while (!librdf_query_results_finished(results->rdf_results)) { librdf_node* node = librdf_query_results_get_binding_value(results->rdf_results, variable); if (node == NULL) { fprintf(stderr, "SLV2 ERROR: Variable %d bound to NULL.\n", variable); librdf_query_results_next(results->rdf_results); continue; } SLV2Value val = slv2_value_from_librdf_node(world, node); if (val) raptor_sequence_push(result, val); librdf_free_node(node); librdf_query_results_next(results->rdf_results); } return result; }
/* private */ SLV2Port slv2_port_new(SLV2World world, uint32_t index, const char* symbol) { struct _SLV2Port* port = malloc(sizeof(struct _SLV2Port)); port->index = index; port->symbol = slv2_value_new(world, SLV2_VALUE_STRING, symbol); port->classes = slv2_values_new(); //port->node_id = strdup(node_id); return port; }