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

« back to all changes in this revision

Viewing changes to docs/rdoc/classes/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 Application Framework - Ruby RDoc - Class: Redland::MergedModel</title>
7
 
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
8
 
<script type="text/javascript">
9
 
  // <![CDATA[
10
 
 
11
 
  function popupCode( url ) {
12
 
    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
13
 
  }
14
 
 
15
 
  function toggleCode( id ) {
16
 
    if ( document.getElementById )
17
 
      elem = document.getElementById( id );
18
 
    else if ( document.all )
19
 
      elem = eval( "document.all." + id );
20
 
    else
21
 
      return false;
22
 
 
23
 
    elemStyle = elem.style;
24
 
    
25
 
    if ( elemStyle.display != "block" ) {
26
 
      elemStyle.display = "block"
27
 
    } else {
28
 
      elemStyle.display = "none"
29
 
    }
30
 
 
31
 
    return true;
32
 
  }
33
 
  
34
 
  // Make codeblocks hidden by default
35
 
  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
36
 
  
37
 
  // ]]>
38
 
</script>
39
 
</head>
40
 
<body>
41
 
<div class="outerBlock">
42
 
 
43
 
<div class="outerHeader">
44
 
Go to <a href="/" target="_parent">Redland Home</a> - 
45
 
<a href="/bindings/" target="_parent">Language Bindings Home</a> - 
46
 
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
47
 
</div>
48
 
 
49
 
<div id="classHeader">
50
 
<table class="header-table">
51
 
<tr class="top-aligned-row">
52
 
<td><strong>Class</strong></td>
53
 
<td class="class-name-in-header">Redland::MergedModel</td>
54
 
</tr>
55
 
<tr class="top-aligned-row">
56
 
<td><strong>In:</strong></td>
57
 
<td><a href="../../files/rdf/redland/model_rb.html">rdf/redland/model.rb</a><br /></td>
58
 
</tr>
59
 
<tr class="top-aligned-row">
60
 
<td><strong>Parent:</strong></td>
61
 
<td><a href="Model.html">Model</a></td>
62
 
</tr>
63
 
</table>
64
 
</div>
65
 
<!-- banner header -->
66
 
<div id="bodyContent">
67
 
<div id="contextContent">
68
 
<div id="description">
69
 
<p>A non-context-aware model used for the purpose of merging</p>
70
 
</div>
71
 
</div>
72
 
<div id="method-list">
73
 
<h3 class="section-bar">Methods</h3>
74
 
<div class="name-list"><a href="#M000169">find_canonical</a>&nbsp;&nbsp; <a href="#M000167">find_subject_in_master</a>&nbsp;&nbsp; <a href="#M000166">new</a>&nbsp;&nbsp; <a href="#M000170">rewrite</a>&nbsp;&nbsp; <a href="#M000168">smush</a>&nbsp;&nbsp;</div>
75
 
</div>
76
 
</div>
77
 
<!-- if includes -->
78
 
<div id="section">
79
 
<div id="attribute-list">
80
 
<h3 class="section-bar">Attributes</h3>
81
 
<div class="name-list">
82
 
<table>
83
 
<tr class="top-aligned-row context-row">
84
 
<td class="context-item-name">canonical</td>
85
 
<td class="context-item-value">&nbsp;[R]&nbsp;</td>
86
 
<td class="context-item-desc"></td>
87
 
</tr>
88
 
<tr class="top-aligned-row context-row">
89
 
<td class="context-item-name">global_rewrites</td>
90
 
<td class="context-item-value">&nbsp;[R]&nbsp;</td>
91
 
<td class="context-item-desc"></td>
92
 
</tr>
93
 
</table>
94
 
</div>
95
 
</div>
96
 
<!-- if method_list -->
97
 
<div id="methods">
98
 
<h3 class="section-bar">Public Class methods</h3>
99
 
<div id="method-M000166" class="method-detail"><a name="M000166" id="M000166"></a>
100
 
<div class="method-heading"><a href="#M000166" class="method-signature"><span class="method-name">new</span><span class="method-args">(master_model)</span></a></div>
101
 
<div class="method-description">
102
 
<p>Constructor - needs a master model to use</p>
103
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000166-source');return false;">[Source]</a></p>
104
 
<div class="method-source-code" id="M000166-source">
105
 
<pre>
106
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 447</span>
107
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">master_model</span>)
108
 
      <span class="ruby-ivar">@hooks</span> = {}
109
 
      <span class="ruby-ivar">@count</span> = {}
110
 
      <span class="ruby-ivar">@inverse_functional_properties</span> = []
111
 
      <span class="ruby-ivar">@identifiers</span> = [] <span class="ruby-comment cmt"># list of inverse functional properties to smush</span>
112
 
      <span class="ruby-ivar">@canonical</span> = {} <span class="ruby-comment cmt">#rewrites to perform on local level</span>
113
 
      <span class="ruby-ivar">@global_rewrites</span> = {} <span class="ruby-comment cmt">#rewrites to apply globally</span>
114
 
      <span class="ruby-ivar">@transactions</span> = []
115
 
      <span class="ruby-ivar">@master</span> = <span class="ruby-identifier">master_model</span>
116
 
      <span class="ruby-ivar">@pred_identifiers</span> = {}
117
 
      <span class="ruby-keyword kw">super</span>()
118
 
      
119
 
    <span class="ruby-keyword kw">end</span>
120
 
</pre></div>
121
 
</div>
122
 
</div>
123
 
<h3 class="section-bar">Public Instance methods</h3>
124
 
<div id="method-M000169" class="method-detail"><a name="M000169" id="M000169"></a>
125
 
<div class="method-heading"><a href="#M000169" class="method-signature"><span class="method-name">find_canonical</span><span class="method-args">(predlist)</span></a></div>
126
 
<div class="method-description">
127
 
<p>Locate predicates for smushing</p>
128
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000169-source');return false;">[Source]</a></p>
129
 
<div class="method-source-code" id="M000169-source">
130
 
<pre>
131
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 475</span>
132
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_canonical</span>(<span class="ruby-identifier">predlist</span>)
133
 
      <span class="ruby-identifier">predlist</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pred</span><span class="ruby-operator">|</span>
134
 
        <span class="ruby-identifier">identifier</span> = {}
135
 
        <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find</span>(<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">pred</span>,<span class="ruby-keyword kw">nil</span>) <span class="ruby-keyword kw">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>
136
 
          <span class="ruby-identifier">master_id</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find_subject_in_master</span>(<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>)
137
 
          <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">master_id</span>
138
 
            <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">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>)
139
 
              <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> 
140
 
            <span class="ruby-keyword kw">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 cmt">#already an identifying URI</span>
141
 
              <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>]
142
 
              <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">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>)
143
 
                <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>
144
 
              <span class="ruby-keyword kw">end</span>
145
 
            <span class="ruby-keyword kw">end</span>
146
 
          <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># master_id</span>
147
 
            <span class="ruby-keyword kw">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>)
148
 
              <span class="ruby-keyword kw">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>
149
 
                <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>
150
 
                <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>
151
 
              <span class="ruby-keyword kw">end</span>
152
 
            <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># master_id not in identifier</span>
153
 
              <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>
154
 
              <span class="ruby-keyword kw">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>)
155
 
                <span class="ruby-keyword kw">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>
156
 
                  <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>]
157
 
                <span class="ruby-keyword kw">end</span>
158
 
              <span class="ruby-keyword kw">else</span>
159
 
                <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">subj</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">master_id</span>
160
 
                  <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>
161
 
                <span class="ruby-keyword kw">end</span>
162
 
              <span class="ruby-keyword kw">end</span>
163
 
            <span class="ruby-keyword kw">end</span>
164
 
          <span class="ruby-keyword kw">end</span>
165
 
        <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># self.find</span>
166
 
        <span class="ruby-ivar">@pred_identifiers</span>[<span class="ruby-identifier">pred</span>] = <span class="ruby-identifier">identifier</span>
167
 
      <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt">#predlist.each</span>
168
 
    <span class="ruby-keyword kw">end</span>
169
 
</pre></div>
170
 
</div>
171
 
</div>
172
 
<div id="method-M000167" class="method-detail"><a name="M000167" id="M000167"></a>
173
 
<div class="method-heading"><a href="#M000167" class="method-signature"><span class="method-name">find_subject_in_master</span><span class="method-args">(pred,obj)</span></a></div>
174
 
<div class="method-description">
175
 
<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>
176
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000167-source');return false;">[Source]</a></p>
177
 
<div class="method-source-code" id="M000167-source">
178
 
<pre>
179
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 463</span>
180
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_subject_in_master</span>(<span class="ruby-identifier">pred</span>,<span class="ruby-identifier">obj</span>)
181
 
      <span class="ruby-keyword kw">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>)
182
 
    <span class="ruby-keyword kw">end</span>
183
 
</pre></div>
184
 
</div>
185
 
</div>
186
 
<div id="method-M000170" class="method-detail"><a name="M000170" id="M000170"></a>
187
 
<div class="method-heading"><a href="#M000170" class="method-signature"><span class="method-name">rewrite</span><span class="method-args">(context=nil)</span></a></div>
188
 
<div class="method-description">
189
 
<p>actually do the <a href="MergedModel.html#M000168">smush</a></p>
190
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000170-source');return false;">[Source]</a></p>
191
 
<div class="method-source-code" id="M000170-source">
192
 
<pre>
193
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 514</span>
194
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewrite</span>(<span class="ruby-identifier">context</span>=<span class="ruby-keyword kw">nil</span>)
195
 
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">triples</span>() <span class="ruby-keyword kw">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>
196
 
        <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 kw">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>)
197
 
        <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 kw">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>)
198
 
        
199
 
        
200
 
        <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>)
201
 
      <span class="ruby-keyword kw">end</span>
202
 
    <span class="ruby-keyword kw">end</span>
203
 
</pre></div>
204
 
</div>
205
 
</div>
206
 
<div id="method-M000168" class="method-detail"><a name="M000168" id="M000168"></a>
207
 
<div class="method-heading"><a href="#M000168" class="method-signature"><span class="method-name">smush</span><span class="method-args">(predlist)</span></a></div>
208
 
<div class="method-description">
209
 
<p>Effectively removes the listes Predicates from the <a href="Model.html">Model</a> by replacing all occurrences with a blank node (?? confirm)</p>
210
 
<p><a class="source-toggle" href="#" onclick="toggleCode('M000168-source');return false;">[Source]</a></p>
211
 
<div class="method-source-code" id="M000168-source">
212
 
<pre>
213
 
<span class="ruby-comment cmt"># File rdf/redland/model.rb, line 469</span>
214
 
    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">smush</span>(<span class="ruby-identifier">predlist</span>)
215
 
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find_canonical</span>(<span class="ruby-identifier">predlist</span>)
216
 
      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">rewrite</span>()
217
 
    <span class="ruby-keyword kw">end</span>
218
 
</pre></div>
219
 
</div>
220
 
</div>
221
 
</div>
222
 
</div>
223
 
<hr />
224
 
 
225
 
<div class="outerHeader">
226
 
Go to <a href="/" target="_parent">Redland Home</a> - 
227
 
<a href="/bindings/" target="_parent">Language Bindings Home</a> - 
228
 
<a href="/docs/ruby.html" target="_parent">Ruby API Home</a>
229
 
</div>
230
 
 
231
 
<p>(C) Copyright 2004-2011 <a href="http://www.dajobe.org/" target="_parent">Dave Beckett</a>, (C) Copyright 2004-2005 <a href="http://www.bristol.ac.uk/" target="_parent">University of Bristol</a></p>
232
 
 
233
 
</div> <!-- end outerBlock -->
234
 
 
235
 
</body>
236
 
</html>