Name
DB.DBA.RDF_CONVERT_RDFXML_TO_TTL — Converts rdf xml to ttl.
Synopsis
DB.DBA.RDF_CONVERT_RDFXML_TO_TTL
(
|
in strg varchar , |
| in base varchar , | |
inout
ttl_ses
any
); |
Description
Converts rdf xml to ttl.
Parameters
strg
text of the rdf resource
base
base IRI to resolve relative IRIs to absolute
ttl_ses
ttl resource
Return Types
The return value is not specified and may be changed in future versions.
Examples
Example 24.273. Simple example
create procedure DB.DBA.RDF_XML_IRI_TO_TTL (inout obj any, inout ses any)
{
declare res varchar;
if (isiri_id (obj))
{
if (obj >= min_bnode_iri_id ())
{
if (obj >= #ib0)
http (sprintf ('_:bb%d ', iri_id_num (obj) - iri_id_num (#ib0)), ses);
else
http (sprintf ('_:b%d ', iri_id_num (obj)), ses);
}
else
{
res := coalesce (id_to_iri (obj), sprintf ('_:bad_iid_%d', iri_id_num (obj)));
http ('<', ses);
http_escape (res, 12, ses, 1, 1);
http ('> ', ses);
}
}
else if (__tag of varchar = __tag (obj))
{
if ("LEFT" (obj, 9) = 'nodeID://')
{
http ('_:', ses);
http (subseq (obj, 9), ses);
http (' ', ses);
}
else
{
http ('<', ses);
http_escape (obj, 12, ses, 1, 1);
http ('> ', ses);
}
}
else
{
http ('<', ses);
http_escape (cast (obj as varchar), 12, ses, 1, 1);
http ('> ', ses);
}
}
;
create procedure DB.DBA.RDF_XML_OBJ_TO_TTL (
inout o_val any, inout o_type varchar, inout o_lang varchar,
inout ses any)
{
declare res varchar;
if (isiri_id (o_val))
{
if (o_val >= min_bnode_iri_id ())
{
if (o_val >= #ib0)
http (sprintf ('_:bb%d ', iri_id_num (o_val) - iri_id_num (#ib0)), ses);
else
http (sprintf ('_:b%d ', iri_id_num (o_val)), ses);
}
else
{
res := coalesce (id_to_iri (o_val), sprintf ('_:bad_iid_%d', iri_id_num (o_val)));
http ('<', ses);
http_escape (res, 12, ses, 1, 1);
http ('> ', ses);
}
return;
}
http ('"', ses);
if (__tag of XML = o_val)
http_escape (serialize_to_UTF8_xml (o_val), 11, ses, 1, 1);
else
http_escape (o_val, 11, ses, 1, 1);
if (isstring (o_type))
{
http ('"^^<', ses);
http_escape (o_type, 12, ses, 1, 1);
http ('> ', ses);
}
else if (isstring (o_lang))
{
http ('"@', ses);
http (o_lang, ses);
http (' ', ses);
}
else
http ('" ', ses);
}
;
create procedure DB.DBA.RDF_CONVERT_RDFXML_TO_TTL_EV_NEW_BLANK (inout g varchar, inout app_env any, inout res IRI_ID)
{
;
}
;
create procedure DB.DBA.RDF_CONVERT_RDFXML_TO_TTL_EV_TRIPLE (
inout g_iid IRI_ID, inout s_uri varchar, inout p_uri varchar,
inout o_uri varchar,
inout app_env any )
{
DB.DBA.RDF_XML_IRI_TO_TTL (s_uri, app_env);
DB.DBA.RDF_XML_IRI_TO_TTL (p_uri, app_env);
DB.DBA.RDF_XML_IRI_TO_TTL (o_uri, app_env);
http ('.\n', app_env);
}
;
create procedure DB.DBA.RDF_CONVERT_RDFXML_TO_TTL_EV_TRIPLE_L (
inout g_iid IRI_ID, inout s_uri varchar, inout p_uri varchar,
inout o_val any, inout o_type varchar, inout o_lang varchar,
inout app_env any )
{
DB.DBA.RDF_XML_IRI_TO_TTL (s_uri, app_env);
DB.DBA.RDF_XML_IRI_TO_TTL (p_uri, app_env);
DB.DBA.RDF_XML_OBJ_TO_TTL (o_val, o_type, o_lang, app_env);
http ('.\n', app_env);
}
;
create procedure DB.DBA.RDF_CONVERT_RDFXML_TO_TTL (in strg varchar, in base varchar, inout ttl_ses any)
{
rdf_load_rdfxml (strg, 0,
'http://example.com',
vector (
'DB.DBA.TTLP_EV_NEW_GRAPH',
'DB.DBA.RDF_CONVERT_RDFXML_TO_TTL_EV_NEW_BLANK',
'DB.DBA.TTLP_EV_GET_IID',
'DB.DBA.RDF_CONVERT_RDFXML_TO_TTL_EV_TRIPLE',
'DB.DBA.RDF_CONVERT_RDFXML_TO_TTL_EV_TRIPLE_L',
'' ),
ttl_ses,
base );
}
;
create procedure DB.DBA.RDF_CONVERT_RDFXML_FILE_TO_TTL_FILE (in rdfxml_source_filename varchar, in base varchar, in ttl_target_filename varchar)
{
declare in_ses, out_ses any;
in_ses := file_to_string_output (rdfxml_source_filename);
out_ses := string_output ();
DB.DBA.RDF_CONVERT_RDFXML_TO_TTL (in_ses, base, out_ses);
string_to_file (ttl_target_filename, out_ses, -2);
}
;
-- Sample call:
DB.DBA.RDF_CONVERT_RDFXML_FILE_TO_TTL_FILE ('open_source_projects.rdf', 'http://example.com', 'open_source_projects.ttl');