Name
DB.DBA.SPARQL_REXEC — Remote execution of SPARQL via SPARQL protocol, produces a result set of SQL values.
Synopsis
DB.DBA.SPARQL_REXEC
(
|
in service varchar , |
in query varchar , | |
in dflt_graph varchar , | |
in named_graphs any , | |
in req_hdr any , | |
in maxrows integer , | |
in
bnode_dict
any
) ; |
Description
Remote execution of SPARQL via SPARQL protocol, produces a result set of SQL values.
Parameters
service
service URI to call via HTTP.
query
text of SPARQL query to execute.
dflt_graph
default graph IRI, if not NULL then this overrides what is specified in query
named_graphs
vector of named graph IRIs, if not NULL then this overrides what is specified in query
req_hdr
additional HTTP header lines that should be passed to the service; 'Host: ...' is most popular.
maxrows
limit on numbers of rows that should be returned.
bnode_dict
dictionary of bnode ID references.
Return Types
any
Examples
Example 24.304. Simple Use
create procedure SPARQL_TEST (in rquri varchar, in graph_uri varchar, in resuri varchar, in in_result integer := 0) { declare REPORT varchar; declare rqtext, sqltext varchar; declare app_env any; declare rset, row any; declare etalon_vars, etalon_rowids, etalon_rows any; declare rctr, rcount integer; declare copyright_filter any; if (not in_result) result_names (REPORT); result (''); declare exit handler for sqlstate '*' { ... }; ... rqtext := replace (cast (XML_URI_GET ('', rquri) as varchar), '# \044Id:', '# Id:'); declare rexec_stat, rexec_msg varchar; declare bnode_dict, rexec_rmeta, rexec_rrows any; rexec_stat := '00000'; rexec_msg := 'OK'; bnode_dict := dict_new (); rexec_rrows := null; exec ( 'DB.DBA.SPARQL_REXEC (?, ?, ?, ?, ?, ?, ?)', rexec_stat, rexec_msg, vector ( WB_CFG_HTTP_URI() || '/sparql/', rqtext, graph_uri, vector (), '', 10000, bnode_dict ), 10000, rexec_rmeta, rexec_rrows ); if (not isarray (rexec_rrows)) rexec_rrows := null; result (sprintf ('Remote exec of %s', rquri)); dump_large_text_impl ( sprintf (' completed with state %s msg %s and %d rows', rexec_stat, rexec_msg, length (rexec_rrows) ) ); result ('PASSED'); };