The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Redland RDF Application Framework - Ruby RDoc - Class: Redland::Model</title>
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
<script type="text/javascript">
  // <![CDATA[

  function popupCode( url ) {
    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
  }

  function toggleCode( id ) {
    if ( document.getElementById )
      elem = document.getElementById( id );
    else if ( document.all )
      elem = eval( "document.all." + id );
    else
      return false;

    elemStyle = elem.style;
    
    if ( elemStyle.display != "block" ) {
      elemStyle.display = "block"
    } else {
      elemStyle.display = "none"
    }

    return true;
  }
  
  // Make codeblocks hidden by default
  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
  
  // ]]>
</script>
</head>
<body>
<div class="outerBlock">

<div class="outerHeader">
Go to <a href="/" target="_parent">Redland Home</a> - 
<a href="/bindings/" target="_parent">Language Bindings Home</a> - 
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
</div>

<div id="classHeader">
<table class="header-table">
<tr class="top-aligned-row">
<td><strong>Class</strong></td>
<td class="class-name-in-header">Redland::Model</td>
</tr>
<tr class="top-aligned-row">
<td><strong>In:</strong></td>
<td><a href="../../files/rdf/redland/model_rb.html">rdf/redland/model.rb</a><br /></td>
</tr>
<tr class="top-aligned-row">
<td><strong>Parent:</strong></td>
<td>Object</td>
</tr>
</table>
</div>
<!-- banner header -->
<div id="bodyContent">
<div id="contextContent"></div>
<div id="method-list">
<h3 class="section-bar">Methods</h3>
<div class="name-list"><a href="#M000048">add</a>&nbsp;&nbsp; <a href="#M000047">add_statement</a>&nbsp;&nbsp; <a href="#M000049">add_statements</a>&nbsp;&nbsp; <a href="#M000056">as_stream</a>&nbsp;&nbsp; <a href="#M000067">contexts</a>&nbsp;&nbsp; <a href="#M000043">create_finalizer</a>&nbsp;&nbsp; <a href="#M000044">create_resource</a>&nbsp;&nbsp; <a href="#M000052">delete</a>&nbsp;&nbsp; <a href="#M000053">delete_context</a>&nbsp;&nbsp; <a href="#M000051">delete_statement</a>&nbsp;&nbsp; <a href="#M000069">dump_model</a>&nbsp;&nbsp; <a href="#M000060">find</a>&nbsp;&nbsp; <a href="#M000045">get_resource</a>&nbsp;&nbsp; <a href="#M000055">include?</a>&nbsp;&nbsp; <a href="#M000054">include_statement?</a>&nbsp;&nbsp; <a href="#M000074">load</a>&nbsp;&nbsp; <a href="#M000042">new</a>&nbsp;&nbsp; <a href="#M000062">object</a>&nbsp;&nbsp; <a href="#M000070">parse_and_merge</a>&nbsp;&nbsp; <a href="#M000065">predicates</a>&nbsp;&nbsp; <a href="#M000072">query_execute</a>&nbsp;&nbsp;
<a href="#M000071">rewrite</a>&nbsp;&nbsp; <a href="#M000068">save</a>&nbsp;&nbsp; <a href="#M000046">size</a>&nbsp;&nbsp; <a href="#M000050">smush</a>&nbsp;&nbsp; <a href="#M000061">statement_array_or_yield</a>&nbsp;&nbsp; <a href="#M000058">statements</a>&nbsp;&nbsp; <a href="#M000064">subject</a>&nbsp;&nbsp; <a href="#M000063">subjects</a>&nbsp;&nbsp; <a href="#M000073">to_string</a>&nbsp;&nbsp; <a href="#M000057">triples</a>&nbsp;&nbsp; <a href="#M000059">triples_with_context</a>&nbsp;&nbsp; <a href="#M000066">yield_node_or_array</a>&nbsp;&nbsp;</div>
</div>
</div>
<!-- if includes -->
<div id="includes">
<h3 class="section-bar">Included Modules</h3>
<div id="includes-list"><span class="include-name"><a href="Util.html">Util</a></span></div>
</div>
<div id="section">
<div id="attribute-list">
<h3 class="section-bar">Attributes</h3>
<div class="name-list">
<table>
<tr class="top-aligned-row context-row">
<td class="context-item-name">model</td>
<td class="context-item-value">&nbsp;[R]&nbsp;</td>
<td class="context-item-desc"></td>
</tr>
</table>
</div>
</div>
<!-- if method_list -->
<div id="methods">
<h3 class="section-bar">Public Class methods</h3>
<div id="method-M000043" class="method-detail"><a name="M000043" id="M000043"></a>
<div class="method-heading"><a href="#M000043" class="method-signature"><span class="method-name">create_finalizer</span><span class="method-args">(model)</span></a></div>
<div class="method-description">
<p>You shouldn&lsquo;t use this. Used internally for cleanup.</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000043-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 27</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Model</span>.<span class="ruby-identifier">create_finalizer</span>(<span class="ruby-identifier">model</span>)
      <span class="ruby-identifier">proc</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">id</span><span class="ruby-operator">|</span> <span class="ruby-node">"Finalizer on #{id}"</span>
        <span class="ruby-comment cmt">#$log_final.info "closing model"</span>
        <span class="ruby-constant">Redland</span><span class="ruby-operator">::</span><span class="ruby-identifier">librdf_free_model</span>(<span class="ruby-identifier">model</span>)
      }
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000042" class="method-detail"><a name="M000042" id="M000042"></a>
<div class="method-heading"><a href="#M000042" class="method-signature"><span class="method-name">new</span><span class="method-args">(store=nil)</span></a></div>
<div class="method-description">
<p>Constructor - takes an optional argument store, which should be one of the storage classes (all derived from <a href="TripleStore.html">TripleStore</a>)</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000042-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 17</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">store</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-ivar">@statements</span> = []
      <span class="ruby-identifier">store</span> = <span class="ruby-constant">MemoryStore</span>.<span class="ruby-identifier">new</span>() <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">store</span>
      <span class="ruby-ivar">@model</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_new_model</span>(<span class="ruby-identifier">$world</span>.<span class="ruby-identifier">world</span>,<span class="ruby-identifier">store</span>.<span class="ruby-identifier">store</span>,<span class="ruby-value str">""</span>)
      <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Creating new Model failed"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@model</span>
      <span class="ruby-ivar">@store</span> = <span class="ruby-identifier">store</span>
      <span class="ruby-constant">ObjectSpace</span>.<span class="ruby-identifier">define_finalizer</span>(<span class="ruby-keyword kw">self</span>,<span class="ruby-constant">Model</span>.<span class="ruby-identifier">create_finalizer</span>(<span class="ruby-ivar">@model</span>))
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<h3 class="section-bar">Public Instance methods</h3>
<div id="method-M000048" class="method-detail"><a name="M000048" id="M000048"></a>
<div class="method-heading"><a href="#M000048" class="method-signature"><span class="method-name">add</span><span class="method-args">(subject,predicate,object,context=nil)</span></a></div>
<div class="method-description">
<p>Add the <a href="Model.html#M000057">triples</a> (s,p,o) to the model with the optional context</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000048-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 71</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">subject</span>,<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">object</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">my_statement</span> = <span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">subject</span>,<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">object</span>)
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">my_statement</span>,<span class="ruby-identifier">context</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000047" class="method-detail"><a name="M000047" id="M000047"></a>
<div class="method-heading"><a href="#M000047" class="method-signature"><span class="method-name">add_statement</span><span class="method-args">(statement,context=nil)</span></a></div>
<div class="method-description">
<p>Add the <a href="Statement.html">Statement</a> to the <a href="Model.html">Model</a> with optional context <a href="Node.html">Node</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000047-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 60</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">statement</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
        <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Cannot make a Node from an object of #{context.class}"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">context</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_add_statement</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">context</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_add_statement</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000049" class="method-detail"><a name="M000049" id="M000049"></a>
<div class="method-heading"><a href="#M000049" class="method-signature"><span class="method-name">add_statements</span><span class="method-args">(statement_stream,context=nil)</span></a></div>
<div class="method-description">
<p>Add the <a href="Stream.html">Stream</a> of Statements to the <a href="Model.html">Model</a> with optional context <a href="Node.html">Node</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000049-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 78</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_statements</span>(<span class="ruby-identifier">statement_stream</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
        <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Cannot make a Node from an object of #{context.class}"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">context</span>
        <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_add_statements</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">context</span>,<span class="ruby-identifier">statement_stream</span>.<span class="ruby-identifier">stream</span>)
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_add_statements</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement_stream</span>.<span class="ruby-identifier">stream</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000056" class="method-detail"><a name="M000056" id="M000056"></a>
<div class="method-heading"><a href="#M000056" class="method-signature"><span class="method-name">as_stream</span><span class="method-args">(context=nil)</span></a></div>
<div class="method-description">
<p>list the model contents as a stream of <a href="Model.html#M000058">statements</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000056-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 188</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
        <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Cannot make a Node from an object of #{context.class}"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">my_stream</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_as_stream</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-identifier">my_stream</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_as_stream</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Stream</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_stream</span>,<span class="ruby-keyword kw">self</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000067" class="method-detail"><a name="M000067" id="M000067"></a>
<div class="method-heading"><a href="#M000067" class="method-signature"><span class="method-name">contexts</span><span class="method-args">() {|iterator.current| ...}</span></a></div>
<div class="method-description">
<p>yield the <a href="Model.html#M000067">contexts</a> defined in the model. If the store wasn&lsquo;t set up for <a href="Model.html#M000067">contexts</a> raises a <a href="RedlandError.html">RedlandError</a>. If no block_given returns an array of the <a href="Model.html#M000067">contexts</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000067-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000067-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 352</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">contexts</span>()
      <span class="ruby-identifier">my_iterator</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_get_contexts</span>(<span class="ruby-ivar">@model</span>)
      <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Unable to create iterator for contexts"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_iterator</span>
      <span class="ruby-identifier">iterator</span>= <span class="ruby-constant">NodeIterator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_iterator</span>,<span class="ruby-keyword kw">self</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
        <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
        <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-identifier">context_array</span> = []
        <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
          <span class="ruby-identifier">context_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
        <span class="ruby-keyword kw">end</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">context_array</span>
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000044" class="method-detail"><a name="M000044" id="M000044"></a>
<div class="method-heading"><a href="#M000044" class="method-signature"><span class="method-name">create_resource</span><span class="method-args">(str=nil,context=nil)</span></a></div>
<div class="method-description">
<p>create a resource for this model. The str can be a String, or a <a href="Uri.html">Redland::Uri</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000044-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 36</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_resource</span>(<span class="ruby-identifier">str</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">resource</span> = <span class="ruby-constant">Resource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">str</span>,<span class="ruby-keyword kw">self</span>,<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">set_context</span>(<span class="ruby-constant">Resource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">context</span>))
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">resource</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000052" class="method-detail"><a name="M000052" id="M000052"></a>
<div class="method-heading"><a href="#M000052" class="method-signature"><span class="method-name">delete</span><span class="method-args">(s,p,o,context=nil)</span></a></div>
<div class="method-description">
<p>Remove the statement made of the <a href="Model.html#M000057">triples</a> (s,p,o) with the optional context <a href="Node.html">Node</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000052-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 156</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-keyword kw">if</span> [<span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span>].<span class="ruby-identifier">all?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> }
        <span class="ruby-identifier">statement</span> = <span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span>)
        <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete_statement</span>(<span class="ruby-identifier">statement</span>,<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span>,<span class="ruby-identifier">context</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ds</span>, <span class="ruby-identifier">dp</span>, <span class="ruby-identifier">d_o</span><span class="ruby-operator">|</span>
          <span class="ruby-identifier">st</span> = <span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ds</span>, <span class="ruby-identifier">dp</span>, <span class="ruby-identifier">d_o</span>)
          <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">p</span> <span class="ruby-identifier">st</span>
          <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete_statement</span>(<span class="ruby-identifier">st</span>, <span class="ruby-identifier">context</span>)
        <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000053" class="method-detail"><a name="M000053" id="M000053"></a>
<div class="method-heading"><a href="#M000053" class="method-signature"><span class="method-name">delete_context</span><span class="method-args">(context)</span></a></div>
<div class="method-description">
<p>Remove the Statements from the <a href="Model.html">Model</a> with the given context <a href="Node.html">Node</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000053-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 170</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_context</span>(<span class="ruby-identifier">context</span>)
      <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
      <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Cannot make a Node from an object of #{context.class}"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">context</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_remove_statements</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">context</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000051" class="method-detail"><a name="M000051" id="M000051"></a>
<div class="method-heading"><a href="#M000051" class="method-signature"><span class="method-name">delete_statement</span><span class="method-args">(statement,context=nil)</span></a></div>
<div class="method-description">
<p>Remove the <a href="Statement.html">Statement</a> from the <a href="Model.html">Model</a> with the optional context <a href="Node.html">Node</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000051-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 145</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_statement</span>(<span class="ruby-identifier">statement</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
        <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Cannot make a Node from an object of #{context.class}"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">context</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_remove_statement</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">context</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_remove_statement</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000069" class="method-detail"><a name="M000069" id="M000069"></a>
<div class="method-heading"><a href="#M000069" class="method-signature"><span class="method-name">dump_model</span><span class="method-args">(context=nil)</span></a></div>
<div class="method-description">
<p>a screen dump of the <a href="Model.html#M000057">triples</a>, if context is included a screen dump of the <a href="Model.html#M000057">triples</a> for the given context</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000069-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 380</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump_model</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">triples</span>(<span class="ruby-identifier">context</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span><span class="ruby-operator">|</span> <span class="ruby-identifier">puts</span> <span class="ruby-node">"#{s}:#{p}:#{o}"</span>}
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000060" class="method-detail"><a name="M000060" id="M000060"></a>
<div class="method-heading"><a href="#M000060" class="method-signature"><span class="method-name">find</span><span class="method-args">(s=nil,p=nil,o=nil,context=nil) {|my_statement.subject,my_statement.predicate,my_statement.object| ...}</span></a></div>
<div class="method-description">
<p><a href="Model.html#M000060">find</a> the <a href="Model.html#M000058">statements</a> matching the given triple. The <a href="Model.html#M000057">triples</a> can be nil</p>
<p>Find all <a href="Model.html#M000057">triples</a> with <a href="../FOAF.html">FOAF</a>[&lsquo;firstName&rsquo;] of Dominic</p>
<pre>
  model.find(nil,FOAF['firstName'],'Dominic Sisneros'){|s,p,o ...}
</pre>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000060-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 238</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">s</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">p</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">o</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">statement</span> = <span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span>,<span class="ruby-keyword kw">self</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
        <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Cannot make a Node from an object of #{context.class}"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">context</span>
        <span class="ruby-identifier">my_stream</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_find_statements_in_context</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>,<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-identifier">my_stream</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_find_statements</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">my_stream</span>      
      <span class="ruby-identifier">stream</span> = <span class="ruby-constant">Stream</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_stream</span>,<span class="ruby-keyword kw">self</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
        <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
          <span class="ruby-identifier">my_statement</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">my_statement</span>.<span class="ruby-identifier">subject</span>,<span class="ruby-identifier">my_statement</span>.<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">my_statement</span>.<span class="ruby-identifier">object</span>
          <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
        <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt">#block not given</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_statement_array</span>(<span class="ruby-identifier">stream</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000045" class="method-detail"><a name="M000045" id="M000045"></a>
<div class="method-heading"><a href="#M000045" class="method-signature"><span class="method-name">get_resource</span><span class="method-args">(arg)</span></a></div>
<div class="method-description">
<p>get a resource given by str. If arg is a string it will create a <a href="Resource.html">Resource</a> from it.</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000045-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 46</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_resource</span>(<span class="ruby-identifier">arg</span>)
      <span class="ruby-identifier">res</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find</span>(<span class="ruby-constant">Resource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">arg</span>),<span class="ruby-keyword kw">nil</span>,<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-keyword kw">return</span> (<span class="ruby-identifier">res</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">res</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">nil?</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">res</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">subject</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000055" class="method-detail"><a name="M000055" id="M000055"></a>
<div class="method-heading"><a href="#M000055" class="method-signature"><span class="method-name">include?</span><span class="method-args">(s,p,o)</span></a></div>
<div class="method-description">
<p>Returns true if the given Triple is in the model</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000055-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 182</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span>)
      <span class="ruby-identifier">statement</span> = <span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">p</span>,<span class="ruby-identifier">o</span>)
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">include_statement?</span>(<span class="ruby-identifier">statement</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000054" class="method-detail"><a name="M000054" id="M000054"></a>
<div class="method-heading"><a href="#M000054" class="method-signature"><span class="method-name">include_statement?</span><span class="method-args">(statement)</span></a></div>
<div class="method-description">
<p>Returns true if the <a href="Statement.html">Statement</a> is in the <a href="Model.html">Model</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000054-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 177</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include_statement?</span>(<span class="ruby-identifier">statement</span>)
      <span class="ruby-keyword kw">return</span> (<span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_contains_statement</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000074" class="method-detail"><a name="M000074" id="M000074"></a>
<div class="method-heading"><a href="#M000074" class="method-signature"><span class="method-name">load</span><span class="method-args">(uri, name="", mime_type="", type_uri=nil)</span></a></div>
<div class="method-description">
<p><a class="source-toggle" href="#" onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000074-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 433</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">name</span>=<span class="ruby-value str">""</span>, <span class="ruby-identifier">mime_type</span>=<span class="ruby-value str">""</span>, <span class="ruby-identifier">type_uri</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">ruri</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">uri</span>
      <span class="ruby-identifier">rtype_uri</span> = <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">uri</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_load</span>(<span class="ruby-ivar">@model</span>, <span class="ruby-identifier">ruri</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">mime_type</span>, <span class="ruby-identifier">rtype_uri</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000062" class="method-detail"><a name="M000062" id="M000062"></a>
<div class="method-heading"><a href="#M000062" class="method-signature"><span class="method-name">object</span><span class="method-args">(source,predicate)</span></a></div>
<div class="method-description">
<p>Return one <a href="Node.html">Node</a> in the <a href="Model.html">Model</a> matching (source, predicate,?) The source and predicate can be a <a href="Node.html">Node</a> or <a href="Uri.html">Uri</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000062-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 266</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">object</span>(<span class="ruby-identifier">source</span>,<span class="ruby-identifier">predicate</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">source</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">source</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">source</span>) <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">predicate</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">predicate</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">predicate</span>) <span class="ruby-keyword kw">end</span>
      <span class="ruby-identifier">my_node</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_get_target</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">source</span>.<span class="ruby-identifier">node</span>,<span class="ruby-identifier">predicate</span>.<span class="ruby-identifier">node</span>)
      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">my_node</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Literal</span>.<span class="ruby-identifier">from_node</span>(<span class="ruby-identifier">my_node</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_literal?</span>(<span class="ruby-identifier">my_node</span>)
      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Resource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_node</span>,<span class="ruby-keyword kw">self</span>,<span class="ruby-keyword kw">false</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000070" class="method-detail"><a name="M000070" id="M000070"></a>
<div class="method-heading"><a href="#M000070" class="method-signature"><span class="method-name">parse_and_merge</span><span class="method-args">(parser,uri,predlist,context=uri,st=nil)</span></a></div>
<div class="method-description">
<p>parser the file with the given parser and uri and smushes the file with the model on the <a href="Model.html#M000058">statements</a> with the given predlist</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000070-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 387</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_and_merge</span>(<span class="ruby-identifier">parser</span>,<span class="ruby-identifier">uri</span>,<span class="ruby-identifier">predlist</span>,<span class="ruby-identifier">context</span>=<span class="ruby-identifier">uri</span>,<span class="ruby-identifier">st</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">context</span> = <span class="ruby-constant">Uri</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">context</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>
      <span class="ruby-identifier">temp_model</span> = <span class="ruby-constant">MergedModel</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">st</span>
        <span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">st</span>)
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">parse_as_stream</span>(<span class="ruby-identifier">uri</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span><span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">s</span>)}
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">find_canonical</span>(<span class="ruby-identifier">predlist</span>)
      <span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">global_rewrites</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
        <span class="ruby-identifier">print</span> <span class="ruby-value str">"***** GLOBAL REWRITES UNDERWAY ***"</span>
        <span class="ruby-comment cmt">#self.rewrite(temp_model.global_rewrites)</span>
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000065" class="method-detail"><a name="M000065" id="M000065"></a>
<div class="method-heading"><a href="#M000065" class="method-signature"><span class="method-name">predicates</span><span class="method-args">(source,target) {|iterator.current| ...}</span></a></div>
<div class="method-description">
<p>Return an array of Predicate Nodes in the <a href="Model.html">Model</a> matching (<a href="Model.html#M000064">subject</a>,?,target) The <a href="Model.html#M000064">subject</a> and target can be a <a href="Node.html">Node</a> or <a href="Uri.html">Uri</a> If block_given? yields the Subject <a href="Node.html">Node</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000065-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000065-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 317</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">predicates</span>(<span class="ruby-identifier">source</span>,<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">source</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span>
        <span class="ruby-identifier">source</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">source</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
        <span class="ruby-identifier">target</span> =<span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-identifier">my_iterator</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_get_arcs</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">source</span>.<span class="ruby-identifier">node</span>,<span class="ruby-identifier">target</span>.<span class="ruby-identifier">node</span>)
      <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"unable to create iterator"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_iterator</span>
      <span class="ruby-identifier">iterator</span> = <span class="ruby-constant">NodeIterator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_iterator</span>,<span class="ruby-keyword kw">self</span>,<span class="ruby-identifier">source</span>,<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>    
        <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
        <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">else</span> 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000072" class="method-detail"><a name="M000072" id="M000072"></a>
<div class="method-heading"><a href="#M000072" class="method-signature"><span class="method-name">query_execute</span><span class="method-args">(query)</span></a></div>
<div class="method-description">
<p>execute a query</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000072-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 416</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_execute</span>(<span class="ruby-identifier">query</span>)
      <span class="ruby-identifier">results</span>=<span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_query_execute</span>(<span class="ruby-ivar">@model</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">query</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">results</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-constant">QueryResults</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">results</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000071" class="method-detail"><a name="M000071" id="M000071"></a>
<div class="method-heading"><a href="#M000071" class="method-signature"><span class="method-name">rewrite</span><span class="method-args">(change_hash)</span></a></div>
<div class="method-description">
<p>clears the transactions (?? confirm)</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000071-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 404</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">change_hash</span>)
      <span class="ruby-identifier">transactions</span> = []
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000068" class="method-detail"><a name="M000068" id="M000068"></a>
<div class="method-heading"><a href="#M000068" class="method-signature"><span class="method-name">save</span><span class="method-args">(filename)</span></a></div>
<div class="method-description">
<p>saves this model to the specified filename</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000068-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 373</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save</span>(<span class="ruby-identifier">filename</span>)
      <span class="ruby-identifier">serializer</span> = <span class="ruby-constant">Serializer</span>.<span class="ruby-identifier">new</span>()
      <span class="ruby-identifier">serializer</span>.<span class="ruby-identifier">to_file</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-keyword kw">self</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000046" class="method-detail"><a name="M000046" id="M000046"></a>
<div class="method-heading"><a href="#M000046" class="method-signature"><span class="method-name">size</span><span class="method-args">()</span></a></div>
<div class="method-description">
<p>Return the <a href="Model.html#M000046">size</a> of the Storage <a href="Model.html">Model</a>. Raises a redland error if the model has non countable storage</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000046-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 53</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">size</span>()
      <span class="ruby-identifier">s</span> = <span class="ruby-identifier">get_size</span>()
      <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Attempt to get size when using non-countable storage"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000050" class="method-detail"><a name="M000050" id="M000050"></a>
<div class="method-heading"><a href="#M000050" class="method-signature"><span class="method-name">smush</span><span class="method-args">(pred)</span></a></div>
<div class="method-description">
<p>Effectively removes a Predicate from the <a href="Model.html">Model</a> by replacing all occurrences with a blank node (?? confirm)</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000050-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 90</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">smush</span>(<span class="ruby-identifier">pred</span>)
      <span class="ruby-identifier">identifying_hash</span> = {}
      <span class="ruby-identifier">canonical</span> = {}
      <span class="ruby-identifier">mapme</span> = []
      <span class="ruby-identifier">transactions</span> = []
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find</span>(<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-keyword kw">nil</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">sub</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span><span class="ruby-operator">|</span>
        <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">identifying_hash</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>)
          <span class="ruby-identifier">identifying_hash</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">sub</span>
        <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">identifying_hash</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">sub</span>
          <span class="ruby-identifier">subject_string</span> = <span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>
          <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">subject_string</span>)
            <span class="ruby-comment cmt"># print "amodule Rdf dding mapping: ",subject_string,"---&gt;",identifying_hash[obj.to_s]</span>
            <span class="ruby-identifier">canonical</span>[<span class="ruby-identifier">subject_string</span>] = <span class="ruby-identifier">identifying_hash</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>]
            <span class="ruby-identifier">mapme</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sub</span>)
          <span class="ruby-keyword kw">end</span>
        <span class="ruby-keyword kw">end</span>
      }
      
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">triples</span>(){ <span class="ruby-operator">|</span><span class="ruby-identifier">sub</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span><span class="ruby-operator">|</span> 
        <span class="ruby-identifier">ss</span> = <span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>
        <span class="ruby-identifier">os</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>
        <span class="ruby-identifier">new_statement</span> = <span class="ruby-keyword kw">nil</span>
        <span class="ruby-identifier">replace</span> = <span class="ruby-keyword kw">false</span>

        <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">ss</span>)
          <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">replace</span>
            <span class="ruby-identifier">new_statement</span> = <span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sub</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>)
            <span class="ruby-identifier">replace</span> = <span class="ruby-value">1</span>
          <span class="ruby-keyword kw">end</span>
          <span class="ruby-identifier">new_statement</span>.<span class="ruby-identifier">subject</span> = <span class="ruby-identifier">canonical</span>[<span class="ruby-identifier">ss</span>]
        <span class="ruby-keyword kw">end</span>
        <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">os</span>)
          <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">replace</span>
            <span class="ruby-identifier">new_statement</span> = <span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sub</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>)
            <span class="ruby-identifier">replace</span> = <span class="ruby-value">1</span>
            <span class="ruby-identifier">new_statement</span>.<span class="ruby-identifier">object</span> = <span class="ruby-identifier">canonical</span>[<span class="ruby-identifier">os</span>]
          <span class="ruby-keyword kw">end</span>
        <span class="ruby-keyword kw">end</span>
        
        <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">replace</span>
          
          <span class="ruby-identifier">transactions</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sub</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>),<span class="ruby-identifier">new_statement</span>]
        <span class="ruby-keyword kw">end</span>
      }

      
      <span class="ruby-identifier">transactions</span>.<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">pair</span><span class="ruby-operator">|</span>
        <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete_statement</span>(<span class="ruby-identifier">pair</span>[<span class="ruby-value">0</span>])
        <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">pair</span>[<span class="ruby-value">1</span>])
      }
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000061" class="method-detail"><a name="M000061" id="M000061"></a>
<div class="method-heading"><a href="#M000061" class="method-signature"><span class="method-name">statement_array_or_yield</span><span class="method-args">(stream)</span></a></div>
<div class="method-description">
<p><a class="source-toggle" href="#" onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000061-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 260</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">statement_array_or_yield</span>(<span class="ruby-identifier">stream</span>)
      
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000058" class="method-detail"><a name="M000058" id="M000058"></a>
<div class="method-heading"><a href="#M000058" class="method-signature"><span class="method-name">statements</span><span class="method-args">(context = nil) {|stream.current| ...}</span></a></div>
<div class="method-description">
<p>Yield the <a href="Model.html#M000058">statements</a> if a block is given.</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000058-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000058-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 216</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">statements</span>(<span class="ruby-identifier">context</span> = <span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">stream</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
        <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
        <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000064" class="method-detail"><a name="M000064" id="M000064"></a>
<div class="method-heading"><a href="#M000064" class="method-signature"><span class="method-name">subject</span><span class="method-args">(predicate,target)</span></a></div>
<div class="method-description">
<p>Return one <a href="Node.html">Node</a> in the <a href="Model.html">Model</a> matching (?,predicate,target) The source and predicate can be a <a href="Node.html">Node</a> or <a href="Uri.html">Uri</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000064-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000064-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 301</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subject</span>(<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">predicate</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span>
        <span class="ruby-identifier">predicate</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">predicate</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
        <span class="ruby-identifier">target</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-identifier">my_node</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_get_source</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">predicate</span>.<span class="ruby-identifier">node</span>,<span class="ruby-identifier">target</span>.<span class="ruby-identifier">node</span>)
      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_node</span>
      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Literal</span>.<span class="ruby-identifier">from_node</span>(<span class="ruby-identifier">my_node</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_literal?</span>(<span class="ruby-identifier">my_node</span>)
      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Resource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_node</span>,<span class="ruby-keyword kw">self</span>,<span class="ruby-keyword kw">false</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000063" class="method-detail"><a name="M000063" id="M000063"></a>
<div class="method-heading"><a href="#M000063" class="method-signature"><span class="method-name">subjects</span><span class="method-args">(predicate,target) {|iterator.current| ...}</span></a></div>
<div class="method-description">
<p>Return an array of Subject Nodes in the <a href="Model.html">Model</a> matching (?,predicate,target) The predicate and target can be a <a href="Node.html">Node</a> or <a href="Uri.html">Uri</a> If block_given? yields the Subject <a href="Node.html">Node</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000063-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000063-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 278</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subjects</span>(<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">predicate</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span>
        <span class="ruby-identifier">predicate</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">predicate</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Uri</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
        <span class="ruby-identifier">target</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">end</span>
      <span class="ruby-identifier">my_iterator</span> = <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_get_sources</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">predicate</span>.<span class="ruby-identifier">node</span>,<span class="ruby-identifier">target</span>.<span class="ruby-identifier">node</span>)
      <span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Unable to create iterator"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_iterator</span>
      <span class="ruby-identifier">iterator</span> = <span class="ruby-constant">NodeIterator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_iterator</span>,<span class="ruby-keyword kw">self</span>,<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
        <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
        <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
      <span class="ruby-keyword kw">end</span>

    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000073" class="method-detail"><a name="M000073" id="M000073"></a>
<div class="method-heading"><a href="#M000073" class="method-signature"><span class="method-name">to_string</span><span class="method-args">(name="", base_uri=nil, mime_type="", type_uri=nil)</span></a></div>
<div class="method-description">
<p>Serialize the <a href="Model.html">Model</a> to a syntax</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000073-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 426</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_string</span>(<span class="ruby-identifier">name</span>=<span class="ruby-value str">""</span>, <span class="ruby-identifier">base_uri</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">mime_type</span>=<span class="ruby-value str">""</span>, <span class="ruby-identifier">type_uri</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">rbase_uri</span> = <span class="ruby-identifier">base_uri</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">base_uri</span>.<span class="ruby-identifier">uri</span>
      <span class="ruby-identifier">rtype_uri</span> = <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">uri</span>

      <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_to_string</span>(<span class="ruby-ivar">@model</span>, <span class="ruby-identifier">rbase_uri</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">mime_type</span>, <span class="ruby-identifier">rtype_uri</span>)
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000057" class="method-detail"><a name="M000057" id="M000057"></a>
<div class="method-heading"><a href="#M000057" class="method-signature"><span class="method-name">triples</span><span class="method-args">(context=nil) {|stream.current.subject ,stream.current.predicate,stream.current.object| ...}</span></a></div>
<div class="method-description">
<p>Yield the <a href="Model.html#M000057">triples</a> <a href="Model.html#M000064">subject</a>, predicate, and <a href="Model.html#M000062">object</a> if a block is given. Otherwise return an array of the <a href="Model.html#M000058">statements</a></p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000057-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 202</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">triples</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">stream</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">stream</span>
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
        <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>.<span class="ruby-identifier">subject</span> ,<span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>.<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>.<span class="ruby-identifier">object</span>
          <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
        <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">else</span>
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_statement_array</span>(<span class="ruby-identifier">stream</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000059" class="method-detail"><a name="M000059" id="M000059"></a>
<div class="method-heading"><a href="#M000059" class="method-signature"><span class="method-name">triples_with_context</span><span class="method-args">(context=nil) {|statement.subject, statement.predicate, statement.object, stream.context| ...}</span></a></div>
<div class="method-description">
<p>Yield the <a href="Model.html#M000057">triples</a> as well as the context</p>
<p><a class="source-toggle" href="#" onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000059-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 225</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">triples_with_context</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
      <span class="ruby-identifier">stream</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>)
      <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
        <span class="ruby-identifier">statement</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
        <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">statement</span>.<span class="ruby-identifier">subject</span>, <span class="ruby-identifier">statement</span>.<span class="ruby-identifier">predicate</span>, <span class="ruby-identifier">statement</span>.<span class="ruby-identifier">object</span>, <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">context</span>
        <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
<div id="method-M000066" class="method-detail"><a name="M000066" id="M000066"></a>
<div class="method-heading"><a href="#M000066" class="method-signature"><span class="method-name">yield_node_or_array</span><span class="method-args">(iterator) {|iterator.current| ...}</span></a></div>
<div class="method-description">
<p><a class="source-toggle" href="#" onclick="toggleCode('M000066-source');return false;">[Source]</a></p>
<div class="method-source-code" id="M000066-source">
<pre>
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 337</span>
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yield_node_or_array</span>(<span class="ruby-identifier">iterator</span>)
      <span class="ruby-identifier">iterator</span> = <span class="ruby-constant">NodeIterator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">my_iterator</span>,<span class="ruby-keyword kw">self</span>,<span class="ruby-identifier">source</span>,<span class="ruby-identifier">target</span>)
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>    
        <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
        <span class="ruby-keyword kw">end</span>
      <span class="ruby-keyword kw">else</span> 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
      <span class="ruby-keyword kw">end</span>
    <span class="ruby-keyword kw">end</span>
</pre></div>
</div>
</div>
</div>
</div>
<hr />

<div class="outerHeader">
Go to <a href="/" target="_parent">Redland Home</a> - 
<a href="/bindings/" target="_parent">Language Bindings Home</a> - 
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
</div>

<p>(C) Copyright 2004-2011 <a href="http://www.dajobe.org/" target="_parent">Dave Beckett</a>, (C) Copyright 2004-2005 <a href="http://www.bristol.ac.uk/" target="_parent">University of Bristol</a></p>

</div> <!-- end outerBlock -->

</body>
</html>