DECLARE sparql_stmt clob; sql_stmt clob; cur sys_refcursor; vid number; term varchar2(4000); c_val varchar2(4000); BEGIN -- Add a dummy bind clause in the SPARQL statement sparql_stmt := 'PREFIX : <http://www.example.org/family/> SELECT ?c WHERE { BIND("" as ?s) ?s :parentOf ?c }'; -- Get the SQL translation for SPARQL statement sql_stmt := sem_apis.sparql_to_sql( sparql_stmt, sem_models('family'), SEM_Rulebases('RDFS','family_rb'), null, null,' USE_BIND_VAR=PLSQL PLUS_RDFT=VC ', null, null, 'APEXDEV', 'NET1'); dbms_output.put_line(sql_stmt); -- Execute with <http://www.example.org/family/Martha> term := '<http://www.example.org/family/Martha>'; vid := sem_apis.res2vid('NET1#RDF_VALUE$',term); dbms_output.put_line(chr(10)||'?s='||term); open cur for 'select c$rdfterm from('|| sql_stmt || ')' using vid,term; loop fetch cur into c_val; exit when cur%NOTFOUND; dbms_output.put_line('|-->?c='||c_val); end loop; close cur; -- Execute with <http://www.example.org/family/Sammy> term := '<http://www.example.org/family/Sammy>'; vid := sem_apis.res2vid('NET1#RDF_VALUE$',term); dbms_output.put_line(chr(10)||'?s='||term); open cur for 'select c$rdfterm from('|| sql_stmt || ')' using vid,term; loop fetch cur into c_val; exit when cur%NOTFOUND; dbms_output.put_line('|-->?c='||c_val); end loop; close cur; END; /