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

« back to all changes in this revision

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

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

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="utf-8"?>
 
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 
3
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
4
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
5
<head>
 
6
<title>Redland RDF 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">
 
9
</script>
 
10
<script src="../js/thickbox-compressed.js" type="text/javascript" charset="utf-8">
 
11
</script>
 
12
<script src="../js/quicksearch.js" type="text/javascript" charset="utf-8">
 
13
</script>
 
14
<script src="../js/darkfish.js" type="text/javascript" charset="utf-8">
 
15
</script>
 
16
</head>
 
17
<body id="top" class="class">
 
18
<div id="metadata">
 
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>
 
22
</div>
 
23
</div>
 
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">
 
28
<ul>
 
29
<li><a href="../rdf/redland/model_rb.html?TB_iframe=true&amp;height=550&amp;width=785" class="thickbox" title="rdf/redland/model.rb">rdf/redland/model.rb</a></li>
 
30
</ul>
 
31
</div>
 
32
</div>
 
33
</div>
 
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>
 
38
</div>
 
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>
 
76
</ul>
 
77
</div>
 
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>
 
83
</ul>
 
84
</div>
 
85
</div>
 
86
<div id="project-metadata">
 
87
<div id="fileindex-section" class="section project-section">
 
88
<h3 class="section-header">Files</h3>
 
89
<ul>
 
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>
 
94
</ul>
 
95
</div>
 
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>
 
100
</form>
 
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>
 
132
</ul>
 
133
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
 
134
</div>
 
135
</div>
 
136
</div>
 
137
<div id="documentation">
 
138
<h1 class="class">Redland::Model</h1>
 
139
<div id="description" class="description"></div>
 
140
<!-- description -->
 
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>
 
147
</div>
 
148
</div>
 
149
<!-- attribute-method-details -->
 
150
<!-- Methods -->
 
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">
 
158
<pre>
 
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>)
 
164
  }
 
165
<span class="ruby-keyword">end</span>
 
166
</pre></div>
 
167
<!-- create_finalizer-source --></div>
 
168
</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">
 
175
<pre>
 
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>
 
185
</pre></div>
 
186
<!-- new-source --></div>
 
187
</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">
 
197
<pre>
 
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>
 
203
</pre></div>
 
204
<!-- add-source --></div>
 
205
</div>
 
206
<!-- add-method -->
 
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">
 
212
<pre>
 
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>
 
223
</pre></div>
 
224
<!-- add_statement-source --></div>
 
225
</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">
 
232
<pre>
 
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>
 
243
</pre></div>
 
244
<!-- add_statements-source --></div>
 
245
</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">
 
252
<pre>
 
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>
 
264
</pre></div>
 
265
<!-- as_stream-source --></div>
 
266
</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">
 
273
<pre>
 
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">&lt;&lt;</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>
 
293
</pre></div>
 
294
<!-- contexts-source --></div>
 
295
</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">
 
302
<pre>
 
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>
 
311
</pre></div>
 
312
<!-- create_resource-source --></div>
 
313
</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">
 
320
<pre>
 
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>
 
334
</pre></div>
 
335
<!-- delete-source --></div>
 
336
</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">
 
343
<pre>
 
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>
 
350
</pre></div>
 
351
<!-- delete_context-source --></div>
 
352
</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">
 
359
<pre>
 
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>
 
370
</pre></div>
 
371
<!-- delete_statement-source --></div>
 
372
</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">
 
379
<pre>
 
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>
 
384
</pre></div>
 
385
<!-- dump_model-source --></div>
 
386
</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>
 
393
<pre>
 
394
model.find(nil,FOAF['firstName'],'Dominic Sisneros'){|s,p,o ...}
 
395
</pre>
 
396
<div class="method-source-code" id="find-source">
 
397
<pre>
 
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>
 
420
</pre></div>
 
421
<!-- find-source --></div>
 
422
</div>
 
423
<!-- find-method -->
 
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">
 
429
<pre>
 
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>
 
435
</pre></div>
 
436
<!-- get_resource-source --></div>
 
437
</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">
 
444
<pre>
 
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>
 
450
</pre></div>
 
451
<!-- include-3F-source --></div>
 
452
</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">
 
459
<pre>
 
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>
 
464
</pre></div>
 
465
<!-- include_statement-3F-source --></div>
 
466
</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">
 
472
<pre>
 
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>
 
479
</pre></div>
 
480
<!-- load-source --></div>
 
481
</div>
 
482
<!-- load-method -->
 
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">
 
488
<pre>
 
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>
 
498
</pre></div>
 
499
<!-- object-source --></div>
 
500
</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">
 
507
<pre>
 
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">&gt;</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>
 
524
</pre></div>
 
525
<!-- parse_and_merge-source --></div>
 
526
</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">
 
533
<pre>
 
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>
 
554
</pre></div>
 
555
<!-- predicates-source --></div>
 
556
</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">
 
563
<pre>
 
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>
 
573
</pre></div>
 
574
<!-- query_execute-source --></div>
 
575
</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">
 
582
<pre>
 
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>
 
587
</pre></div>
 
588
<!-- rewrite-source --></div>
 
589
</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">
 
596
<pre>
 
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>
 
602
</pre></div>
 
603
<!-- save-source --></div>
 
604
</div>
 
605
<!-- save-method -->
 
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">
 
611
<pre>
 
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">&lt;</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>
 
618
</pre></div>
 
619
<!-- size-source --></div>
 
620
</div>
 
621
<!-- size-method -->
 
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">
 
627
<pre>
 
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,"---&gt;",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">&lt;&lt;</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>
 
645
  }
 
646
  
 
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>
 
652
 
 
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>
 
667
    
 
668
    <span class="ruby-keyword">if</span> <span class="ruby-identifier">replace</span>
 
669
      
 
670
      <span class="ruby-identifier">transactions</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-constant">Statement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sub</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>),<span class="ruby-identifier">new_statement</span>]
 
671
    <span class="ruby-keyword">end</span>
 
672
  }
 
673
 
 
674
  
 
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>])
 
678
  }
 
679
<span class="ruby-keyword">end</span>
 
680
</pre></div>
 
681
<!-- smush-source --></div>
 
682
</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">
 
688
<pre>
 
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>)
 
691
  
 
692
<span class="ruby-keyword">end</span>
 
693
</pre></div>
 
694
<!-- statement_array_or_yield-source --></div>
 
695
</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">
 
702
<pre>
 
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>
 
711
</pre></div>
 
712
<!-- statements-source --></div>
 
713
</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">
 
720
<pre>
 
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>
 
734
</pre></div>
 
735
<!-- subject-source --></div>
 
736
</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">
 
743
<pre>
 
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>
 
763
 
 
764
<span class="ruby-keyword">end</span>
 
765
</pre></div>
 
766
<!-- subjects-source --></div>
 
767
</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">
 
774
<pre>
 
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>
 
779
 
 
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>
 
782
</pre></div>
 
783
<!-- to_string-source --></div>
 
784
</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">
 
791
<pre>
 
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>
 
805
</pre></div>
 
806
<!-- triples-source --></div>
 
807
</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">
 
814
<pre>
 
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>
 
824
</pre></div>
 
825
<!-- triples_with_context-source --></div>
 
826
</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">
 
832
<pre>
 
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>
 
845
</pre></div>
 
846
<!-- yield_node_or_array-source --></div>
 
847
</div>
 
848
<!-- yield_node_or_array-method --></div>
 
849
<!-- public-instance-method-details --></div>
 
850
<!-- 5Buntitled-5D --></div>
 
851
<!-- documentation -->
 
852
<hr />
 
853
 
 
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>
 
858
</div>
 
859
 
 
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>
 
861
 
 
862
</div> <!-- end outerBlock -->
 
863
 
 
864
</body>
 
865
</html>