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 Language Bindings - Ruby RDoc - Class: Redland::Model</title>
7
<link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
8
<script src="../js/jquery.js" type="text/javascript" charset="utf-8">
10
<script src="../js/thickbox-compressed.js" type="text/javascript" charset="utf-8">
12
<script src="../js/quicksearch.js" type="text/javascript" charset="utf-8">
14
<script src="../js/darkfish.js" type="text/javascript" charset="utf-8">
17
<body id="top" class="class">
19
<div id="home-metadata">
20
<div id="home-section" class="section">
21
<h3 class="section-header"><a href="../index.html">Home</a> <a href="../index.html#classes">Classes</a> <a href="../index.html#methods">Methods</a></h3>
24
<div id="file-metadata">
25
<div id="file-list-section" class="section">
26
<h3 class="section-header">In Files</h3>
27
<div class="section-body">
29
<li><a href="../rdf/redland/model_rb.html?TB_iframe=true&height=550&width=785" class="thickbox" title="rdf/redland/model.rb">rdf/redland/model.rb</a></li>
34
<div id="class-metadata"><!-- Parent Class -->
35
<div id="parent-class-section" class="section">
36
<h3 class="section-header">Parent</h3>
37
<p class="link">Object</p>
39
<!-- Method Quickref -->
40
<div id="method-list-section" class="section">
41
<h3 class="section-header">Methods</h3>
42
<ul class="link-list">
43
<li><a href="#method-c-create_finalizer">::create_finalizer</a></li>
44
<li><a href="#method-c-new">::new</a></li>
45
<li><a href="#method-i-add">#add</a></li>
46
<li><a href="#method-i-add_statement">#add_statement</a></li>
47
<li><a href="#method-i-add_statements">#add_statements</a></li>
48
<li><a href="#method-i-as_stream">#as_stream</a></li>
49
<li><a href="#method-i-contexts">#contexts</a></li>
50
<li><a href="#method-i-create_resource">#create_resource</a></li>
51
<li><a href="#method-i-delete">#delete</a></li>
52
<li><a href="#method-i-delete_context">#delete_context</a></li>
53
<li><a href="#method-i-delete_statement">#delete_statement</a></li>
54
<li><a href="#method-i-dump_model">#dump_model</a></li>
55
<li><a href="#method-i-find">#find</a></li>
56
<li><a href="#method-i-get_resource">#get_resource</a></li>
57
<li><a href="#method-i-include-3F">#include?</a></li>
58
<li><a href="#method-i-include_statement-3F">#include_statement?</a></li>
59
<li><a href="#method-i-load">#load</a></li>
60
<li><a href="#method-i-object">#object</a></li>
61
<li><a href="#method-i-parse_and_merge">#parse_and_merge</a></li>
62
<li><a href="#method-i-predicates">#predicates</a></li>
63
<li><a href="#method-i-query_execute">#query_execute</a></li>
64
<li><a href="#method-i-rewrite">#rewrite</a></li>
65
<li><a href="#method-i-save">#save</a></li>
66
<li><a href="#method-i-size">#size</a></li>
67
<li><a href="#method-i-smush">#smush</a></li>
68
<li><a href="#method-i-statement_array_or_yield">#statement_array_or_yield</a></li>
69
<li><a href="#method-i-statements">#statements</a></li>
70
<li><a href="#method-i-subject">#subject</a></li>
71
<li><a href="#method-i-subjects">#subjects</a></li>
72
<li><a href="#method-i-to_string">#to_string</a></li>
73
<li><a href="#method-i-triples">#triples</a></li>
74
<li><a href="#method-i-triples_with_context">#triples_with_context</a></li>
75
<li><a href="#method-i-yield_node_or_array">#yield_node_or_array</a></li>
78
<!-- Included Modules -->
79
<div id="includes-section" class="section">
80
<h3 class="section-header">Included Modules</h3>
81
<ul class="link-list">
82
<li><a class="include" href="Util.html">Redland::Util</a></li>
86
<div id="project-metadata">
87
<div id="fileindex-section" class="section project-section">
88
<h3 class="section-header">Files</h3>
90
<li class="file"><a href="../Makefile.html">Makefile</a></li>
91
<li class="file"><a href="../rdf/Makefile.html">Makefile</a></li>
92
<li class="file"><a href="../rdf/redland/Makefile.html">Makefile</a></li>
93
<li class="file"><a href="../rdf/redland/schemas/Makefile.html">Makefile</a></li>
96
<div id="classindex-section" class="section project-section">
97
<h3 class="section-header">Class/Module Index <span class="search-toggle"><img src="../images/find.png" height="16" width="16" alt="[+]" title="show/hide quicksearch" /></span></h3>
98
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
99
<fieldset><legend>Quicksearch</legend> <input type="text" name="quicksearch" value="" class="quicksearch-field" /></fieldset>
101
<ul class="link-list">
102
<li><a href="../Redland.html">Redland</a></li>
103
<li><a href="../Redland/BNode.html">Redland::BNode</a></li>
104
<li><a href="../Redland/ContextParser.html">Redland::ContextParser</a></li>
105
<li><a href="../Redland/FileStore.html">Redland::FileStore</a></li>
106
<li><a href="../Redland/HashOpen.html">Redland::HashOpen</a></li>
107
<li><a href="../Redland/HashStore.html">Redland::HashStore</a></li>
108
<li><a href="../Redland/Literal.html">Redland::Literal</a></li>
109
<li><a href="../Redland/MemoryStore.html">Redland::MemoryStore</a></li>
110
<li><a href="../Redland/MergedModel.html">Redland::MergedModel</a></li>
111
<li><a href="../Redland/Model.html">Redland::Model</a></li>
112
<li><a href="../Redland/Namespace.html">Redland::Namespace</a></li>
113
<li><a href="../Redland/Node.html">Redland::Node</a></li>
114
<li><a href="../Redland/NodeIterator.html">Redland::NodeIterator</a></li>
115
<li><a href="../Redland/NodeTypeError.html">Redland::NodeTypeError</a></li>
116
<li><a href="../Redland/OWL.html">Redland::OWL</a></li>
117
<li><a href="../Redland/Parser.html">Redland::Parser</a></li>
118
<li><a href="../Redland/Query.html">Redland::Query</a></li>
119
<li><a href="../Redland/QueryResults.html">Redland::QueryResults</a></li>
120
<li><a href="../Redland/RDFS.html">Redland::RDFS</a></li>
121
<li><a href="../Redland/RedlandError.html">Redland::RedlandError</a></li>
122
<li><a href="../Redland/Resource.html">Redland::Resource</a></li>
123
<li><a href="../Redland/Serializer.html">Redland::Serializer</a></li>
124
<li><a href="../Redland/Statement.html">Redland::Statement</a></li>
125
<li><a href="../Redland/Stream.html">Redland::Stream</a></li>
126
<li><a href="../Redland/TripleStore.html">Redland::TripleStore</a></li>
127
<li><a href="../Redland/Uri.html">Redland::Uri</a></li>
128
<li><a href="../Redland/Util.html">Redland::Util</a></li>
129
<li><a href="../Redland/World.html">Redland::World</a></li>
130
<li><a href="../DC.html">DC</a></li>
131
<li><a href="../FOAF.html">FOAF</a></li>
133
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
137
<div id="documentation">
138
<h1 class="class">Redland::Model</h1>
139
<div id="description" class="description"></div>
141
<div id="5Buntitled-5D" class="documentation-section"><!-- Attributes -->
142
<div id="attribute-method-details" class="method-section section">
143
<h3 class="section-header">Attributes</h3>
144
<div id="model-attribute-method" class="method-detail"><a name="model" id="model"></a>
145
<div class="method-heading attribute-method-heading"><span class="method-name">model</span><span class="attribute-access-type">[R]</span></div>
146
<div class="method-description"></div>
149
<!-- attribute-method-details -->
151
<div id="public-class-method-details" class="method-section section">
152
<h3 class="section-header">Public Class Methods</h3>
153
<div id="create_finalizer-method" class="method-detail"><a name="method-c-create_finalizer" id="method-c-create_finalizer"></a>
154
<div class="method-heading"><span class="method-name">create_finalizer</span><span class="method-args">(model)</span> <span class="method-click-advice">click to toggle source</span></div>
155
<div class="method-description">
156
<p>You shouldn't use this. Used internally for cleanup.</p>
157
<div class="method-source-code" id="create_finalizer-source">
159
<span class="ruby-comment"># File rdf/redland/model.rb, line 27</span>
160
<span class="ruby-keyword">def</span> <span class="ruby-constant">Model</span>.<span class="ruby-identifier">create_finalizer</span>(<span class="ruby-identifier">model</span>)
161
<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-comment"># "Finalizer on #{id}"</span>
162
<span class="ruby-comment">#$log_final.info "closing model"</span>
163
<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>)
165
<span class="ruby-keyword">end</span>
167
<!-- create_finalizer-source --></div>
169
<!-- create_finalizer-method -->
170
<div id="new-method" class="method-detail"><a name="method-c-new" id="method-c-new"></a>
171
<div class="method-heading"><span class="method-name">new</span><span class="method-args">(store=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
172
<div class="method-description">
173
<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>
174
<div class="method-source-code" id="new-source">
176
<span class="ruby-comment"># File rdf/redland/model.rb, line 17</span>
177
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">store</span>=<span class="ruby-keyword">nil</span>)
178
<span class="ruby-ivar">@statements</span> = []
179
<span class="ruby-identifier">store</span> = <span class="ruby-constant">MemoryStore</span>.<span class="ruby-identifier">new</span>() <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">store</span>
180
<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-string">""</span>)
181
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">"Creating new Model failed"</span>) <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-ivar">@model</span>
182
<span class="ruby-ivar">@store</span> = <span class="ruby-identifier">store</span>
183
<span class="ruby-constant">ObjectSpace</span>.<span class="ruby-identifier">define_finalizer</span>(<span class="ruby-keyword">self</span>,<span class="ruby-constant">Model</span>.<span class="ruby-identifier">create_finalizer</span>(<span class="ruby-ivar">@model</span>))
184
<span class="ruby-keyword">end</span>
186
<!-- new-source --></div>
188
<!-- new-method --></div>
189
<!-- public-class-method-details -->
190
<div id="public-instance-method-details" class="method-section section">
191
<h3 class="section-header">Public Instance Methods</h3>
192
<div id="add-method" class="method-detail"><a name="method-i-add" id="method-i-add"></a>
193
<div class="method-heading"><span class="method-name">add</span><span class="method-args">(subject,predicate,object,context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
194
<div class="method-description">
195
<p>Add the triples (s,p,o) to the model with the optional context</p>
196
<div class="method-source-code" id="add-source">
198
<span class="ruby-comment"># File rdf/redland/model.rb, line 71</span>
199
<span class="ruby-keyword">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">nil</span>)
200
<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>)
201
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">my_statement</span>,<span class="ruby-identifier">context</span>)
202
<span class="ruby-keyword">end</span>
204
<!-- add-source --></div>
207
<div id="add_statement-method" class="method-detail"><a name="method-i-add_statement" id="method-i-add_statement"></a>
208
<div class="method-heading"><span class="method-name">add_statement</span><span class="method-args">(statement,context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
209
<div class="method-description">
210
<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>
211
<div class="method-source-code" id="add_statement-source">
213
<span class="ruby-comment"># File rdf/redland/model.rb, line 60</span>
214
<span class="ruby-keyword">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">nil</span>)
215
<span class="ruby-keyword">if</span> <span class="ruby-identifier">context</span>
216
<span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
217
<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">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">context</span>
218
<span class="ruby-keyword">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_add_statement</span>(<span class="ruby-keyword">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>)
219
<span class="ruby-keyword">else</span>
220
<span class="ruby-keyword">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_add_statement</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
221
<span class="ruby-keyword">end</span>
222
<span class="ruby-keyword">end</span>
224
<!-- add_statement-source --></div>
226
<!-- add_statement-method -->
227
<div id="add_statements-method" class="method-detail"><a name="method-i-add_statements" id="method-i-add_statements"></a>
228
<div class="method-heading"><span class="method-name">add_statements</span><span class="method-args">(statement_stream,context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
229
<div class="method-description">
230
<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>
231
<div class="method-source-code" id="add_statements-source">
233
<span class="ruby-comment"># File rdf/redland/model.rb, line 78</span>
234
<span class="ruby-keyword">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">nil</span>)
235
<span class="ruby-keyword">if</span> <span class="ruby-identifier">context</span>
236
<span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
237
<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">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">context</span>
238
<span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_add_statements</span>(<span class="ruby-keyword">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>)
239
<span class="ruby-keyword">else</span>
240
<span class="ruby-keyword">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_add_statements</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement_stream</span>.<span class="ruby-identifier">stream</span>)
241
<span class="ruby-keyword">end</span>
242
<span class="ruby-keyword">end</span>
244
<!-- add_statements-source --></div>
246
<!-- add_statements-method -->
247
<div id="as_stream-method" class="method-detail"><a name="method-i-as_stream" id="method-i-as_stream"></a>
248
<div class="method-heading"><span class="method-name">as_stream</span><span class="method-args">(context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
249
<div class="method-description">
250
<p>list the model contents as a stream of statements</p>
251
<div class="method-source-code" id="as_stream-source">
253
<span class="ruby-comment"># File rdf/redland/model.rb, line 188</span>
254
<span class="ruby-keyword">def</span> <span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword">nil</span>)
255
<span class="ruby-keyword">if</span> <span class="ruby-identifier">context</span>
256
<span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
257
<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">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">context</span>
258
<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">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">context</span>)
259
<span class="ruby-keyword">else</span>
260
<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">self</span>.<span class="ruby-identifier">model</span>)
261
<span class="ruby-keyword">end</span>
262
<span class="ruby-keyword">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">self</span>)
263
<span class="ruby-keyword">end</span>
265
<!-- as_stream-source --></div>
267
<!-- as_stream-method -->
268
<div id="contexts-method" class="method-detail"><a name="method-i-contexts" id="method-i-contexts"></a>
269
<div class="method-heading"><span class="method-name">contexts</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span></div>
270
<div class="method-description">
271
<p>yield the contexts defined in the model. If the store wasn't set up for contexts raises a <a href="RedlandError.html">RedlandError</a>. If no block_given returns an array of the contexts</p>
272
<div class="method-source-code" id="contexts-source">
274
<span class="ruby-comment"># File rdf/redland/model.rb, line 352</span>
275
<span class="ruby-keyword">def</span> <span class="ruby-identifier">contexts</span>()
276
<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>)
277
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">"Unable to create iterator for contexts"</span>) <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_iterator</span>
278
<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">self</span>)
279
<span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
280
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
281
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
282
<span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
283
<span class="ruby-keyword">end</span>
284
<span class="ruby-keyword">else</span>
285
<span class="ruby-identifier">context_array</span> = []
286
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
287
<span class="ruby-identifier">context_array</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
288
<span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
289
<span class="ruby-keyword">end</span>
290
<span class="ruby-keyword">return</span> <span class="ruby-identifier">context_array</span>
291
<span class="ruby-keyword">end</span>
292
<span class="ruby-keyword">end</span>
294
<!-- contexts-source --></div>
296
<!-- contexts-method -->
297
<div id="create_resource-method" class="method-detail"><a name="method-i-create_resource" id="method-i-create_resource"></a>
298
<div class="method-heading"><span class="method-name">create_resource</span><span class="method-args">(str=nil,context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
299
<div class="method-description">
300
<p>create a resource for this model. The str can be a String, or a <a href="Uri.html">Redland::Uri</a></p>
301
<div class="method-source-code" id="create_resource-source">
303
<span class="ruby-comment"># File rdf/redland/model.rb, line 36</span>
304
<span class="ruby-keyword">def</span> <span class="ruby-identifier">create_resource</span>(<span class="ruby-identifier">str</span>=<span class="ruby-keyword">nil</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword">nil</span>)
305
<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">self</span>,<span class="ruby-identifier">context</span>)
306
<span class="ruby-keyword">if</span> <span class="ruby-identifier">context</span>
307
<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>))
308
<span class="ruby-keyword">end</span>
309
<span class="ruby-keyword">return</span> <span class="ruby-identifier">resource</span>
310
<span class="ruby-keyword">end</span>
312
<!-- create_resource-source --></div>
314
<!-- create_resource-method -->
315
<div id="delete-method" class="method-detail"><a name="method-i-delete" id="method-i-delete"></a>
316
<div class="method-heading"><span class="method-name">delete</span><span class="method-args">(s,p,o,context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
317
<div class="method-description">
318
<p>Remove the statement made of the triples (s,p,o) with the optional context <a href="Node.html">Node</a></p>
319
<div class="method-source-code" id="delete-source">
321
<span class="ruby-comment"># File rdf/redland/model.rb, line 156</span>
322
<span class="ruby-keyword">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">nil</span>)
323
<span class="ruby-keyword">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> }
324
<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>)
325
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">delete_statement</span>(<span class="ruby-identifier">statement</span>,<span class="ruby-identifier">context</span>)
326
<span class="ruby-keyword">else</span>
327
<span class="ruby-keyword">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">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>
328
<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>)
329
<span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">p</span> <span class="ruby-identifier">st</span>
330
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">delete_statement</span>(<span class="ruby-identifier">st</span>, <span class="ruby-identifier">context</span>)
331
<span class="ruby-keyword">end</span>
332
<span class="ruby-keyword">end</span>
333
<span class="ruby-keyword">end</span>
335
<!-- delete-source --></div>
337
<!-- delete-method -->
338
<div id="delete_context-method" class="method-detail"><a name="method-i-delete_context" id="method-i-delete_context"></a>
339
<div class="method-heading"><span class="method-name">delete_context</span><span class="method-args">(context)</span> <span class="method-click-advice">click to toggle source</span></div>
340
<div class="method-description">
341
<p>Remove the Statements from the <a href="Model.html">Model</a> with the given context <a href="Node.html">Node</a></p>
342
<div class="method-source-code" id="delete_context-source">
344
<span class="ruby-comment"># File rdf/redland/model.rb, line 170</span>
345
<span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_context</span>(<span class="ruby-identifier">context</span>)
346
<span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
347
<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">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">context</span>
348
<span class="ruby-keyword">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_remove_statements</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">context</span>)
349
<span class="ruby-keyword">end</span>
351
<!-- delete_context-source --></div>
353
<!-- delete_context-method -->
354
<div id="delete_statement-method" class="method-detail"><a name="method-i-delete_statement" id="method-i-delete_statement"></a>
355
<div class="method-heading"><span class="method-name">delete_statement</span><span class="method-args">(statement,context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
356
<div class="method-description">
357
<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>
358
<div class="method-source-code" id="delete_statement-source">
360
<span class="ruby-comment"># File rdf/redland/model.rb, line 145</span>
361
<span class="ruby-keyword">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">nil</span>)
362
<span class="ruby-keyword">if</span> <span class="ruby-identifier">context</span>
363
<span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
364
<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">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">context</span>
365
<span class="ruby-keyword">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_context_remove_statement</span>(<span class="ruby-keyword">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>)
366
<span class="ruby-keyword">else</span>
367
<span class="ruby-keyword">return</span> <span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_remove_statement</span>(<span class="ruby-keyword">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
368
<span class="ruby-keyword">end</span>
369
<span class="ruby-keyword">end</span>
371
<!-- delete_statement-source --></div>
373
<!-- delete_statement-method -->
374
<div id="dump_model-method" class="method-detail"><a name="method-i-dump_model" id="method-i-dump_model"></a>
375
<div class="method-heading"><span class="method-name">dump_model</span><span class="method-args">(context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
376
<div class="method-description">
377
<p>a screen dump of the triples, if context is included a screen dump of the triples for the given context</p>
378
<div class="method-source-code" id="dump_model-source">
380
<span class="ruby-comment"># File rdf/redland/model.rb, line 380</span>
381
<span class="ruby-keyword">def</span> <span class="ruby-identifier">dump_model</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword">nil</span>)
382
<span class="ruby-keyword">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>}
383
<span class="ruby-keyword">end</span>
385
<!-- dump_model-source --></div>
387
<!-- dump_model-method -->
388
<div id="find-method" class="method-detail"><a name="method-i-find" id="method-i-find"></a>
389
<div class="method-heading"><span class="method-name">find</span><span class="method-args">(s=nil,p=nil,o=nil,context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
390
<div class="method-description">
391
<p>find the statements matching the given triple. The triples can be nil</p>
392
<p>Find all triples with <a href="http://'firstName'">FOAF</a> of Dominic</p>
394
model.find(nil,FOAF['firstName'],'Dominic Sisneros'){|s,p,o ...}
396
<div class="method-source-code" id="find-source">
398
<span class="ruby-comment"># File rdf/redland/model.rb, line 238</span>
399
<span class="ruby-keyword">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">s</span>=<span class="ruby-keyword">nil</span>,<span class="ruby-identifier">p</span>=<span class="ruby-keyword">nil</span>,<span class="ruby-identifier">o</span>=<span class="ruby-keyword">nil</span>,<span class="ruby-identifier">context</span>=<span class="ruby-keyword">nil</span>)
400
<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">self</span>)
401
<span class="ruby-keyword">if</span> <span class="ruby-identifier">context</span>
402
<span class="ruby-identifier">context</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">context</span>)
403
<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">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">context</span>
404
<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">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>)
405
<span class="ruby-keyword">else</span>
406
<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">self</span>.<span class="ruby-identifier">model</span>,<span class="ruby-identifier">statement</span>.<span class="ruby-identifier">statement</span>)
407
<span class="ruby-keyword">end</span>
408
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">my_stream</span>
409
<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">self</span>)
410
<span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
411
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
412
<span class="ruby-identifier">my_statement</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
413
<span class="ruby-keyword">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>
414
<span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
415
<span class="ruby-keyword">end</span>
416
<span class="ruby-keyword">else</span> <span class="ruby-comment">#block not given</span>
417
<span class="ruby-keyword">return</span> <span class="ruby-identifier">get_statement_array</span>(<span class="ruby-identifier">stream</span>)
418
<span class="ruby-keyword">end</span>
419
<span class="ruby-keyword">end</span>
421
<!-- find-source --></div>
424
<div id="get_resource-method" class="method-detail"><a name="method-i-get_resource" id="method-i-get_resource"></a>
425
<div class="method-heading"><span class="method-name">get_resource</span><span class="method-args">(arg)</span> <span class="method-click-advice">click to toggle source</span></div>
426
<div class="method-description">
427
<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>
428
<div class="method-source-code" id="get_resource-source">
430
<span class="ruby-comment"># File rdf/redland/model.rb, line 46</span>
431
<span class="ruby-keyword">def</span> <span class="ruby-identifier">get_resource</span>(<span class="ruby-identifier">arg</span>)
432
<span class="ruby-identifier">res</span> = <span class="ruby-keyword">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">nil</span>,<span class="ruby-keyword">nil</span>)
433
<span class="ruby-keyword">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">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>
434
<span class="ruby-keyword">end</span>
436
<!-- get_resource-source --></div>
438
<!-- get_resource-method -->
439
<div id="include-3F-method" class="method-detail"><a name="method-i-include-3F" id="method-i-include-3F"></a>
440
<div class="method-heading"><span class="method-name">include?</span><span class="method-args">(s,p,o)</span> <span class="method-click-advice">click to toggle source</span></div>
441
<div class="method-description">
442
<p>Returns true if the given Triple is in the model</p>
443
<div class="method-source-code" id="include-3F-source">
445
<span class="ruby-comment"># File rdf/redland/model.rb, line 182</span>
446
<span class="ruby-keyword">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>)
447
<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>)
448
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">include_statement?</span>(<span class="ruby-identifier">statement</span>)
449
<span class="ruby-keyword">end</span>
451
<!-- include-3F-source --></div>
453
<!-- include-3F-method -->
454
<div id="include_statement-3F-method" class="method-detail"><a name="method-i-include_statement-3F" id="method-i-include_statement-3F"></a>
455
<div class="method-heading"><span class="method-name">include_statement?</span><span class="method-args">(statement)</span> <span class="method-click-advice">click to toggle source</span></div>
456
<div class="method-description">
457
<p>Returns true if the <a href="Statement.html">Statement</a> is in the <a href="Model.html">Model</a></p>
458
<div class="method-source-code" id="include_statement-3F-source">
460
<span class="ruby-comment"># File rdf/redland/model.rb, line 177</span>
461
<span class="ruby-keyword">def</span> <span class="ruby-identifier">include_statement?</span>(<span class="ruby-identifier">statement</span>)
462
<span class="ruby-keyword">return</span> (<span class="ruby-constant">Redland</span>.<span class="ruby-identifier">librdf_model_contains_statement</span>(<span class="ruby-keyword">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>)
463
<span class="ruby-keyword">end</span>
465
<!-- include_statement-3F-source --></div>
467
<!-- include_statement-3F-method -->
468
<div id="load-method" class="method-detail"><a name="method-i-load" id="method-i-load"></a>
469
<div class="method-heading"><span class="method-name">load</span><span class="method-args">(uri, name="", mime_type="", type_uri=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
470
<div class="method-description">
471
<div class="method-source-code" id="load-source">
473
<span class="ruby-comment"># File rdf/redland/model.rb, line 433</span>
474
<span class="ruby-keyword">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">name</span>=<span class="ruby-string">""</span>, <span class="ruby-identifier">mime_type</span>=<span class="ruby-string">""</span>, <span class="ruby-identifier">type_uri</span>=<span class="ruby-keyword">nil</span>)
475
<span class="ruby-identifier">ruri</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">uri</span>
476
<span class="ruby-identifier">rtype_uri</span> = <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">uri</span>
477
<span class="ruby-keyword">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>)
478
<span class="ruby-keyword">end</span>
480
<!-- load-source --></div>
483
<div id="object-method" class="method-detail"><a name="method-i-object" id="method-i-object"></a>
484
<div class="method-heading"><span class="method-name">object</span><span class="method-args">(source,predicate)</span> <span class="method-click-advice">click to toggle source</span></div>
485
<div class="method-description">
486
<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>
487
<div class="method-source-code" id="object-source">
489
<span class="ruby-comment"># File rdf/redland/model.rb, line 266</span>
490
<span class="ruby-keyword">def</span> <span class="ruby-identifier">object</span>(<span class="ruby-identifier">source</span>,<span class="ruby-identifier">predicate</span>)
491
<span class="ruby-keyword">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">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">end</span>
492
<span class="ruby-keyword">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">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">end</span>
493
<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">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>)
494
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">my_node</span>
495
<span class="ruby-keyword">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">if</span> <span class="ruby-identifier">is_literal?</span>(<span class="ruby-identifier">my_node</span>)
496
<span class="ruby-keyword">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">self</span>,<span class="ruby-keyword">false</span>)
497
<span class="ruby-keyword">end</span>
499
<!-- object-source --></div>
501
<!-- object-method -->
502
<div id="parse_and_merge-method" class="method-detail"><a name="method-i-parse_and_merge" id="method-i-parse_and_merge"></a>
503
<div class="method-heading"><span class="method-name">parse_and_merge</span><span class="method-args">(parser,uri,predlist,context=uri,st=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
504
<div class="method-description">
505
<p>parser the file with the given parser and uri and smushes the file with the model on the statements with the given predlist</p>
506
<div class="method-source-code" id="parse_and_merge-source">
508
<span class="ruby-comment"># File rdf/redland/model.rb, line 387</span>
509
<span class="ruby-keyword">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">nil</span>)
510
<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">if</span> <span class="ruby-identifier">context</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>
511
<span class="ruby-identifier">temp_model</span> = <span class="ruby-constant">MergedModel</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>)
512
<span class="ruby-keyword">if</span> <span class="ruby-identifier">st</span>
513
<span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">st</span>)
514
<span class="ruby-keyword">else</span>
515
<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>)}
516
<span class="ruby-keyword">end</span>
517
<span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">find_canonical</span>(<span class="ruby-identifier">predlist</span>)
518
<span class="ruby-identifier">temp_model</span>.<span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">context</span>)
519
<span class="ruby-keyword">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>
520
<span class="ruby-identifier">print</span> <span class="ruby-string">"***** GLOBAL REWRITES UNDERWAY ***"</span>
521
<span class="ruby-comment">#self.rewrite(temp_model.global_rewrites)</span>
522
<span class="ruby-keyword">end</span>
523
<span class="ruby-keyword">end</span>
525
<!-- parse_and_merge-source --></div>
527
<!-- parse_and_merge-method -->
528
<div id="predicates-method" class="method-detail"><a name="method-i-predicates" id="method-i-predicates"></a>
529
<div class="method-heading"><span class="method-name">predicates</span><span class="method-args">(source,target)</span> <span class="method-click-advice">click to toggle source</span></div>
530
<div class="method-description">
531
<p>Return an array of Predicate Nodes in the <a href="Model.html">Model</a> matching (subject,?,target) The subject 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>
532
<div class="method-source-code" id="predicates-source">
534
<span class="ruby-comment"># File rdf/redland/model.rb, line 317</span>
535
<span class="ruby-keyword">def</span> <span class="ruby-identifier">predicates</span>(<span class="ruby-identifier">source</span>,<span class="ruby-identifier">target</span>)
536
<span class="ruby-keyword">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>
537
<span class="ruby-identifier">source</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">source</span>)
538
<span class="ruby-keyword">end</span>
539
<span class="ruby-keyword">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">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>
540
<span class="ruby-identifier">target</span> =<span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
541
<span class="ruby-keyword">end</span>
542
<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">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>)
543
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">"unable to create iterator"</span>) <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_iterator</span>
544
<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">self</span>,<span class="ruby-identifier">source</span>,<span class="ruby-identifier">target</span>)
545
<span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
546
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
547
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
548
<span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
549
<span class="ruby-keyword">end</span>
550
<span class="ruby-keyword">else</span>
551
<span class="ruby-keyword">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
552
<span class="ruby-keyword">end</span>
553
<span class="ruby-keyword">end</span>
555
<!-- predicates-source --></div>
557
<!-- predicates-method -->
558
<div id="query_execute-method" class="method-detail"><a name="method-i-query_execute" id="method-i-query_execute"></a>
559
<div class="method-heading"><span class="method-name">query_execute</span><span class="method-args">(query)</span> <span class="method-click-advice">click to toggle source</span></div>
560
<div class="method-description">
561
<p>execute a query</p>
562
<div class="method-source-code" id="query_execute-source">
564
<span class="ruby-comment"># File rdf/redland/model.rb, line 416</span>
565
<span class="ruby-keyword">def</span> <span class="ruby-identifier">query_execute</span>(<span class="ruby-identifier">query</span>)
566
<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>)
567
<span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">results</span>
568
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span>
569
<span class="ruby-keyword">else</span>
570
<span class="ruby-keyword">return</span> <span class="ruby-constant">QueryResults</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">results</span>)
571
<span class="ruby-keyword">end</span>
572
<span class="ruby-keyword">end</span>
574
<!-- query_execute-source --></div>
576
<!-- query_execute-method -->
577
<div id="rewrite-method" class="method-detail"><a name="method-i-rewrite" id="method-i-rewrite"></a>
578
<div class="method-heading"><span class="method-name">rewrite</span><span class="method-args">(change_hash)</span> <span class="method-click-advice">click to toggle source</span></div>
579
<div class="method-description">
580
<p>clears the transactions (?? confirm)</p>
581
<div class="method-source-code" id="rewrite-source">
583
<span class="ruby-comment"># File rdf/redland/model.rb, line 404</span>
584
<span class="ruby-keyword">def</span> <span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">change_hash</span>)
585
<span class="ruby-identifier">transactions</span> = []
586
<span class="ruby-keyword">end</span>
588
<!-- rewrite-source --></div>
590
<!-- rewrite-method -->
591
<div id="save-method" class="method-detail"><a name="method-i-save" id="method-i-save"></a>
592
<div class="method-heading"><span class="method-name">save</span><span class="method-args">(filename)</span> <span class="method-click-advice">click to toggle source</span></div>
593
<div class="method-description">
594
<p>saves this model to the specified filename</p>
595
<div class="method-source-code" id="save-source">
597
<span class="ruby-comment"># File rdf/redland/model.rb, line 373</span>
598
<span class="ruby-keyword">def</span> <span class="ruby-identifier">save</span>(<span class="ruby-identifier">filename</span>)
599
<span class="ruby-identifier">serializer</span> = <span class="ruby-constant">Serializer</span>.<span class="ruby-identifier">new</span>()
600
<span class="ruby-identifier">serializer</span>.<span class="ruby-identifier">to_file</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-keyword">self</span>)
601
<span class="ruby-keyword">end</span>
603
<!-- save-source --></div>
606
<div id="size-method" class="method-detail"><a name="method-i-size" id="method-i-size"></a>
607
<div class="method-heading"><span class="method-name">size</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span></div>
608
<div class="method-description">
609
<p>Return the size of the Storage <a href="Model.html">Model</a>. Raises a redland error if the model has non countable storage</p>
610
<div class="method-source-code" id="size-source">
612
<span class="ruby-comment"># File rdf/redland/model.rb, line 53</span>
613
<span class="ruby-keyword">def</span> <span class="ruby-identifier">size</span>()
614
<span class="ruby-identifier">s</span> = <span class="ruby-identifier">get_size</span>()
615
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">"Attempt to get size when using non-countable storage"</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">s</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
616
<span class="ruby-keyword">return</span> <span class="ruby-identifier">s</span>
617
<span class="ruby-keyword">end</span>
619
<!-- size-source --></div>
622
<div id="smush-method" class="method-detail"><a name="method-i-smush" id="method-i-smush"></a>
623
<div class="method-heading"><span class="method-name">smush</span><span class="method-args">(pred)</span> <span class="method-click-advice">click to toggle source</span></div>
624
<div class="method-description">
625
<p>Effectively removes a Predicate from the <a href="Model.html">Model</a> by replacing all occurrences with a blank node (?? confirm)</p>
626
<div class="method-source-code" id="smush-source">
628
<span class="ruby-comment"># File rdf/redland/model.rb, line 90</span>
629
<span class="ruby-keyword">def</span> <span class="ruby-identifier">smush</span>(<span class="ruby-identifier">pred</span>)
630
<span class="ruby-identifier">identifying_hash</span> = {}
631
<span class="ruby-identifier">canonical</span> = {}
632
<span class="ruby-identifier">mapme</span> = []
633
<span class="ruby-identifier">transactions</span> = []
634
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">find</span>(<span class="ruby-keyword">nil</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-keyword">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>
635
<span class="ruby-keyword">if</span> <span class="ruby-keyword">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>)
636
<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>
637
<span class="ruby-keyword">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>
638
<span class="ruby-identifier">subject_string</span> = <span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>
639
<span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">subject_string</span>)
640
<span class="ruby-comment"># print "amodule Rdf dding mapping: ",subject_string,"--->",identifying_hash[obj.to_s]</span>
641
<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>]
642
<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>)
643
<span class="ruby-keyword">end</span>
644
<span class="ruby-keyword">end</span>
647
<span class="ruby-keyword">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>
648
<span class="ruby-identifier">ss</span> = <span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>
649
<span class="ruby-identifier">os</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>
650
<span class="ruby-identifier">new_statement</span> = <span class="ruby-keyword">nil</span>
651
<span class="ruby-identifier">replace</span> = <span class="ruby-keyword">false</span>
653
<span class="ruby-keyword">if</span> <span class="ruby-identifier">canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">ss</span>)
654
<span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">replace</span>
655
<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>)
656
<span class="ruby-identifier">replace</span> = <span class="ruby-value">1</span>
657
<span class="ruby-keyword">end</span>
658
<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>]
659
<span class="ruby-keyword">end</span>
660
<span class="ruby-keyword">if</span> <span class="ruby-identifier">canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">os</span>)
661
<span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">replace</span>
662
<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>)
663
<span class="ruby-identifier">replace</span> = <span class="ruby-value">1</span>
664
<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>]
665
<span class="ruby-keyword">end</span>
666
<span class="ruby-keyword">end</span>
668
<span class="ruby-keyword">if</span> <span class="ruby-identifier">replace</span>
670
<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>]
671
<span class="ruby-keyword">end</span>
675
<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>
676
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">delete_statement</span>(<span class="ruby-identifier">pair</span>[<span class="ruby-value">0</span>])
677
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">add_statement</span>(<span class="ruby-identifier">pair</span>[<span class="ruby-value">1</span>])
679
<span class="ruby-keyword">end</span>
681
<!-- smush-source --></div>
683
<!-- smush-method -->
684
<div id="statement_array_or_yield-method" class="method-detail"><a name="method-i-statement_array_or_yield" id="method-i-statement_array_or_yield"></a>
685
<div class="method-heading"><span class="method-name">statement_array_or_yield</span><span class="method-args">(stream)</span> <span class="method-click-advice">click to toggle source</span></div>
686
<div class="method-description">
687
<div class="method-source-code" id="statement_array_or_yield-source">
689
<span class="ruby-comment"># File rdf/redland/model.rb, line 260</span>
690
<span class="ruby-keyword">def</span> <span class="ruby-identifier">statement_array_or_yield</span>(<span class="ruby-identifier">stream</span>)
692
<span class="ruby-keyword">end</span>
694
<!-- statement_array_or_yield-source --></div>
696
<!-- statement_array_or_yield-method -->
697
<div id="statements-method" class="method-detail"><a name="method-i-statements" id="method-i-statements"></a>
698
<div class="method-heading"><span class="method-name">statements</span><span class="method-args">(context = nil)</span> <span class="method-click-advice">click to toggle source</span></div>
699
<div class="method-description">
700
<p>Yield the statements if a block is given.</p>
701
<div class="method-source-code" id="statements-source">
703
<span class="ruby-comment"># File rdf/redland/model.rb, line 216</span>
704
<span class="ruby-keyword">def</span> <span class="ruby-identifier">statements</span>(<span class="ruby-identifier">context</span> = <span class="ruby-keyword">nil</span>)
705
<span class="ruby-identifier">stream</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>)
706
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
707
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
708
<span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
709
<span class="ruby-keyword">end</span>
710
<span class="ruby-keyword">end</span>
712
<!-- statements-source --></div>
714
<!-- statements-method -->
715
<div id="subject-method" class="method-detail"><a name="method-i-subject" id="method-i-subject"></a>
716
<div class="method-heading"><span class="method-name">subject</span><span class="method-args">(predicate,target)</span> <span class="method-click-advice">click to toggle source</span></div>
717
<div class="method-description">
718
<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>
719
<div class="method-source-code" id="subject-source">
721
<span class="ruby-comment"># File rdf/redland/model.rb, line 301</span>
722
<span class="ruby-keyword">def</span> <span class="ruby-identifier">subject</span>(<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">target</span>)
723
<span class="ruby-keyword">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>
724
<span class="ruby-identifier">predicate</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">predicate</span>)
725
<span class="ruby-keyword">end</span>
726
<span class="ruby-keyword">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">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>
727
<span class="ruby-identifier">target</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
728
<span class="ruby-keyword">end</span>
729
<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">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>)
730
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_node</span>
731
<span class="ruby-keyword">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">if</span> <span class="ruby-identifier">is_literal?</span>(<span class="ruby-identifier">my_node</span>)
732
<span class="ruby-keyword">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">self</span>,<span class="ruby-keyword">false</span>)
733
<span class="ruby-keyword">end</span>
735
<!-- subject-source --></div>
737
<!-- subject-method -->
738
<div id="subjects-method" class="method-detail"><a name="method-i-subjects" id="method-i-subjects"></a>
739
<div class="method-heading"><span class="method-name">subjects</span><span class="method-args">(predicate,target)</span> <span class="method-click-advice">click to toggle source</span></div>
740
<div class="method-description">
741
<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>
742
<div class="method-source-code" id="subjects-source">
744
<span class="ruby-comment"># File rdf/redland/model.rb, line 278</span>
745
<span class="ruby-keyword">def</span> <span class="ruby-identifier">subjects</span>(<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">target</span>)
746
<span class="ruby-keyword">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>
747
<span class="ruby-identifier">predicate</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">predicate</span>)
748
<span class="ruby-keyword">end</span>
749
<span class="ruby-keyword">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">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>
750
<span class="ruby-identifier">target</span> = <span class="ruby-constant">Node</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
751
<span class="ruby-keyword">end</span>
752
<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">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>)
753
<span class="ruby-identifier">raise</span> <span class="ruby-constant">RedlandError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">"Unable to create iterator"</span>) <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">my_iterator</span>
754
<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">self</span>,<span class="ruby-identifier">predicate</span>,<span class="ruby-identifier">target</span>)
755
<span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
756
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
757
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
758
<span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
759
<span class="ruby-keyword">end</span>
760
<span class="ruby-keyword">else</span>
761
<span class="ruby-keyword">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
762
<span class="ruby-keyword">end</span>
764
<span class="ruby-keyword">end</span>
766
<!-- subjects-source --></div>
768
<!-- subjects-method -->
769
<div id="to_string-method" class="method-detail"><a name="method-i-to_string" id="method-i-to_string"></a>
770
<div class="method-heading"><span class="method-name">to_string</span><span class="method-args">(name="", base_uri=nil, mime_type="", type_uri=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
771
<div class="method-description">
772
<p>Serialize the <a href="Model.html">Model</a> to a syntax</p>
773
<div class="method-source-code" id="to_string-source">
775
<span class="ruby-comment"># File rdf/redland/model.rb, line 426</span>
776
<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_string</span>(<span class="ruby-identifier">name</span>=<span class="ruby-string">""</span>, <span class="ruby-identifier">base_uri</span>=<span class="ruby-keyword">nil</span>, <span class="ruby-identifier">mime_type</span>=<span class="ruby-string">""</span>, <span class="ruby-identifier">type_uri</span>=<span class="ruby-keyword">nil</span>)
777
<span class="ruby-identifier">rbase_uri</span> = <span class="ruby-identifier">base_uri</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">base_uri</span>.<span class="ruby-identifier">uri</span>
778
<span class="ruby-identifier">rtype_uri</span> = <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">type_uri</span>.<span class="ruby-identifier">uri</span>
780
<span class="ruby-keyword">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>)
781
<span class="ruby-keyword">end</span>
783
<!-- to_string-source --></div>
785
<!-- to_string-method -->
786
<div id="triples-method" class="method-detail"><a name="method-i-triples" id="method-i-triples"></a>
787
<div class="method-heading"><span class="method-name">triples</span><span class="method-args">(context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
788
<div class="method-description">
789
<p>Yield the triples subject, predicate, and object if a block is given. Otherwise return an array of the statements</p>
790
<div class="method-source-code" id="triples-source">
792
<span class="ruby-comment"># File rdf/redland/model.rb, line 202</span>
793
<span class="ruby-keyword">def</span> <span class="ruby-identifier">triples</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword">nil</span>)
794
<span class="ruby-identifier">stream</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>)
795
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">stream</span>
796
<span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
797
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
798
<span class="ruby-keyword">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>
799
<span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
800
<span class="ruby-keyword">end</span>
801
<span class="ruby-keyword">else</span>
802
<span class="ruby-keyword">return</span> <span class="ruby-identifier">get_statement_array</span>(<span class="ruby-identifier">stream</span>)
803
<span class="ruby-keyword">end</span>
804
<span class="ruby-keyword">end</span>
806
<!-- triples-source --></div>
808
<!-- triples-method -->
809
<div id="triples_with_context-method" class="method-detail"><a name="method-i-triples_with_context" id="method-i-triples_with_context"></a>
810
<div class="method-heading"><span class="method-name">triples_with_context</span><span class="method-args">(context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
811
<div class="method-description">
812
<p>Yield the triples as well as the context</p>
813
<div class="method-source-code" id="triples_with_context-source">
815
<span class="ruby-comment"># File rdf/redland/model.rb, line 225</span>
816
<span class="ruby-keyword">def</span> <span class="ruby-identifier">triples_with_context</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword">nil</span>)
817
<span class="ruby-identifier">stream</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">as_stream</span>(<span class="ruby-identifier">context</span>)
818
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">end?</span>
819
<span class="ruby-identifier">statement</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">current</span>
820
<span class="ruby-keyword">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>
821
<span class="ruby-identifier">stream</span>.<span class="ruby-identifier">next</span>
822
<span class="ruby-keyword">end</span>
823
<span class="ruby-keyword">end</span>
825
<!-- triples_with_context-source --></div>
827
<!-- triples_with_context-method -->
828
<div id="yield_node_or_array-method" class="method-detail"><a name="method-i-yield_node_or_array" id="method-i-yield_node_or_array"></a>
829
<div class="method-heading"><span class="method-name">yield_node_or_array</span><span class="method-args">(iterator)</span> <span class="method-click-advice">click to toggle source</span></div>
830
<div class="method-description">
831
<div class="method-source-code" id="yield_node_or_array-source">
833
<span class="ruby-comment"># File rdf/redland/model.rb, line 337</span>
834
<span class="ruby-keyword">def</span> <span class="ruby-identifier">yield_node_or_array</span>(<span class="ruby-identifier">iterator</span>)
835
<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">self</span>,<span class="ruby-identifier">source</span>,<span class="ruby-identifier">target</span>)
836
<span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
837
<span class="ruby-keyword">while</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">end?</span>
838
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">current</span>
839
<span class="ruby-identifier">iterator</span>.<span class="ruby-identifier">next</span>
840
<span class="ruby-keyword">end</span>
841
<span class="ruby-keyword">else</span>
842
<span class="ruby-keyword">return</span> <span class="ruby-identifier">get_node_array</span>(<span class="ruby-identifier">iterator</span>)
843
<span class="ruby-keyword">end</span>
844
<span class="ruby-keyword">end</span>
846
<!-- yield_node_or_array-source --></div>
848
<!-- yield_node_or_array-method --></div>
849
<!-- public-instance-method-details --></div>
850
<!-- 5Buntitled-5D --></div>
851
<!-- documentation -->
854
<div class="outerHeader">
855
Go to <a href="/" target="_parent">Redland Home</a> -
856
<a href="/bindings/" target="_parent">Language Bindings Home</a> -
857
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
860
<p>(C) Copyright 2004-2013 <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>
862
</div> <!-- end outerBlock -->