Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 71d40963b505df4524269198e237b3e3 > files > 336

virtuoso-opensource-doc-6.1.4-2.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
 <head profile="http://internetalchemy.org/2003/02/profile">
  <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" />
  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
  <meta name="dc.title" content="Function: http_ttl_triple - Virtuoso Functions Guide" />
  <meta name="dc.subject" content="Function: http_ttl_triple - Virtuoso Functions Guide" />
  <meta name="dc.creator" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" />
  <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="parent" href="functions.html" title="Chapter Contents" />
  <link rel="prev" href="appendixa.html" title="Appendix" />
  <link rel="next" href="functions.html#.html" title="" />
  <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" href="doc.css" />
  <link rel="stylesheet" type="text/css" href="/doc/translation.css" />
  <title>Function: http_ttl_triple - Virtuoso Functions Guide</title>
  <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
  <meta name="author" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="copyright" content="OpenLink Software, 1999 - 2009" />
  <meta name="keywords" content="" />
  <meta name="GENERATOR" content="OpenLink XSLT Team" />
 </head>
 <body>
  <div id="header">
    <a name="fn_http_ttl_triple" />
    <img src="../images/misc/logo.jpg" alt="" />
    <h1>22. Virtuoso Functions Guide - http_ttl_triple</h1>
  </div>
  <div id="navbartop">
   <div>
      <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_http_nt_triple.html" title="http_nt_triple">Prev</a> | <a class="link" href="fn_iri_split.html" title="iri_split">Next</a>
   </div>
  </div>
  <div id="currenttoc">
   <form method="post" action="/doc/adv_search.vspx">
    <div class="search">Keyword Search: <br />
        <input type="text" name="q" /> <input type="submit" name="go" value="Go" />
    </div>
   </form>
   <div>
      <a href="http://www.openlinksw.com/">www.openlinksw.com</a>
   </div>
   <div>
      <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a>
   </div>
    <br />
   <div>
      <a href="index.html">Book Home</a>
   </div>
    <br />
   <div>
      <a href="contents.html">Contents</a>
   </div>
   <div>
      <a href="preface.html">Preface</a>
   </div>
    <br />
   <div>
      <a class="selected" href="functions.html">Virtuoso Functions Guide</a>
   </div>
    <br />
   <div>
      <a href="functions.html#admin">Administration</a>
   </div>
   <div>
      <a href="functions.html#aggr">Aggregate Functions</a>
   </div>
   <div>
      <a href="functions.html#array">Array Manipulation</a>
   </div>
   <div>
      <a href="functions.html#bpel">BPEL APIs</a>
   </div>
   <div>
      <a href="functions.html#backup">Backup</a>
   </div>
   <div>
      <a href="functions.html#compression">Compression</a>
   </div>
   <div>
      <a href="functions.html#cursors">Cursor</a>
   </div>
   <div>
      <a href="functions.html#time">Date &amp; Time Manipulation</a>
   </div>
   <div>
      <a href="functions.html#debug">Debug</a>
   </div>
   <div>
      <a href="functions.html#dict">Dictionary Manipulation</a>
   </div>
   <div>
      <a href="functions.html#encoding">Encoding &amp; Decoding</a>
   </div>
   <div>
      <a href="functions.html#file">File Manipulation</a>
   </div>
   <div>
      <a href="functions.html#ft">Free Text</a>
   </div>
   <div>
      <a href="functions.html#hash">Hashing / Cryptographic</a>
   </div>
   <div>
      <a href="functions.html#ldap">LDAP</a>
   </div>
   <div>
      <a href="functions.html#localization">Locale</a>
   </div>
   <div>
      <a href="functions.html#mail">Mail</a>
   </div>
   <div>
      <a href="functions.html#misc">Miscellaneous</a>
   </div>
   <div>
      <a href="functions.html#number">Number</a>
   </div>
   <div>
      <a href="functions.html#phrz">Phrases</a>
   </div>
   <div>
      <a class="selected" href="functions.html#rdf">RDF data</a>
   </div>
   <div class="selected">
    <div>
        <a href="fn_rdf_64bit_upgrade.html">db.dba.rdf_64bit_upg...</a>
    </div>
    <div>
        <a href="fn_rdf_audit_metadata.html">db.dba.rdf_audit_met...</a>
    </div>
    <div>
        <a href="fn_rdf_backup_metadata.html">db.dba.rdf_backup_me...</a>
    </div>
    <div>
        <a href="fn_rdf_convert_rdfxml_to_ttl.html">db.dba.rdf_convert_r...</a>
    </div>
    <div>
        <a href="fn_rdf_datatype_of_obj.html">db.dba.rdf_datatype_...</a>
    </div>
    <div>
        <a href="fn_rdf_graph_collect_fp_list.html">db.dba.rdf_graph_col...</a>
    </div>
    <div>
        <a href="fn_rdf_graph_diff.html">db.dba.rdf_graph_dif...</a>
    </div>
    <div>
        <a href="fn_rdf_graph_group_create.html">db.dba.rdf_graph_gro...</a>
    </div>
    <div>
        <a href="fn_rdf_graph_group_ins.html">db.dba.rdf_graph_gro...</a>
    </div>
    <div>
        <a href="fn_rdf_langmatches.html">db.dba.rdf_langmatch...</a>
    </div>
    <div>
        <a href="fn_rdf_load_rdfa.html">db.dba.rdf_load_rdfa</a>
    </div>
    <div>
        <a href="fn_rdf_load_rdfxml.html">db.dba.rdf_load_rdfx...</a>
    </div>
    <div>
        <a href="fn_rdf_load_rdfxml_mt.html">db.dba.rdf_load_rdfx...</a>
    </div>
    <div>
        <a href="fn_rdf_quad_uri.html">db.dba.rdf_quad_uri</a>
    </div>
    <div>
        <a href="fn_rdf_quad_uri_l.html">db.dba.rdf_quad_uri_...</a>
    </div>
    <div>
        <a href="fn_rdf_quad_uri_l_typed.html">db.dba.rdf_quad_uri_...</a>
    </div>
    <div>
        <a href="fn_rdf_regex.html">db.dba.rdf_regex</a>
    </div>
    <div>
        <a href="fn_rdf_restore_metadata.html">db.dba.rdf_restore_m...</a>
    </div>
    <div>
        <a href="fn_rdf_suo_apply_patch.html">db.dba.rdf_suo_apply...</a>
    </div>
    <div>
        <a href="fn_rdf_suo_diff_ttl.html">db.dba.rdf_suo_diff_...</a>
    </div>
    <div>
        <a href="fn_rdf_triples_to_rdf_xml_text.html">db.dba.rdf_triples_t...</a>
    </div>
    <div>
        <a href="fn_rdf_triples_to_ttl.html">db.dba.rdf_triples_t...</a>
    </div>
    <div>
        <a href="fn_rdf_ttl2hash.html">db.dba.rdf_ttl2hash</a>
    </div>
    <div>
        <a href="fn_rdf_void_store.html">db.dba.rdf_void_stor...</a>
    </div>
    <div>
        <a href="fn_sparql_eval.html">db.dba.sparql_eval</a>
    </div>
    <div>
        <a href="fn_sparql_eval_to_array.html">db.dba.sparql_eval_t...</a>
    </div>
    <div>
        <a href="fn_sparql_rdb2rdf_codegen.html">db.dba.sparql_rdb2rd...</a>
    </div>
    <div>
        <a href="fn_sparql_rdb2rdf_list_tables.html">db.dba.sparql_rdb2rd...</a>
    </div>
    <div>
        <a href="fn_sparql_rexec.html">db.dba.sparql_rexec</a>
    </div>
    <div>
        <a href="fn_sparql_rexec_to_array.html">db.dba.sparql_rexec_...</a>
    </div>
    <div>
        <a href="fn_sparql_rexec_with_meta.html">db.dba.sparql_rexec_...</a>
    </div>
    <div>
        <a href="fn_sparql_select_known_graphs.html">db.dba.sparql_select...</a>
    </div>
    <div>
        <a href="fn_ttlp.html">db.dba.ttlp</a>
    </div>
    <div>
        <a href="fn_ttlp_mt.html">db.dba.ttlp_mt</a>
    </div>
    <div>
        <a href="fn_ttlp_mt_local_file.html">db.dba.ttlp_mt_local...</a>
    </div>
    <div>
        <a href="fn_GROUP_CONCAT.html">group_concat</a>
    </div>
    <div>
        <a href="fn_isref.html">isref</a>
    </div>
    <div>
        <a href="fn_sample.html">sample</a>
    </div>
    <div>
        <a href="fn___xml_get_ns_prefix.html">__xml_get_ns_prefix</a>
    </div>
    <div>
        <a href="fn___xml_get_ns_uri.html">__xml_get_ns_uri</a>
    </div>
    <div>
        <a href="fn_http_nt_triple.html">http_nt_triple</a>
    </div>
    <div>
        <a class="selected" href="fn_http_ttl_triple.html">http_ttl_triple</a>
    </div>
    <div>
        <a href="fn_iri_split.html">iri_split</a>
    </div>
    <div>
        <a href="fn_ld_dir.html">ld_dir</a>
    </div>
    <div>
        <a href="fn_rdfs_rule_set.html">rdfs_rule_set</a>
    </div>
    <div>
        <a href="fn_sparql_to_sql_text.html">sparql_to_sql_text</a>
    </div>
   </div>
   <div>
      <a href="functions.html#rmt">Remote SQL Data Source</a>
   </div>
   <div>
      <a href="functions.html#repl">Replication</a>
   </div>
   <div>
      <a href="functions.html#soap">SOAP</a>
   </div>
   <div>
      <a href="functions.html#sql">SQL</a>
   </div>
   <div>
      <a href="functions.html#string">String</a>
   </div>
   <div>
      <a href="functions.html#txn">Transaction</a>
   </div>
   <div>
      <a href="functions.html#type">Type Mapping</a>
   </div>
   <div>
      <a href="functions.html#uddi">UDDI</a>
   </div>
   <div>
      <a href="functions.html#udt">User Defined Types &amp; The CLR</a>
   </div>
   <div>
      <a href="functions.html#vad">VAD</a>
   </div>
   <div>
      <a href="functions.html#jvmpl">Virtuoso Java PL API</a>
   </div>
   <div>
      <a href="functions.html#bif">Virtuoso Server Extension Interface (VSEI)</a>
   </div>
   <div>
      <a href="functions.html#ws">Web &amp; Internet</a>
   </div>
   <div>
      <a href="functions.html#xml">XML</a>
   </div>
   <div>
      <a href="functions.html#XPATH">XPATH &amp; XQUERY</a>
   </div>
    <br />
   <div>
      <a href="functionidx.html">Functions Index</a>
   </div>
    <br />
  </div>
  <div id="text">
    <h2>http_ttl_triple</h2>
    <div class="refpurpose">outputs next triple to ses in TTL serialization.</div>
    <div class="funcsynopsis">
        <span class="funcdef">
     <span class="function">http_ttl_triple</span>
     </span>
	        (<span class="paramdef">in <span class="parameter">env</span> any</span>, 
	        <span class="paramdef">in <span class="parameter">arg1</span> any</span>, 
	        <span class="paramdef">in <span class="parameter">arg2</span> any</span>, 
	        <span class="paramdef">in <span class="parameter">arg3</span> any</span>, 
          <span class="paramdef">in <span class="parameter">ses </span> any</span>);
      </div>
  
  
  
  <div class="refsect1">
    <div class="refsect1title">Description</div>
    <p>Outputs next triple to ses in TTL serialization. This function does not terminate the printed 
    	triple in hope that the next triple will has same &quot;s&quot; or pair of &quot;s&quot; and &quot;p&quot;. So &quot;intermediate&quot; 
    	semicolon or comma can be used instead of &quot;trailing&quot; dot.</p>
  </div>
  <div class="refsect1">
    <div class="refsect1title">Parameters</div>
    <div class="refsect2">
        <span class="refsect2title">env – </span>
      An array of special format:
<div>
          <pre class="programlisting">
# vector (dict_new (some big size), 0, &#39;&#39;, &#39;&#39;, &#39;&#39;, 0, 0, 0, 0), for ex.:
vector (dict_new (16000), 0, &#39;&#39;, &#39;&#39;, &#39;&#39;, 0, 0, 0, 0);	
</pre>
        </div>      
      The first item of the vector is dictionary of declared namespaces. Its size should be big 
      	enough, but not greater than 16000 because the function will never try to create more than 
      	8000 of namespaces for S and O and more than 8000 of namespaces for P and types. Thus 
      	16000 max is possible grand total for all four.
      
    </div>
    <div class="refsect2">
        <span class="refsect2title">arg1 – </span>
      Triple subject.
    </div>
    <div class="refsect2">
        <span class="refsect2title">arg2 – </span>
      Triple predicate.
    </div>
    <div class="refsect2">
        <span class="refsect2title">arg3 – </span>
      Triple object.
    </div>
    <div class="refsect2">
        <span class="refsect2title">ses – </span>
      Session output.
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Return Types</div>
    <p>Any</p>
  </div>
  <div class="refsect1">
    <div class="refsect1title">Examples</div>
    <a name="ex_http_ttl_triple" />
      <div class="example">
        <div class="exampletitle" />
<p>
          <strong>Example 1</strong>
        </p>    
<div>
          <pre class="programlisting">
CREATE PROCEDURE dump_one_graph 
  ( IN  srcgraph           VARCHAR  , 
    IN  out_file           VARCHAR  , 
    IN  file_length_limit  INTEGER  := 1000000000
  )
  {
    DECLARE  file_name  varchar;
    DECLARE  env, ses      any;
    DECLARE  ses_len, 
             max_ses_len, 
             file_len, 
             file_idx      integer;
    SET ISOLATION = &#39;uncommitted&#39;;
    max_ses_len := 10000000;
    file_len := 0;
    file_idx := 1;
    file_name := sprintf (&#39;%s%06d.ttl&#39;, out_file, file_idx);
    string_to_file ( file_name || &#39;.graph&#39;, 
                     srcgraph, 
                     -2
                   );
    string_to_file ( file_name, 
                     sprintf ( &#39;# Dump of graph &lt;%s&gt;, as of %s\n&#39;, 
                               srcgraph, 
                               CAST (NOW() AS VARCHAR)
                             ), 
                     -2
                   );
    env := vector (dict_new (16000), 0, &#39;&#39;, &#39;&#39;, &#39;&#39;, 0, 0, 0, 0);
    ses := string_output ();
    FOR (SELECT * FROM ( SPARQL DEFINE input:storage &quot;&quot; 
                         SELECT ?s ?p ?o { GRAPH `iri(?:srcgraph)` { ?s ?p ?o } } 
                       ) AS sub OPTION (LOOP)) DO
      {
        http_ttl_triple (env, &quot;s&quot;, &quot;p&quot;, &quot;o&quot;, ses);
        ses_len := length (ses);
        IF (ses_len &gt; max_ses_len)
          {
            file_len := file_len + ses_len;
            IF (file_len &gt; file_length_limit)
              {
                http (&#39; .\n&#39;, ses);
                string_to_file (file_name, ses, -1);
                file_len := 0;
                file_idx := file_idx + 1;
                file_name := sprintf (&#39;%s%06d.ttl&#39;, out_file, file_idx);
                string_to_file ( file_name, 
                                 sprintf ( &#39;# Dump of graph &lt;%s&gt;, as of %s (part %d)\n&#39;, 
                                           srcgraph, 
                                           CAST (NOW() AS VARCHAR), 
                                           file_idx), 
                                 -2
                               );
                 env := vector (dict_new (16000), 0, &#39;&#39;, &#39;&#39;, &#39;&#39;, 0, 0, 0, 0);
              }
            ELSE
              string_to_file (file_name, ses, -1);
            ses := string_output ();
          }
      }
    IF (LENGTH (ses))
      {
        http (&#39; .\n&#39;, ses);
        string_to_file (file_name, ses, -1);
      }
  }
;

</pre>
        </div>
<p>
          <strong>Example 2</strong>
        </p>    
<div>
          <pre class="programlisting">
create procedure dump_rdftriples_to_ttl(inout triples any, inout ses any)
{
  declare env any;
  declare tcount, tctr integer;
  tcount := length (triples);
  if (0 = tcount)
    {
      http (&#39;# Empty TURTLE\n&#39;, ses);
      return;
    }
  env := vector (dict_new (__min (tcount, 16000)), 0, &#39;&#39;, &#39;&#39;, &#39;&#39;, 0, 0, 0, 0);
  { whenever sqlstate &#39;*&#39; goto end_pred_sort;
    rowvector_subj_sort (triples, 1, 1);
end_pred_sort: ;
  }
  { whenever sqlstate &#39;*&#39; goto end_subj_sort;
    rowvector_subj_sort (triples, 0, 1);
end_subj_sort: ;
  }
  for (tctr := 0; tctr &lt; tcount; tctr := tctr + 1)
    {
      http_ttl_triple (env, triples[tctr][0], triples[tctr][1], triples[tctr][2], ses);
    }
  http (&#39; .&#39;, ses);
}
;	
</pre>
        </div>
    </div>
  </div>
  <div class="refsect1">
    <div class="refsect1title">See Also</div>
    <p>
        <a href="fn_http_nt_triple.html">http_nt_triple</a>
      </p>        
    <p>
        <a href="fn_rdf_audit_metadata.html">DB.DBA.RDF_AUDIT_METADATA</a>
      </p>
    <p>
        <a href="fn_rdf_backup_metadata.html">DB.DBA.RDF_BACKUP_METADATA</a>
      </p>
    <p>
        <a href="fn_rdf_load_rdfxml.html">DB.DBA.RDF_LOAD_RDFXML</a>
      </p>
    <p>
        <a href="fn_rdf_load_rdfxml_mt.html">DB.DBA.RDF_LOAD_RDFXML_MT</a>
      </p>
    <p>
        <a href="fn_ttlp_mt.html">TTLP_MT</a>
      </p>
    <p>
        <a href="fn_ttlp_mt_local_file.html">TTLP_MT_LOCAL_FILE</a>
      </p>
  </div>
</div>
  <div id="footer">
    <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div>
   <div id="validation">
    <a href="http://validator.w3.org/check/referer">
        <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" />
    </a>
    <a href="http://jigsaw.w3.org/css-validator/">
        <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" />
    </a>
   </div>
  </div>
 </body>
</html>