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">
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">
11
function popupCode( url ) {
12
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
15
function toggleCode( id ) {
16
if ( document.getElementById )
17
elem = document.getElementById( id );
18
else if ( document.all )
19
elem = eval( "document.all." + id );
23
elemStyle = elem.style;
25
if ( elemStyle.display != "block" ) {
26
elemStyle.display = "block"
28
elemStyle.display = "none"
34
// Make codeblocks hidden by default
35
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
41
<div class="outerBlock">
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>
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>
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>
59
<tr class="top-aligned-row">
60
<td><strong>Parent:</strong></td>
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> <a href="#M000047">add_statement</a> <a href="#M000049">add_statements</a> <a href="#M000056">as_stream</a> <a href="#M000067">contexts</a> <a href="#M000043">create_finalizer</a> <a href="#M000044">create_resource</a> <a href="#M000052">delete</a> <a href="#M000053">delete_context</a> <a href="#M000051">delete_statement</a> <a href="#M000069">dump_model</a> <a href="#M000060">find</a> <a href="#M000045">get_resource</a> <a href="#M000055">include?</a> <a href="#M000054">include_statement?</a> <a href="#M000074">load</a> <a href="#M000042">new</a> <a href="#M000062">object</a> <a href="#M000070">parse_and_merge</a> <a href="#M000065">predicates</a> <a href="#M000072">query_execute</a>
71
<a href="#M000071">rewrite</a> <a href="#M000068">save</a> <a href="#M000046">size</a> <a href="#M000050">smush</a> <a href="#M000061">statement_array_or_yield</a> <a href="#M000058">statements</a> <a href="#M000064">subject</a> <a href="#M000063">subjects</a> <a href="#M000073">to_string</a> <a href="#M000057">triples</a> <a href="#M000059">triples_with_context</a> <a href="#M000066">yield_node_or_array</a> </div>
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>
80
<div id="attribute-list">
81
<h3 class="section-bar">Attributes</h3>
82
<div class="name-list">
84
<tr class="top-aligned-row context-row">
85
<td class="context-item-name">model</td>
86
<td class="context-item-value"> [R] </td>
87
<td class="context-item-desc"></td>
92
<!-- if method_list -->
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‘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">
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>)
108
<span class="ruby-keyword kw">end</span>
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">
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>
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">
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>
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">
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>
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">
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>
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">
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>
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‘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">
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"><<</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>
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">
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>
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">
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>
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">
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>
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">
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>
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">
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>
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>[‘firstName’] of Dominic</p>
334
model.find(nil,FOAF['firstName'],'Dominic Sisneros'){|s,p,o ...}
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">
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>
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">
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>
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">
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>
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">
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>
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">
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>
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">
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>
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">
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">></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>
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">
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>
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">
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>
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">
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>
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">
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>
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">
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"><</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>
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">
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,"--->",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"><<</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>
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>
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>
609
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">replace</span>
611
<span class="ruby-identifier">transactions</span> <span class="ruby-operator"><<</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>
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>])
620
<span class="ruby-keyword kw">end</span>
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">
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>)
633
<span class="ruby-keyword kw">end</span>
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">
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>
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">
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>
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">
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>
705
<span class="ruby-keyword kw">end</span>
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">
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>
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>
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">
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>
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">
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>
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">
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>
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>
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>
801
</div> <!-- end outerBlock -->