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

« back to all changes in this revision

Viewing changes to docs/rdoc/Redland/MergedModel.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::MergedModel</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"><a href="Model.html">Redland::Model</a></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-new">::new</a></li>
 
44
<li><a href="#method-i-find_canonical">#find_canonical</a></li>
 
45
<li><a href="#method-i-find_subject_in_master">#find_subject_in_master</a></li>
 
46
<li><a href="#method-i-rewrite">#rewrite</a></li>
 
47
<li><a href="#method-i-smush">#smush</a></li>
 
48
</ul>
 
49
</div>
 
50
</div>
 
51
<div id="project-metadata">
 
52
<div id="fileindex-section" class="section project-section">
 
53
<h3 class="section-header">Files</h3>
 
54
<ul>
 
55
<li class="file"><a href="../Makefile.html">Makefile</a></li>
 
56
<li class="file"><a href="../rdf/Makefile.html">Makefile</a></li>
 
57
<li class="file"><a href="../rdf/redland/Makefile.html">Makefile</a></li>
 
58
<li class="file"><a href="../rdf/redland/schemas/Makefile.html">Makefile</a></li>
 
59
</ul>
 
60
</div>
 
61
<div id="classindex-section" class="section project-section">
 
62
<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>
 
63
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
 
64
<fieldset><legend>Quicksearch</legend> <input type="text" name="quicksearch" value="" class="quicksearch-field" /></fieldset>
 
65
</form>
 
66
<ul class="link-list">
 
67
<li><a href="../Redland.html">Redland</a></li>
 
68
<li><a href="../Redland/BNode.html">Redland::BNode</a></li>
 
69
<li><a href="../Redland/ContextParser.html">Redland::ContextParser</a></li>
 
70
<li><a href="../Redland/FileStore.html">Redland::FileStore</a></li>
 
71
<li><a href="../Redland/HashOpen.html">Redland::HashOpen</a></li>
 
72
<li><a href="../Redland/HashStore.html">Redland::HashStore</a></li>
 
73
<li><a href="../Redland/Literal.html">Redland::Literal</a></li>
 
74
<li><a href="../Redland/MemoryStore.html">Redland::MemoryStore</a></li>
 
75
<li><a href="../Redland/MergedModel.html">Redland::MergedModel</a></li>
 
76
<li><a href="../Redland/Model.html">Redland::Model</a></li>
 
77
<li><a href="../Redland/Namespace.html">Redland::Namespace</a></li>
 
78
<li><a href="../Redland/Node.html">Redland::Node</a></li>
 
79
<li><a href="../Redland/NodeIterator.html">Redland::NodeIterator</a></li>
 
80
<li><a href="../Redland/NodeTypeError.html">Redland::NodeTypeError</a></li>
 
81
<li><a href="../Redland/OWL.html">Redland::OWL</a></li>
 
82
<li><a href="../Redland/Parser.html">Redland::Parser</a></li>
 
83
<li><a href="../Redland/Query.html">Redland::Query</a></li>
 
84
<li><a href="../Redland/QueryResults.html">Redland::QueryResults</a></li>
 
85
<li><a href="../Redland/RDFS.html">Redland::RDFS</a></li>
 
86
<li><a href="../Redland/RedlandError.html">Redland::RedlandError</a></li>
 
87
<li><a href="../Redland/Resource.html">Redland::Resource</a></li>
 
88
<li><a href="../Redland/Serializer.html">Redland::Serializer</a></li>
 
89
<li><a href="../Redland/Statement.html">Redland::Statement</a></li>
 
90
<li><a href="../Redland/Stream.html">Redland::Stream</a></li>
 
91
<li><a href="../Redland/TripleStore.html">Redland::TripleStore</a></li>
 
92
<li><a href="../Redland/Uri.html">Redland::Uri</a></li>
 
93
<li><a href="../Redland/Util.html">Redland::Util</a></li>
 
94
<li><a href="../Redland/World.html">Redland::World</a></li>
 
95
<li><a href="../DC.html">DC</a></li>
 
96
<li><a href="../FOAF.html">FOAF</a></li>
 
97
</ul>
 
98
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
 
99
</div>
 
100
</div>
 
101
</div>
 
102
<div id="documentation">
 
103
<h1 class="class">Redland::MergedModel</h1>
 
104
<div id="description" class="description">
 
105
<p>A non-context-aware model used for the purpose of merging</p>
 
106
</div>
 
107
<!-- description -->
 
108
<div id="5Buntitled-5D" class="documentation-section"><!-- Attributes -->
 
109
<div id="attribute-method-details" class="method-section section">
 
110
<h3 class="section-header">Attributes</h3>
 
111
<div id="canonical-attribute-method" class="method-detail"><a name="canonical" id="canonical"></a>
 
112
<div class="method-heading attribute-method-heading"><span class="method-name">canonical</span><span class="attribute-access-type">[R]</span></div>
 
113
<div class="method-description"></div>
 
114
</div>
 
115
<div id="global_rewrites-attribute-method" class="method-detail"><a name="global_rewrites" id="global_rewrites"></a>
 
116
<div class="method-heading attribute-method-heading"><span class="method-name">global_rewrites</span><span class="attribute-access-type">[R]</span></div>
 
117
<div class="method-description"></div>
 
118
</div>
 
119
</div>
 
120
<!-- attribute-method-details -->
 
121
<!-- Methods -->
 
122
<div id="public-class-method-details" class="method-section section">
 
123
<h3 class="section-header">Public Class Methods</h3>
 
124
<div id="new-method" class="method-detail"><a name="method-c-new" id="method-c-new"></a>
 
125
<div class="method-heading"><span class="method-name">new</span><span class="method-args">(master_model)</span> <span class="method-click-advice">click to toggle source</span></div>
 
126
<div class="method-description">
 
127
<p>Constructor - needs a master model to use</p>
 
128
<div class="method-source-code" id="new-source">
 
129
<pre>
 
130
<span class="ruby-comment"># File rdf/redland/model.rb, line 447</span>
 
131
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">master_model</span>)
 
132
  <span class="ruby-ivar">@hooks</span> = {}
 
133
  <span class="ruby-ivar">@count</span> = {}
 
134
  <span class="ruby-ivar">@inverse_functional_properties</span> = []
 
135
  <span class="ruby-ivar">@identifiers</span> = [] <span class="ruby-comment"># list of inverse functional properties to smush</span>
 
136
  <span class="ruby-ivar">@canonical</span> = {} <span class="ruby-comment">#rewrites to perform on local level</span>
 
137
  <span class="ruby-ivar">@global_rewrites</span> = {} <span class="ruby-comment">#rewrites to apply globally</span>
 
138
  <span class="ruby-ivar">@transactions</span> = []
 
139
  <span class="ruby-ivar">@master</span> = <span class="ruby-identifier">master_model</span>
 
140
  <span class="ruby-ivar">@pred_identifiers</span> = {}
 
141
  <span class="ruby-keyword">super</span>()
 
142
  
 
143
<span class="ruby-keyword">end</span>
 
144
</pre></div>
 
145
<!-- new-source --></div>
 
146
</div>
 
147
<!-- new-method --></div>
 
148
<!-- public-class-method-details -->
 
149
<div id="public-instance-method-details" class="method-section section">
 
150
<h3 class="section-header">Public Instance Methods</h3>
 
151
<div id="find_canonical-method" class="method-detail"><a name="method-i-find_canonical" id="method-i-find_canonical"></a>
 
152
<div class="method-heading"><span class="method-name">find_canonical</span><span class="method-args">(predlist)</span> <span class="method-click-advice">click to toggle source</span></div>
 
153
<div class="method-description">
 
154
<p>Locate predicates for smushing</p>
 
155
<div class="method-source-code" id="find_canonical-source">
 
156
<pre>
 
157
<span class="ruby-comment"># File rdf/redland/model.rb, line 475</span>
 
158
<span class="ruby-keyword">def</span> <span class="ruby-identifier">find_canonical</span>(<span class="ruby-identifier">predlist</span>)
 
159
  <span class="ruby-identifier">predlist</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pred</span><span class="ruby-operator">|</span>
 
160
    <span class="ruby-identifier">identifier</span> = {}
 
161
    <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-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">subj</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span><span class="ruby-operator">|</span>
 
162
      <span class="ruby-identifier">master_id</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_subject_in_master</span>(<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>)
 
163
      <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">master_id</span>
 
164
        <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>)
 
165
          <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">subj</span> 
 
166
        <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">subj</span> <span class="ruby-comment">#already an identifying URI</span>
 
167
          <span class="ruby-identifier">new_value</span> = <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>]
 
168
          <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-ivar">@canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">subj</span>.<span class="ruby-identifier">to_s</span>)
 
169
            <span class="ruby-ivar">@canonical</span>[<span class="ruby-identifier">subj</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">new_value</span>
 
170
          <span class="ruby-keyword">end</span>
 
171
        <span class="ruby-keyword">end</span>
 
172
      <span class="ruby-keyword">else</span> <span class="ruby-comment"># master_id</span>
 
173
        <span class="ruby-keyword">if</span> <span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>)
 
174
          <span class="ruby-keyword">if</span> <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">master_id</span>
 
175
            <span class="ruby-ivar">@canonical</span>[<span class="ruby-identifier">subj</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">master_id</span>
 
176
            <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">master_id</span>
 
177
          <span class="ruby-keyword">end</span>
 
178
        <span class="ruby-keyword">else</span> <span class="ruby-comment"># master_id not in identifier</span>
 
179
          <span class="ruby-identifier">identifier</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">master_id</span>
 
180
          <span class="ruby-keyword">if</span> <span class="ruby-ivar">@canonical</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">subj</span>.<span class="ruby-identifier">to_s</span>)
 
181
            <span class="ruby-keyword">if</span> <span class="ruby-ivar">@canonical</span>[<span class="ruby-identifier">subj</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">master_id</span>
 
182
              <span class="ruby-ivar">@global_rewrites</span>[<span class="ruby-identifier">master_id</span>] = <span class="ruby-ivar">@canonical</span>[<span class="ruby-identifier">subj</span>.<span class="ruby-identifier">to_s</span>]
 
183
            <span class="ruby-keyword">end</span>
 
184
          <span class="ruby-keyword">else</span>
 
185
            <span class="ruby-keyword">if</span> <span class="ruby-identifier">subj</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">master_id</span>
 
186
              <span class="ruby-ivar">@canonical</span>[<span class="ruby-identifier">subj</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">master_id</span>
 
187
            <span class="ruby-keyword">end</span>
 
188
          <span class="ruby-keyword">end</span>
 
189
        <span class="ruby-keyword">end</span>
 
190
      <span class="ruby-keyword">end</span>
 
191
    <span class="ruby-keyword">end</span> <span class="ruby-comment"># self.find</span>
 
192
    <span class="ruby-ivar">@pred_identifiers</span>[<span class="ruby-identifier">pred</span>] = <span class="ruby-identifier">identifier</span>
 
193
  <span class="ruby-keyword">end</span> <span class="ruby-comment">#predlist.each</span>
 
194
<span class="ruby-keyword">end</span>
 
195
</pre></div>
 
196
<!-- find_canonical-source --></div>
 
197
</div>
 
198
<!-- find_canonical-method -->
 
199
<div id="find_subject_in_master-method" class="method-detail"><a name="method-i-find_subject_in_master" id="method-i-find_subject_in_master"></a>
 
200
<div class="method-heading"><span class="method-name">find_subject_in_master</span><span class="method-args">(pred,obj)</span> <span class="method-click-advice">click to toggle source</span></div>
 
201
<div class="method-description">
 
202
<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>
 
203
<div class="method-source-code" id="find_subject_in_master-source">
 
204
<pre>
 
205
<span class="ruby-comment"># File rdf/redland/model.rb, line 463</span>
 
206
<span class="ruby-keyword">def</span> <span class="ruby-identifier">find_subject_in_master</span>(<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>)
 
207
  <span class="ruby-keyword">return</span> <span class="ruby-ivar">@master</span>.<span class="ruby-identifier">subject</span>(<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>)
 
208
<span class="ruby-keyword">end</span>
 
209
</pre></div>
 
210
<!-- find_subject_in_master-source --></div>
 
211
</div>
 
212
<!-- find_subject_in_master-method -->
 
213
<div id="rewrite-method" class="method-detail"><a name="method-i-rewrite" id="method-i-rewrite"></a>
 
214
<div class="method-heading"><span class="method-name">rewrite</span><span class="method-args">(context=nil)</span> <span class="method-click-advice">click to toggle source</span></div>
 
215
<div class="method-description">
 
216
<p>actually do the smush</p>
 
217
<div class="method-source-code" id="rewrite-source">
 
218
<pre>
 
219
<span class="ruby-comment"># File rdf/redland/model.rb, line 514</span>
 
220
<span class="ruby-keyword">def</span> <span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword">nil</span>)
 
221
  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">triples</span>() <span class="ruby-keyword">do</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>
 
222
    <span class="ruby-identifier">sub</span> = <span class="ruby-ivar">@canonical</span>[<span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@canonical</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">sub</span>.<span class="ruby-identifier">to_s</span>)
 
223
    <span class="ruby-identifier">obj</span> = <span class="ruby-ivar">@canonical</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@canonical</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">to_s</span>)
 
224
    
 
225
    
 
226
    <span class="ruby-ivar">@master</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">sub</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>,<span class="ruby-identifier">context</span>)
 
227
  <span class="ruby-keyword">end</span>
 
228
<span class="ruby-keyword">end</span>
 
229
</pre></div>
 
230
<!-- rewrite-source --></div>
 
231
</div>
 
232
<!-- rewrite-method -->
 
233
<div id="smush-method" class="method-detail"><a name="method-i-smush" id="method-i-smush"></a>
 
234
<div class="method-heading"><span class="method-name">smush</span><span class="method-args">(predlist)</span> <span class="method-click-advice">click to toggle source</span></div>
 
235
<div class="method-description">
 
236
<p>Effectively removes the listes Predicates from the <a href="Model.html">Model</a> by replacing all occurrences with a blank node (?? confirm)</p>
 
237
<div class="method-source-code" id="smush-source">
 
238
<pre>
 
239
<span class="ruby-comment"># File rdf/redland/model.rb, line 469</span>
 
240
<span class="ruby-keyword">def</span> <span class="ruby-identifier">smush</span>(<span class="ruby-identifier">predlist</span>)
 
241
  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">find_canonical</span>(<span class="ruby-identifier">predlist</span>)
 
242
  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">rewrite</span>()
 
243
<span class="ruby-keyword">end</span>
 
244
</pre></div>
 
245
<!-- smush-source --></div>
 
246
</div>
 
247
<!-- smush-method --></div>
 
248
<!-- public-instance-method-details --></div>
 
249
<!-- 5Buntitled-5D --></div>
 
250
<!-- documentation -->
 
251
<hr />
 
252
 
 
253
<div class="outerHeader">
 
254
Go to <a href="/" target="_parent">Redland Home</a> - 
 
255
<a href="/bindings/" target="_parent">Language Bindings Home</a> - 
 
256
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
 
257
</div>
 
258
 
 
259
<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>
 
260
 
 
261
</div> <!-- end outerBlock -->
 
262
 
 
263
</body>
 
264
</html>