~ubuntu-branches/debian/sid/redland-bindings/sid

« back to all changes in this revision

Viewing changes to docs/rdoc/classes/Redland/Model.html

  • Committer: Package Import Robot
  • Author(s): Dave Beckett
  • Date: 2013-01-22 16:03:44 UTC
  • mfrom: (0.1.10)
  • Revision ID: package-import@ubuntu.com-20130122160344-vxrnfl0xynfzbze7
Tags: 1.0.16.1-1
* New upstream release
* Add dpkg-buildflags to configure for hardening

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0" encoding="utf-8"?>
2
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
 
<head>
6
 
<title>Redland RDF Application Framework - Ruby RDoc - Class: Redland::Model</title>
7
 
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
8
 
<script type="text/javascript">
9
 
  // <![CDATA[
10
 
 
11
 
  function popupCode( url ) {
12
 
    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
13
 
  }
14
 
 
15
 
  function toggleCode( id ) {
16
 
    if ( document.getElementById )
17
 
      elem = document.getElementById( id );
18
 
    else if ( document.all )
19
 
      elem = eval( "document.all." + id );
20
 
    else
21
 
      return false;
22
 
 
23
 
    elemStyle = elem.style;
24
 
    
25
 
    if ( elemStyle.display != "block" ) {
26
 
      elemStyle.display = "block"
27
 
    } else {
28
 
      elemStyle.display = "none"
29
 
    }
30
 
 
31
 
    return true;
32
 
  }
33
 
  
34
 
  // Make codeblocks hidden by default
35
 
  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
36
 
  
37
 
  // ]]>
38
 
</script>
39
 
</head>
40
 
<body>
41
 
<div class="outerBlock">
42
 
 
43
 
<div class="outerHeader">
44
 
Go to <a href="/" target="_parent">Redland Home</a> - 
45
 
<a href="/bindings/" target="_parent">Language Bindings Home</a> - 
46
 
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
47
 
</div>
48
 
 
49
 
<div id="classHeader">
50
 
<table class="header-table">
51
 
<tr class="top-aligned-row">
52
 
<td><strong>Class</strong></td>
53
 
<td class="class-name-in-header">Redland::Model</td>
54
 
</tr>
55
 
<tr class="top-aligned-row">
56
 
<td><strong>In:</strong></td>
57
 
<td><a href="../../files/rdf/redland/model_rb.html">rdf/redland/model.rb</a><br /></td>
58
 
</tr>
59
 
<tr class="top-aligned-row">
60
 
<td><strong>Parent:</strong></td>
61
 
<td>Object</td>
62
 
</tr>
63
 
</table>
64
 
</div>
65
 
<!-- banner header -->
66
 
<div id="bodyContent">
67
 
<div id="contextContent"></div>
68
 
<div id="method-list">
69
 
<h3 class="section-bar">Methods</h3>
70
 
<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;
71
 
<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>
72
 
</div>
73
 
</div>
74
 
<!-- if includes -->
75
 
<div id="includes">
76
 
<h3 class="section-bar">Included Modules</h3>
77
 
<div id="includes-list"><span class="include-name"><a href="Util.html">Util</a></span></div>
78
 
</div>
79
 
<div id="section">
80
 
<div id="attribute-list">
81
 
<h3 class="section-bar">Attributes</h3>
82
 
<div class="name-list">
83
 
<table>
84
 
<tr class="top-aligned-row context-row">
85
 
<td class="context-item-name">model</td>
86
 
<td class="context-item-value">&nbsp;[R]&nbsp;</td>
87
 
<td class="context-item-desc"></td>
88
 
</tr>
89
 
</table>
90
 
</div>
91
 
</div>
92
 
<!-- if method_list -->
93
 
<div id="methods">
94
 
<h3 class="section-bar">Public Class methods</h3>
95
 
<div id="method-M000043" class="method-detail"><a name="M000043" id="M000043"></a>
96
 
<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>
97
 
<div class="method-description">
98
 
<p>You shouldn&lsquo;t use this. Used internally for cleanup.</p>
99
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
100
 
<div class="method-source-code" id="M000043-source">
101
 
<pre>
102
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 27</span>
103
 
    <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>)
104
 
      <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>
105
 
        <span class="ruby-comment cmt">#$log_final.info "closing model"</span>
106
 
        <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>)
107
 
      }
108
 
    <span class="ruby-keyword kw">end</span>
109
 
</pre></div>
110
 
</div>
111
 
</div>
112
 
<div id="method-M000042" class="method-detail"><a name="M000042" id="M000042"></a>
113
 
<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>
114
 
<div class="method-description">
115
 
<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>
116
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
117
 
<div class="method-source-code" id="M000042-source">
118
 
<pre>
119
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 17</span>
120
 
    <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>)
121
 
      <span class="ruby-ivar">@statements</span> = []
122
 
      <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>
123
 
      <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>)
124
 
      <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>
125
 
      <span class="ruby-ivar">@store</span> = <span class="ruby-identifier">store</span>
126
 
      <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>))
127
 
    <span class="ruby-keyword kw">end</span>
128
 
</pre></div>
129
 
</div>
130
 
</div>
131
 
<h3 class="section-bar">Public Instance methods</h3>
132
 
<div id="method-M000048" class="method-detail"><a name="M000048" id="M000048"></a>
133
 
<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>
134
 
<div class="method-description">
135
 
<p>Add the <a href="Model.html#M000057">triples</a> (s,p,o) to the model with the optional context</p>
136
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
137
 
<div class="method-source-code" id="M000048-source">
138
 
<pre>
139
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 71</span>
140
 
    <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>)
141
 
      <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>)
142
 
      <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>)
143
 
    <span class="ruby-keyword kw">end</span>
144
 
</pre></div>
145
 
</div>
146
 
</div>
147
 
<div id="method-M000047" class="method-detail"><a name="M000047" id="M000047"></a>
148
 
<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>
149
 
<div class="method-description">
150
 
<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>
151
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
152
 
<div class="method-source-code" id="M000047-source">
153
 
<pre>
154
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 60</span>
155
 
    <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>)
156
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
157
 
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
158
 
        <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>
159
 
        <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>)
160
 
      <span class="ruby-keyword kw">else</span>
161
 
        <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>)
162
 
      <span class="ruby-keyword kw">end</span>
163
 
    <span class="ruby-keyword kw">end</span>
164
 
</pre></div>
165
 
</div>
166
 
</div>
167
 
<div id="method-M000049" class="method-detail"><a name="M000049" id="M000049"></a>
168
 
<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>
169
 
<div class="method-description">
170
 
<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>
171
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
172
 
<div class="method-source-code" id="M000049-source">
173
 
<pre>
174
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 78</span>
175
 
    <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>)
176
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
177
 
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
178
 
        <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>
179
 
        <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>)
180
 
      <span class="ruby-keyword kw">else</span>
181
 
        <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>)
182
 
      <span class="ruby-keyword kw">end</span>
183
 
    <span class="ruby-keyword kw">end</span>
184
 
</pre></div>
185
 
</div>
186
 
</div>
187
 
<div id="method-M000056" class="method-detail"><a name="M000056" id="M000056"></a>
188
 
<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>
189
 
<div class="method-description">
190
 
<p>list the model contents as a stream of <a href="Model.html#M000058">statements</a></p>
191
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
192
 
<div class="method-source-code" id="M000056-source">
193
 
<pre>
194
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 188</span>
195
 
    <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>)
196
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
197
 
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
198
 
        <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>
199
 
        <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>)
200
 
      <span class="ruby-keyword kw">else</span>
201
 
        <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>)
202
 
      <span class="ruby-keyword kw">end</span>
203
 
      <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>)
204
 
    <span class="ruby-keyword kw">end</span>
205
 
</pre></div>
206
 
</div>
207
 
</div>
208
 
<div id="method-M000067" class="method-detail"><a name="M000067" id="M000067"></a>
209
 
<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>
210
 
<div class="method-description">
211
 
<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>
212
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000067-source');return false;">[Source]</a></p>
213
 
<div class="method-source-code" id="M000067-source">
214
 
<pre>
215
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 352</span>
216
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">contexts</span>()
217
 
      <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>)
218
 
      <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>
219
 
      <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>)
220
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
221
 
        <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>
222
 
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
223
 
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
224
 
        <span class="ruby-keyword kw">end</span>
225
 
      <span class="ruby-keyword kw">else</span>
226
 
        <span class="ruby-identifier">context_array</span> = []
227
 
        <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>
228
 
          <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>
229
 
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
230
 
        <span class="ruby-keyword kw">end</span>
231
 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">context_array</span>
232
 
      <span class="ruby-keyword kw">end</span>
233
 
    <span class="ruby-keyword kw">end</span>
234
 
</pre></div>
235
 
</div>
236
 
</div>
237
 
<div id="method-M000044" class="method-detail"><a name="M000044" id="M000044"></a>
238
 
<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>
239
 
<div class="method-description">
240
 
<p>create a resource for this model. The str can be a String, or a <a href="Uri.html">Redland::Uri</a></p>
241
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
242
 
<div class="method-source-code" id="M000044-source">
243
 
<pre>
244
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 36</span>
245
 
    <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>)
246
 
      <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>)
247
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
248
 
        <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>))
249
 
      <span class="ruby-keyword kw">end</span>
250
 
      <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">resource</span>
251
 
    <span class="ruby-keyword kw">end</span>
252
 
</pre></div>
253
 
</div>
254
 
</div>
255
 
<div id="method-M000052" class="method-detail"><a name="M000052" id="M000052"></a>
256
 
<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>
257
 
<div class="method-description">
258
 
<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>
259
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
260
 
<div class="method-source-code" id="M000052-source">
261
 
<pre>
262
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 156</span>
263
 
    <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>)
264
 
      <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> }
265
 
        <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>)
266
 
        <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>)
267
 
      <span class="ruby-keyword kw">else</span>
268
 
        <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>
269
 
          <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>)
270
 
          <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">p</span> <span class="ruby-identifier">st</span>
271
 
          <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>)
272
 
        <span class="ruby-keyword kw">end</span>
273
 
      <span class="ruby-keyword kw">end</span>
274
 
    <span class="ruby-keyword kw">end</span>
275
 
</pre></div>
276
 
</div>
277
 
</div>
278
 
<div id="method-M000053" class="method-detail"><a name="M000053" id="M000053"></a>
279
 
<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>
280
 
<div class="method-description">
281
 
<p>Remove the Statements from the <a href="Model.html">Model</a> with the given context <a href="Node.html">Node</a></p>
282
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
283
 
<div class="method-source-code" id="M000053-source">
284
 
<pre>
285
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 170</span>
286
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_context</span>(<span class="ruby-identifier">context</span>)
287
 
      <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
288
 
      <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>
289
 
      <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>)
290
 
    <span class="ruby-keyword kw">end</span>
291
 
</pre></div>
292
 
</div>
293
 
</div>
294
 
<div id="method-M000051" class="method-detail"><a name="M000051" id="M000051"></a>
295
 
<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>
296
 
<div class="method-description">
297
 
<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>
298
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
299
 
<div class="method-source-code" id="M000051-source">
300
 
<pre>
301
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 145</span>
302
 
    <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>)
303
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
304
 
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
305
 
        <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>
306
 
        <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>)
307
 
      <span class="ruby-keyword kw">else</span>
308
 
        <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>)
309
 
      <span class="ruby-keyword kw">end</span>
310
 
    <span class="ruby-keyword kw">end</span>
311
 
</pre></div>
312
 
</div>
313
 
</div>
314
 
<div id="method-M000069" class="method-detail"><a name="M000069" id="M000069"></a>
315
 
<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>
316
 
<div class="method-description">
317
 
<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>
318
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
319
 
<div class="method-source-code" id="M000069-source">
320
 
<pre>
321
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 380</span>
322
 
    <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>)
323
 
      <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>}
324
 
    <span class="ruby-keyword kw">end</span>
325
 
</pre></div>
326
 
</div>
327
 
</div>
328
 
<div id="method-M000060" class="method-detail"><a name="M000060" id="M000060"></a>
329
 
<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>
330
 
<div class="method-description">
331
 
<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>
332
 
<p>Find all <a href="Model.html#M000057">triples</a> with <a href="../FOAF.html">FOAF</a>[&lsquo;firstName&rsquo;] of Dominic</p>
333
 
<pre>
334
 
  model.find(nil,FOAF['firstName'],'Dominic Sisneros'){|s,p,o ...}
335
 
</pre>
336
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
337
 
<div class="method-source-code" id="M000060-source">
338
 
<pre>
339
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 238</span>
340
 
    <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>)
341
 
      <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>)
342
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">context</span>
343
 
        <span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
344
 
        <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>
345
 
        <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>)
346
 
      <span class="ruby-keyword kw">else</span>
347
 
        <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>)
348
 
      <span class="ruby-keyword kw">end</span>
349
 
      <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>      
350
 
      <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>)
351
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
352
 
        <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>
353
 
          <span class="ruby-identifier">my_statement</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
354
 
          <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>
355
 
          <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
356
 
        <span class="ruby-keyword kw">end</span>
357
 
      <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt">#block not given</span>
358
 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_statement_array</span>(<span class="ruby-identifier">stream</span>)
359
 
      <span class="ruby-keyword kw">end</span>
360
 
    <span class="ruby-keyword kw">end</span>
361
 
</pre></div>
362
 
</div>
363
 
</div>
364
 
<div id="method-M000045" class="method-detail"><a name="M000045" id="M000045"></a>
365
 
<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>
366
 
<div class="method-description">
367
 
<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>
368
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
369
 
<div class="method-source-code" id="M000045-source">
370
 
<pre>
371
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 46</span>
372
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_resource</span>(<span class="ruby-identifier">arg</span>)
373
 
      <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>)
374
 
      <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>
375
 
    <span class="ruby-keyword kw">end</span>
376
 
</pre></div>
377
 
</div>
378
 
</div>
379
 
<div id="method-M000055" class="method-detail"><a name="M000055" id="M000055"></a>
380
 
<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>
381
 
<div class="method-description">
382
 
<p>Returns true if the given Triple is in the model</p>
383
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
384
 
<div class="method-source-code" id="M000055-source">
385
 
<pre>
386
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 182</span>
387
 
    <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>)
388
 
      <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>)
389
 
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">include_statement?</span>(<span class="ruby-identifier">statement</span>)
390
 
    <span class="ruby-keyword kw">end</span>
391
 
</pre></div>
392
 
</div>
393
 
</div>
394
 
<div id="method-M000054" class="method-detail"><a name="M000054" id="M000054"></a>
395
 
<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>
396
 
<div class="method-description">
397
 
<p>Returns true if the <a href="Statement.html">Statement</a> is in the <a href="Model.html">Model</a></p>
398
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
399
 
<div class="method-source-code" id="M000054-source">
400
 
<pre>
401
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 177</span>
402
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include_statement?</span>(<span class="ruby-identifier">statement</span>)
403
 
      <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>)
404
 
    <span class="ruby-keyword kw">end</span>
405
 
</pre></div>
406
 
</div>
407
 
</div>
408
 
<div id="method-M000074" class="method-detail"><a name="M000074" id="M000074"></a>
409
 
<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>
410
 
<div class="method-description">
411
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
412
 
<div class="method-source-code" id="M000074-source">
413
 
<pre>
414
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 433</span>
415
 
    <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>)
416
 
      <span class="ruby-identifier">ruri</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">uri</span>
417
 
      <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>
418
 
      <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>)
419
 
    <span class="ruby-keyword kw">end</span>
420
 
</pre></div>
421
 
</div>
422
 
</div>
423
 
<div id="method-M000062" class="method-detail"><a name="M000062" id="M000062"></a>
424
 
<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>
425
 
<div class="method-description">
426
 
<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>
427
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
428
 
<div class="method-source-code" id="M000062-source">
429
 
<pre>
430
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 266</span>
431
 
    <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>)
432
 
      <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>
433
 
      <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>
434
 
      <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>)
435
 
      <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>
436
 
      <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>)
437
 
      <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>)
438
 
    <span class="ruby-keyword kw">end</span>
439
 
</pre></div>
440
 
</div>
441
 
</div>
442
 
<div id="method-M000070" class="method-detail"><a name="M000070" id="M000070"></a>
443
 
<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>
444
 
<div class="method-description">
445
 
<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>
446
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
447
 
<div class="method-source-code" id="M000070-source">
448
 
<pre>
449
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 387</span>
450
 
    <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>)
451
 
      <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>
452
 
      <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>)
453
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">st</span>
454
 
        <span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">st</span>)
455
 
      <span class="ruby-keyword kw">else</span>
456
 
        <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>)}
457
 
      <span class="ruby-keyword kw">end</span>
458
 
      <span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">find_canonical</span>(<span class="ruby-identifier">predlist</span>)
459
 
      <span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">context</span>)
460
 
      <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>
461
 
        <span class="ruby-identifier">print</span> <span class="ruby-value str">"***** GLOBAL REWRITES UNDERWAY ***"</span>
462
 
        <span class="ruby-comment cmt">#self.rewrite(temp_model.global_rewrites)</span>
463
 
      <span class="ruby-keyword kw">end</span>
464
 
    <span class="ruby-keyword kw">end</span>
465
 
</pre></div>
466
 
</div>
467
 
</div>
468
 
<div id="method-M000065" class="method-detail"><a name="M000065" id="M000065"></a>
469
 
<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>
470
 
<div class="method-description">
471
 
<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>
472
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000065-source');return false;">[Source]</a></p>
473
 
<div class="method-source-code" id="M000065-source">
474
 
<pre>
475
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 317</span>
476
 
    <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>)
477
 
      <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>
478
 
        <span class="ruby-identifier">source</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">source</span>)
479
 
      <span class="ruby-keyword kw">end</span>
480
 
      <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>
481
 
        <span class="ruby-identifier">target</span> =<span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
482
 
      <span class="ruby-keyword kw">end</span>
483
 
      <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>)
484
 
      <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>
485
 
      <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>)
486
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>    
487
 
        <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>
488
 
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
489
 
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
490
 
        <span class="ruby-keyword kw">end</span>
491
 
      <span class="ruby-keyword kw">else</span> 
492
 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
493
 
      <span class="ruby-keyword kw">end</span>
494
 
    <span class="ruby-keyword kw">end</span>
495
 
</pre></div>
496
 
</div>
497
 
</div>
498
 
<div id="method-M000072" class="method-detail"><a name="M000072" id="M000072"></a>
499
 
<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>
500
 
<div class="method-description">
501
 
<p>execute a query</p>
502
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
503
 
<div class="method-source-code" id="M000072-source">
504
 
<pre>
505
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 416</span>
506
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_execute</span>(<span class="ruby-identifier">query</span>)
507
 
      <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>)
508
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">results</span>
509
 
        <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
510
 
      <span class="ruby-keyword kw">else</span>
511
 
        <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>)
512
 
      <span class="ruby-keyword kw">end</span>
513
 
    <span class="ruby-keyword kw">end</span>
514
 
</pre></div>
515
 
</div>
516
 
</div>
517
 
<div id="method-M000071" class="method-detail"><a name="M000071" id="M000071"></a>
518
 
<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>
519
 
<div class="method-description">
520
 
<p>clears the transactions (?? confirm)</p>
521
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
522
 
<div class="method-source-code" id="M000071-source">
523
 
<pre>
524
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 404</span>
525
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">change_hash</span>)
526
 
      <span class="ruby-identifier">transactions</span> = []
527
 
    <span class="ruby-keyword kw">end</span>
528
 
</pre></div>
529
 
</div>
530
 
</div>
531
 
<div id="method-M000068" class="method-detail"><a name="M000068" id="M000068"></a>
532
 
<div class="method-heading"><a href="#M000068" class="method-signature"><span class="method-name">save</span><span class="method-args">(filename)</span></a></div>
533
 
<div class="method-description">
534
 
<p>saves this model to the specified filename</p>
535
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
536
 
<div class="method-source-code" id="M000068-source">
537
 
<pre>
538
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 373</span>
539
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save</span>(<span class="ruby-identifier">filename</span>)
540
 
      <span class="ruby-identifier">serializer</span> = <span class="ruby-constant">Serializer</span>.<span class="ruby-identifier">new</span>()
541
 
      <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>)
542
 
    <span class="ruby-keyword kw">end</span>
543
 
</pre></div>
544
 
</div>
545
 
</div>
546
 
<div id="method-M000046" class="method-detail"><a name="M000046" id="M000046"></a>
547
 
<div class="method-heading"><a href="#M000046" class="method-signature"><span class="method-name">size</span><span class="method-args">()</span></a></div>
548
 
<div class="method-description">
549
 
<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>
550
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
551
 
<div class="method-source-code" id="M000046-source">
552
 
<pre>
553
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 53</span>
554
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">size</span>()
555
 
      <span class="ruby-identifier">s</span> = <span class="ruby-identifier">get_size</span>()
556
 
      <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>
557
 
      <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">s</span>
558
 
    <span class="ruby-keyword kw">end</span>
559
 
</pre></div>
560
 
</div>
561
 
</div>
562
 
<div id="method-M000050" class="method-detail"><a name="M000050" id="M000050"></a>
563
 
<div class="method-heading"><a href="#M000050" class="method-signature"><span class="method-name">smush</span><span class="method-args">(pred)</span></a></div>
564
 
<div class="method-description">
565
 
<p>Effectively removes a Predicate from the <a href="Model.html">Model</a> by replacing all occurrences with a blank node (?? confirm)</p>
566
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
567
 
<div class="method-source-code" id="M000050-source">
568
 
<pre>
569
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 90</span>
570
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">smush</span>(<span class="ruby-identifier">pred</span>)
571
 
      <span class="ruby-identifier">identifying_hash</span> = {}
572
 
      <span class="ruby-identifier">canonical</span> = {}
573
 
      <span class="ruby-identifier">mapme</span> = []
574
 
      <span class="ruby-identifier">transactions</span> = []
575
 
      <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>
576
 
        <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>)
577
 
          <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>
578
 
        <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>
579
 
          <span class="ruby-identifier">subject_string</span> = <span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>
580
 
          <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>)
581
 
            <span class="ruby-comment cmt"># print "amodule Rdf dding mapping: ",subject_string,"---&gt;",identifying_hash[obj.to_s]</span>
582
 
            <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>]
583
 
            <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>)
584
 
          <span class="ruby-keyword kw">end</span>
585
 
        <span class="ruby-keyword kw">end</span>
586
 
      }
587
 
      
588
 
      <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> 
589
 
        <span class="ruby-identifier">ss</span> = <span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>
590
 
        <span class="ruby-identifier">os</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>
591
 
        <span class="ruby-identifier">new_statement</span> = <span class="ruby-keyword kw">nil</span>
592
 
        <span class="ruby-identifier">replace</span> = <span class="ruby-keyword kw">false</span>
593
 
 
594
 
        <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>)
595
 
          <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">replace</span>
596
 
            <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>)
597
 
            <span class="ruby-identifier">replace</span> = <span class="ruby-value">1</span>
598
 
          <span class="ruby-keyword kw">end</span>
599
 
          <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>]
600
 
        <span class="ruby-keyword kw">end</span>
601
 
        <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>)
602
 
          <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">replace</span>
603
 
            <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>)
604
 
            <span class="ruby-identifier">replace</span> = <span class="ruby-value">1</span>
605
 
            <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>]
606
 
          <span class="ruby-keyword kw">end</span>
607
 
        <span class="ruby-keyword kw">end</span>
608
 
        
609
 
        <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">replace</span>
610
 
          
611
 
          <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>]
612
 
        <span class="ruby-keyword kw">end</span>
613
 
      }
614
 
 
615
 
      
616
 
      <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>
617
 
        <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>])
618
 
        <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>])
619
 
      }
620
 
    <span class="ruby-keyword kw">end</span>
621
 
</pre></div>
622
 
</div>
623
 
</div>
624
 
<div id="method-M000061" class="method-detail"><a name="M000061" id="M000061"></a>
625
 
<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>
626
 
<div class="method-description">
627
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
628
 
<div class="method-source-code" id="M000061-source">
629
 
<pre>
630
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 260</span>
631
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">statement_array_or_yield</span>(<span class="ruby-identifier">stream</span>)
632
 
      
633
 
    <span class="ruby-keyword kw">end</span>
634
 
</pre></div>
635
 
</div>
636
 
</div>
637
 
<div id="method-M000058" class="method-detail"><a name="M000058" id="M000058"></a>
638
 
<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>
639
 
<div class="method-description">
640
 
<p>Yield the <a href="Model.html#M000058">statements</a> if a block is given.</p>
641
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000058-source');return false;">[Source]</a></p>
642
 
<div class="method-source-code" id="M000058-source">
643
 
<pre>
644
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 216</span>
645
 
    <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>)
646
 
      <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>)
647
 
      <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>
648
 
        <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
649
 
        <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
650
 
      <span class="ruby-keyword kw">end</span>
651
 
    <span class="ruby-keyword kw">end</span>
652
 
</pre></div>
653
 
</div>
654
 
</div>
655
 
<div id="method-M000064" class="method-detail"><a name="M000064" id="M000064"></a>
656
 
<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>
657
 
<div class="method-description">
658
 
<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>
659
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000064-source');return false;">[Source]</a></p>
660
 
<div class="method-source-code" id="M000064-source">
661
 
<pre>
662
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 301</span>
663
 
    <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>)
664
 
      <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>
665
 
        <span class="ruby-identifier">predicate</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">predicate</span>)
666
 
      <span class="ruby-keyword kw">end</span>
667
 
      <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>
668
 
        <span class="ruby-identifier">target</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
669
 
      <span class="ruby-keyword kw">end</span>
670
 
      <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>)
671
 
      <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>
672
 
      <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>)
673
 
      <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>)
674
 
    <span class="ruby-keyword kw">end</span>
675
 
</pre></div>
676
 
</div>
677
 
</div>
678
 
<div id="method-M000063" class="method-detail"><a name="M000063" id="M000063"></a>
679
 
<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>
680
 
<div class="method-description">
681
 
<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>
682
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000063-source');return false;">[Source]</a></p>
683
 
<div class="method-source-code" id="M000063-source">
684
 
<pre>
685
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 278</span>
686
 
    <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>)
687
 
      <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>
688
 
        <span class="ruby-identifier">predicate</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">predicate</span>)
689
 
      <span class="ruby-keyword kw">end</span>
690
 
      <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>
691
 
        <span class="ruby-identifier">target</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
692
 
      <span class="ruby-keyword kw">end</span>
693
 
      <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>)
694
 
      <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>
695
 
      <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>)
696
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
697
 
        <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>
698
 
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
699
 
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
700
 
        <span class="ruby-keyword kw">end</span>
701
 
      <span class="ruby-keyword kw">else</span>
702
 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
703
 
      <span class="ruby-keyword kw">end</span>
704
 
 
705
 
    <span class="ruby-keyword kw">end</span>
706
 
</pre></div>
707
 
</div>
708
 
</div>
709
 
<div id="method-M000073" class="method-detail"><a name="M000073" id="M000073"></a>
710
 
<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>
711
 
<div class="method-description">
712
 
<p>Serialize the <a href="Model.html">Model</a> to a syntax</p>
713
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
714
 
<div class="method-source-code" id="M000073-source">
715
 
<pre>
716
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 426</span>
717
 
    <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>)
718
 
      <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>
719
 
      <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>
720
 
 
721
 
      <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>)
722
 
    <span class="ruby-keyword kw">end</span>
723
 
</pre></div>
724
 
</div>
725
 
</div>
726
 
<div id="method-M000057" class="method-detail"><a name="M000057" id="M000057"></a>
727
 
<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>
728
 
<div class="method-description">
729
 
<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>
730
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
731
 
<div class="method-source-code" id="M000057-source">
732
 
<pre>
733
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 202</span>
734
 
    <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>)
735
 
      <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>)
736
 
      <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>
737
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
738
 
        <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>
739
 
          <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>
740
 
          <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
741
 
        <span class="ruby-keyword kw">end</span>
742
 
      <span class="ruby-keyword kw">else</span>
743
 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_statement_array</span>(<span class="ruby-identifier">stream</span>)
744
 
      <span class="ruby-keyword kw">end</span>
745
 
    <span class="ruby-keyword kw">end</span>
746
 
</pre></div>
747
 
</div>
748
 
</div>
749
 
<div id="method-M000059" class="method-detail"><a name="M000059" id="M000059"></a>
750
 
<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>
751
 
<div class="method-description">
752
 
<p>Yield the <a href="Model.html#M000057">triples</a> as well as the context</p>
753
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
754
 
<div class="method-source-code" id="M000059-source">
755
 
<pre>
756
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 225</span>
757
 
    <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>)
758
 
      <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>)
759
 
      <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>
760
 
        <span class="ruby-identifier">statement</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
761
 
        <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>
762
 
        <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
763
 
      <span class="ruby-keyword kw">end</span>
764
 
    <span class="ruby-keyword kw">end</span>
765
 
</pre></div>
766
 
</div>
767
 
</div>
768
 
<div id="method-M000066" class="method-detail"><a name="M000066" id="M000066"></a>
769
 
<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>
770
 
<div class="method-description">
771
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000066-source');return false;">[Source]</a></p>
772
 
<div class="method-source-code" id="M000066-source">
773
 
<pre>
774
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 337</span>
775
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">yield_node_or_array</span>(<span class="ruby-identifier">iterator</span>)
776
 
      <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>)
777
 
      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>    
778
 
        <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>
779
 
          <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
780
 
          <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
781
 
        <span class="ruby-keyword kw">end</span>
782
 
      <span class="ruby-keyword kw">else</span> 
783
 
        <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
784
 
      <span class="ruby-keyword kw">end</span>
785
 
    <span class="ruby-keyword kw">end</span>
786
 
</pre></div>
787
 
</div>
788
 
</div>
789
 
</div>
790
 
</div>
791
 
<hr />
792
 
 
793
 
<div class="outerHeader">
794
 
Go to <a href="/" target="_parent">Redland Home</a> - 
795
 
<a href="/bindings/" target="_parent">Language Bindings Home</a> - 
796
 
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
797
 
</div>
798
 
 
799
 
<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>
800
 
 
801
 
</div> <!-- end outerBlock -->
802
 
 
803
 
</body>
804
 
</html>