pho 0.6.2 → 0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/CHANGES +12 -0
  2. data/Rakefile +1 -1
  3. data/bin/talis_store +98 -24
  4. data/doc/rdoc/classes/Pho.html +15 -0
  5. data/doc/rdoc/classes/Pho/CommandLine.html +353 -91
  6. data/doc/rdoc/classes/Pho/DatatypeProperty.html +12 -12
  7. data/doc/rdoc/classes/Pho/Enrichment/StoreEnricher.html +29 -29
  8. data/doc/rdoc/classes/Pho/Etags.html +36 -36
  9. data/doc/rdoc/classes/Pho/Facet/Results.html +19 -19
  10. data/doc/rdoc/classes/Pho/Facet/Term.html +6 -6
  11. data/doc/rdoc/classes/Pho/FieldPredicateMap.html +105 -106
  12. data/doc/rdoc/classes/Pho/FieldWeighting.html +12 -12
  13. data/doc/rdoc/classes/Pho/FileManagement/RDFManager.html +31 -8
  14. data/doc/rdoc/classes/Pho/Job.html +64 -64
  15. data/doc/rdoc/classes/Pho/Jobs.html +60 -60
  16. data/doc/rdoc/classes/Pho/QueryProfile.html +60 -60
  17. data/doc/rdoc/classes/Pho/RDF/Parser.html +28 -26
  18. data/doc/rdoc/classes/Pho/ResourceHash/Converter.html +36 -36
  19. data/doc/rdoc/classes/Pho/ResourceHash/SetAlgebra.html +12 -12
  20. data/doc/rdoc/classes/Pho/Snapshot.html +35 -35
  21. data/doc/rdoc/classes/Pho/Status.html +26 -26
  22. data/doc/rdoc/classes/Pho/Store.html +289 -245
  23. data/doc/rdoc/classes/Pho/StoreSparqlClient.html +14 -14
  24. data/doc/rdoc/classes/String.html +1 -1
  25. data/doc/rdoc/created.rid +1 -1
  26. data/doc/rdoc/files/CHANGES.html +35 -1
  27. data/doc/rdoc/files/lib/pho/command_line_rb.html +1 -1
  28. data/doc/rdoc/files/lib/pho/converter_rb.html +1 -1
  29. data/doc/rdoc/files/lib/pho/field_predicate_map_rb.html +1 -1
  30. data/doc/rdoc/files/lib/pho/rdf_collection_rb.html +1 -1
  31. data/doc/rdoc/files/lib/pho/rdf_rb.html +1 -1
  32. data/doc/rdoc/files/lib/pho/store_rb.html +1 -1
  33. data/doc/rdoc/files/lib/pho_rb.html +2 -1
  34. data/doc/rdoc/fr_class_index.html +3 -0
  35. data/doc/rdoc/fr_file_index.html +1 -0
  36. data/doc/rdoc/fr_method_index.html +153 -141
  37. data/lib/pho.rb +3 -0
  38. data/lib/pho/command_line.rb +139 -14
  39. data/lib/pho/field_predicate_map.rb +1 -2
  40. data/lib/pho/oai.rb +58 -0
  41. data/lib/pho/rdf.rb +2 -0
  42. data/lib/pho/rdf_collection.rb +16 -4
  43. data/lib/pho/store.rb +23 -5
  44. data/tests/tc_command_line.rb +229 -0
  45. data/tests/tc_field_predicate_map.rb +5 -1
  46. data/tests/tc_metabox.rb +29 -1
  47. data/tests/tc_oai.rb +31 -0
  48. data/tests/tc_rdf_collection.rb +80 -15
  49. data/tests/ts_pho.rb +3 -1
  50. metadata +5 -2
data/CHANGES CHANGED
@@ -1,5 +1,17 @@
1
1
  Brief notes on significant changes and additions in each release
2
2
 
3
+ == Version 0.7
4
+
5
+ * Started on OAI client
6
+ * New commandline options: add_mapping and add_weight
7
+ * Updated talis_store so that it now supports environment variables for user, pass, store (TALIS_USER, TALIS_PASS, TALIS_STORE)
8
+ * Added getfpmap and getqueryprofile methods to command-line application for retrieving either a summary or the raw data
9
+ * Updated command-line job control functions so that the Job URI is echoed to command-line.
10
+ * Updated RDFManager so that it will now automatically upload all .rdf, .ttl and .nt files in directory. An array of extension can be provided to
11
+ configure this behaviour
12
+ * Updated command-line tool so that it will now handle uploads of turtle (.ttl) and ntriples (.nt) files correctly
13
+ * Updated Store class to allow mimetype of files and data to be specified when uploading to metabox. Useful now that the platform supports turtle
14
+
3
15
  == Version 0.6.1
4
16
 
5
17
  * Added examples/linkeddata/proxy.rb
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/testtask'
5
5
  require 'rake/clean'
6
6
 
7
7
  NAME = "pho"
8
- VER = "0.6.2"
8
+ VER = "0.7"
9
9
 
10
10
  RDOC_OPTS = ['--quiet', '--title', 'Pho (Talis Platform Client) Reference', '--main', 'README']
11
11
 
@@ -18,6 +18,20 @@ DESCRIPTION
18
18
 
19
19
  MODE
20
20
 
21
+ add_mapping
22
+ Add an entry to the field predicate map
23
+
24
+ example :
25
+
26
+ #{ PROGRAM } add_mapping -u user -p pass -s my-dev1 --field name --predicate http://xmlns.com/foaf/0.1/name
27
+
28
+ add_weight
29
+ Add a field weight to the query profile
30
+
31
+ example :
32
+
33
+ #{ PROGRAM } add_mapping -u user -p pass -s my-dev1 --field name --weight 2.0
34
+
21
35
  backup
22
36
  Take a snapshot of a store and then download that new snapshot to the local system
23
37
  By default the snapshot is downloaded into /tmp, but can be specified on the command-line
@@ -34,6 +48,22 @@ MODE
34
48
 
35
49
  #{ PROGRAM } describe -u user -p pass -s my-dev1 -r http://www.example.org/foo
36
50
 
51
+ getfpmap
52
+ Fetch and display FieldPredicate map from store
53
+
54
+ example :
55
+
56
+ #{ PROGRAM } getfpmap -u user -p pass -s my-dev1
57
+ #{ PROGRAM } getfpmap -u user -p pass -s my-dev1 --raw
58
+
59
+ getqueryprofile
60
+ Fetch and display QueryProfile from store
61
+
62
+ example :
63
+
64
+ #{ PROGRAM } getqueryprofile -u user -p pass -s my-dev1
65
+ #{ PROGRAM } getqueryprofile -u user -p pass -s my-dev1 --raw
66
+
37
67
  reindex
38
68
  Trigger a reindex job on the store
39
69
 
@@ -41,6 +71,13 @@ MODE
41
71
 
42
72
  #{ PROGRAM } reindex -u user -p pass -s my-dev1
43
73
 
74
+ remove_mapping
75
+ Remove a mapping from both the field predicate map and the query profile
76
+
77
+ example :
78
+
79
+ #{ PROGRAM } remove_mapping -u user -p pass -s my-dev1 --field name
80
+
44
81
  reset
45
82
  Reset the store. THIS WILL DELETE ALL DATA.
46
83
 
@@ -77,7 +114,7 @@ MODE
77
114
  store
78
115
  Upload some RDF data to the metabox in a Platform store. Can either specify a local file, or a URL
79
116
  When a url is specified, then the data is retrieved and then submitted to the Platform
80
- Can also be used to store an entire directory of RDF/XML using the --dir option.
117
+ Can also be used to store an entire directory of RDF/XML, Turtle and ntriples using the --dir option.
81
118
 
82
119
  example :
83
120
 
@@ -116,7 +153,17 @@ OPTIONS
116
153
  --traverse
117
154
  recursively store files or RDF
118
155
  --base
119
- base path for uploading files to content box
156
+ base path for uploading files to content box
157
+ --raw
158
+ output raw API response, e.g. for fpmap and queryprofile
159
+ --field
160
+ name of a field for fpmap or query profile
161
+ --predicate
162
+ predicate uri
163
+ --weight
164
+ weighting for a field in query profile
165
+ --analyzer
166
+ name or uri of analyzer
120
167
  EOL
121
168
 
122
169
  mode = ARGV.shift
@@ -130,7 +177,12 @@ opts = GetoptLong::new(
130
177
  [ "--file" , "-f" , GetoptLong::REQUIRED_ARGUMENT ],
131
178
  [ "--dir" , "-d" , GetoptLong::REQUIRED_ARGUMENT ],
132
179
  [ "--traverse" , "-t" , GetoptLong::NO_ARGUMENT ],
133
- [ "--base" , "-b" , GetoptLong::REQUIRED_ARGUMENT ]
180
+ [ "--base" , "-b" , GetoptLong::REQUIRED_ARGUMENT ],
181
+ [ "--raw" , GetoptLong::NO_ARGUMENT ],
182
+ [ "--field" , GetoptLong::REQUIRED_ARGUMENT ],
183
+ [ "--predicate" , GetoptLong::REQUIRED_ARGUMENT ],
184
+ [ "--weight" , GetoptLong::REQUIRED_ARGUMENT ],
185
+ [ "--analyzer" , GetoptLong::REQUIRED_ARGUMENT ]
134
186
  ).enum_for.inject({}) { |h, (k, v)| h.update k.delete('-') => v }
135
187
 
136
188
  mode = "help" if opts["--help"]
@@ -139,30 +191,50 @@ if mode == "help"
139
191
  USAGE.display
140
192
  else
141
193
 
142
- if !opts["username"]
143
- puts "no <username>"
144
- abort USAGE
145
- end
146
- if !opts["password"]
147
- puts "no <password>"
148
- abort USAGE
149
- end
150
- if !opts["store"]
151
- puts "no <store>"
152
- abort USAGE
153
- end
154
-
155
- storename = opts["store"]
156
- if !storename.start_with?("http")
157
- storename = "http://api.talis.com/stores/#{storename}"
158
- end
159
194
 
160
- store = Pho::Store.new(storename, opts["username"], opts["password"])
161
- cmds = Pho::CommandLine.new(store, opts)
195
+ # if !opts["username"]
196
+ # puts "no <username>"
197
+ # abort USAGE
198
+ # end
199
+ # if !opts["password"]
200
+ # puts "no <password>"
201
+ # abort USAGE
202
+ # end
203
+ # if !opts["store"]
204
+ # puts "no <store>"
205
+ # abort USAGE
206
+ # end
207
+ #
208
+ # storename = opts["store"]
209
+ # if !storename.start_with?("http")
210
+ # storename = "http://api.talis.com/stores/#{storename}"
211
+ # end
212
+ #
213
+ # store = Pho::Store.new(storename, opts["username"], opts["password"])
162
214
 
215
+ cmds = nil
216
+ begin
217
+ cmds = Pho::CommandLine.new(opts, ENV)
218
+ rescue RuntimeError => e
219
+ puts e
220
+ abort USAGE
221
+ end
222
+
163
223
  #begin
164
224
 
165
- case mode
225
+ #TODO
226
+ #remove_mapping
227
+ case mode
228
+ when "add_mapping"
229
+ if opts["predicate"] == nil || opts["field"] == nil
230
+ abort USAGE
231
+ end
232
+ cmds.add_mapping()
233
+ when "add_weight"
234
+ if opts["weight"] == nil || opts["field"] == nil
235
+ abort USAGE
236
+ end
237
+ cmds.add_weight()
166
238
  when "status"
167
239
  cmds.status()
168
240
  when "backup"
@@ -194,7 +266,9 @@ else
194
266
  if opts["file"] == nil
195
267
  abort USAGE
196
268
  end
197
- cmds.sparql()
269
+ cmds.sparql()
270
+ when "getfpmap"
271
+ cmds.fpmap()
198
272
  else
199
273
  abort USAGE
200
274
  end
@@ -114,6 +114,10 @@
114
114
  <a href="../files/lib/pho/changeset_rb.html">
115
115
  lib/pho/changeset.rb
116
116
  </a>
117
+ <br />
118
+ <a href="../files/lib/pho/oai_rb.html">
119
+ lib/pho/oai.rb
120
+ </a>
117
121
  <br />
118
122
  <a href="../files/lib/pho/file_management_rb.html">
119
123
  lib/pho/file_management.rb
@@ -172,6 +176,7 @@ TODO put together proper test suite for this
172
176
  Module <a href="Pho/Enrichment.html" class="link">Pho::Enrichment</a><br />
173
177
  Module <a href="Pho/Facet.html" class="link">Pho::Facet</a><br />
174
178
  Module <a href="Pho/FileManagement.html" class="link">Pho::FileManagement</a><br />
179
+ Module <a href="Pho/OAI.html" class="link">Pho::OAI</a><br />
175
180
  Module <a href="Pho/RDF.html" class="link">Pho::RDF</a><br />
176
181
  Module <a href="Pho/ResourceHash.html" class="link">Pho::ResourceHash</a><br />
177
182
  Module <a href="Pho/Sparql.html" class="link">Pho::Sparql</a><br />
@@ -215,6 +220,16 @@ Class <a href="Pho/StoreSparqlClient.html" class="link">Pho::StoreSparqlClient</
215
220
  <td>=</td>
216
221
  <td class="context-item-value">{&quot;Content-Type&quot;=&gt;&quot;application/rdf+xml&quot;}.freeze</td>
217
222
  </tr>
223
+ <tr class="top-aligned-row context-row">
224
+ <td class="context-item-name">TURTLE</td>
225
+ <td>=</td>
226
+ <td class="context-item-value">{&quot;Content-Type&quot;=&gt;&quot;text/turtle&quot;}.freeze</td>
227
+ </tr>
228
+ <tr class="top-aligned-row context-row">
229
+ <td class="context-item-name">NTRIPLES</td>
230
+ <td>=</td>
231
+ <td class="context-item-value">{&quot;Content-Type&quot;=&gt;&quot;text/plain&quot;}.freeze</td>
232
+ </tr>
218
233
  <tr class="top-aligned-row context-row">
219
234
  <td class="context-item-name">READ_ONLY</td>
220
235
  <td>=</td>
@@ -92,17 +92,24 @@ Class that implements the command-line behaviour
92
92
  <h3 class="section-bar">Methods</h3>
93
93
 
94
94
  <div class="name-list">
95
- <a href="#M000110">backup</a>&nbsp;&nbsp;
96
- <a href="#M000115">describe</a>&nbsp;&nbsp;
97
- <a href="#M000108">new</a>&nbsp;&nbsp;
98
- <a href="#M000112">reindex</a>&nbsp;&nbsp;
99
- <a href="#M000113">reset</a>&nbsp;&nbsp;
100
- <a href="#M000114">restore</a>&nbsp;&nbsp;
101
- <a href="#M000111">snapshot</a>&nbsp;&nbsp;
102
- <a href="#M000116">sparql</a>&nbsp;&nbsp;
103
- <a href="#M000109">status</a>&nbsp;&nbsp;
104
- <a href="#M000117">store</a>&nbsp;&nbsp;
105
- <a href="#M000118">upload</a>&nbsp;&nbsp;
95
+ <a href="#M000128">add_mapping</a>&nbsp;&nbsp;
96
+ <a href="#M000129">add_weight</a>&nbsp;&nbsp;
97
+ <a href="#M000117">backup</a>&nbsp;&nbsp;
98
+ <a href="#M000122">describe</a>&nbsp;&nbsp;
99
+ <a href="#M000126">fpmap</a>&nbsp;&nbsp;
100
+ <a href="#M000112">new</a>&nbsp;&nbsp;
101
+ <a href="#M000114">password</a>&nbsp;&nbsp;
102
+ <a href="#M000127">queryprofile</a>&nbsp;&nbsp;
103
+ <a href="#M000119">reindex</a>&nbsp;&nbsp;
104
+ <a href="#M000120">reset</a>&nbsp;&nbsp;
105
+ <a href="#M000121">restore</a>&nbsp;&nbsp;
106
+ <a href="#M000118">snapshot</a>&nbsp;&nbsp;
107
+ <a href="#M000123">sparql</a>&nbsp;&nbsp;
108
+ <a href="#M000116">status</a>&nbsp;&nbsp;
109
+ <a href="#M000124">store</a>&nbsp;&nbsp;
110
+ <a href="#M000115">storename</a>&nbsp;&nbsp;
111
+ <a href="#M000125">upload</a>&nbsp;&nbsp;
112
+ <a href="#M000113">username</a>&nbsp;&nbsp;
106
113
  </div>
107
114
  </div>
108
115
 
@@ -124,24 +131,38 @@ Class that implements the command-line behaviour
124
131
  <div id="methods">
125
132
  <h3 class="section-bar">Public Class methods</h3>
126
133
 
127
- <div id="method-M000108" class="method-detail">
128
- <a name="M000108"></a>
134
+ <div id="method-M000112" class="method-detail">
135
+ <a name="M000112"></a>
129
136
 
130
137
  <div class="method-heading">
131
- <a href="#M000108" class="method-signature">
132
- <span class="method-name">new</span><span class="method-args">(store, opts)</span>
138
+ <a href="#M000112" class="method-signature">
139
+ <span class="method-name">new</span><span class="method-args">(opts, env, store=nil)</span>
133
140
  </a>
134
141
  </div>
135
142
 
136
143
  <div class="method-description">
137
144
  <p><a class="source-toggle" href="#"
138
- onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
139
- <div class="method-source-code" id="M000108-source">
145
+ onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
146
+ <div class="method-source-code" id="M000112-source">
140
147
  <pre>
141
148
  <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 6</span>
142
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">store</span>, <span class="ruby-identifier">opts</span>)
143
- <span class="ruby-ivar">@store</span> = <span class="ruby-identifier">store</span>
144
- <span class="ruby-ivar">@opts</span> = <span class="ruby-identifier">opts</span>
149
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">opts</span>, <span class="ruby-identifier">env</span>, <span class="ruby-identifier">store</span>=<span class="ruby-keyword kw">nil</span>)
150
+ <span class="ruby-ivar">@opts</span> = <span class="ruby-identifier">opts</span>
151
+ <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">env</span>
152
+
153
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">username</span>() <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
154
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;no &lt;username&gt;&quot;</span>
155
+ <span class="ruby-keyword kw">end</span>
156
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">password</span>() <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
157
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;no &lt;password&gt;&quot;</span>
158
+ <span class="ruby-keyword kw">end</span>
159
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">storename</span>() <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">store</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
160
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;no &lt;store&gt;&quot;</span>
161
+ <span class="ruby-keyword kw">end</span>
162
+
163
+ <span class="ruby-ivar">@store</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Store</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">storename</span>(), <span class="ruby-identifier">username</span>(), <span class="ruby-identifier">password</span>()) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">store</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
164
+ <span class="ruby-ivar">@store</span> = <span class="ruby-identifier">store</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">store</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
165
+
145
166
  <span class="ruby-keyword kw">end</span>
146
167
  </pre>
147
168
  </div>
@@ -150,25 +171,97 @@ Class that implements the command-line behaviour
150
171
 
151
172
  <h3 class="section-bar">Public Instance methods</h3>
152
173
 
153
- <div id="method-M000110" class="method-detail">
154
- <a name="M000110"></a>
174
+ <div id="method-M000128" class="method-detail">
175
+ <a name="M000128"></a>
176
+
177
+ <div class="method-heading">
178
+ <a href="#M000128" class="method-signature">
179
+ <span class="method-name">add_mapping</span><span class="method-args">(out=$stdout)</span>
180
+ </a>
181
+ </div>
182
+
183
+ <div class="method-description">
184
+ <p><a class="source-toggle" href="#"
185
+ onclick="toggleCode('M000128-source');return false;">[Source]</a></p>
186
+ <div class="method-source-code" id="M000128-source">
187
+ <pre>
188
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 252</span>
189
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_mapping</span>(<span class="ruby-identifier">out</span>=<span class="ruby-identifier">$stdout</span>)
190
+ <span class="ruby-identifier">fpmap</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">FieldPredicateMap</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-ivar">@store</span>)
191
+ <span class="ruby-identifier">mapping</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">FieldPredicateMap</span>.<span class="ruby-identifier">create_mapping</span>(<span class="ruby-ivar">@store</span>, <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;predicate&quot;</span>], <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;field&quot;</span>], <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;analyzer&quot;</span>])
192
+
193
+ <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">fpmap</span>.<span class="ruby-identifier">remove_by_name</span>(<span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;field&quot;</span>])
194
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">removed</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
195
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span>(<span class="ruby-node">&quot;Replacing mapping for #{@opts[&quot;field&quot;]}&quot;</span>)
196
+ <span class="ruby-keyword kw">end</span>
197
+ <span class="ruby-identifier">fpmap</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">mapping</span>
198
+ <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">fpmap</span>.<span class="ruby-identifier">upload</span>(<span class="ruby-ivar">@store</span>)
199
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-value">200</span>
200
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Unable to update FieldPredicate map in store. Response code was #{resp.status}&quot;</span>
201
+ <span class="ruby-keyword kw">else</span>
202
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;FieldPredicate map successfully updated&quot;</span>
203
+ <span class="ruby-keyword kw">end</span>
204
+ <span class="ruby-keyword kw">end</span>
205
+ </pre>
206
+ </div>
207
+ </div>
208
+ </div>
209
+
210
+ <div id="method-M000129" class="method-detail">
211
+ <a name="M000129"></a>
155
212
 
156
213
  <div class="method-heading">
157
- <a href="#M000110" class="method-signature">
214
+ <a href="#M000129" class="method-signature">
215
+ <span class="method-name">add_weight</span><span class="method-args">(out=$stdout)</span>
216
+ </a>
217
+ </div>
218
+
219
+ <div class="method-description">
220
+ <p><a class="source-toggle" href="#"
221
+ onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
222
+ <div class="method-source-code" id="M000129-source">
223
+ <pre>
224
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 269</span>
225
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_weight</span>(<span class="ruby-identifier">out</span>=<span class="ruby-identifier">$stdout</span>)
226
+ <span class="ruby-identifier">qp</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">QueryProfile</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-ivar">@store</span>)
227
+ <span class="ruby-identifier">weight</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">QueryProfile</span>.<span class="ruby-identifier">create_weighting</span>(<span class="ruby-ivar">@store</span>, <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;field&quot;</span>], <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;weight&quot;</span>])
228
+
229
+ <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">qp</span>.<span class="ruby-identifier">remove_by_name</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;field&quot;</span>] )
230
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">removed</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
231
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span>(<span class="ruby-node">&quot;Replacing weighting for #{@opts[&quot;field&quot;]}&quot;</span>)
232
+ <span class="ruby-keyword kw">end</span>
233
+ <span class="ruby-identifier">qp</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">weight</span>
234
+ <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">qp</span>.<span class="ruby-identifier">upload</span>(<span class="ruby-ivar">@store</span>)
235
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-value">200</span>
236
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Unable to update QueryProfile in store. Response code was #{resp.status}&quot;</span>
237
+ <span class="ruby-keyword kw">else</span>
238
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;QueryProfile successfully updated&quot;</span>
239
+ <span class="ruby-keyword kw">end</span>
240
+ <span class="ruby-keyword kw">end</span>
241
+ </pre>
242
+ </div>
243
+ </div>
244
+ </div>
245
+
246
+ <div id="method-M000117" class="method-detail">
247
+ <a name="M000117"></a>
248
+
249
+ <div class="method-heading">
250
+ <a href="#M000117" class="method-signature">
158
251
  <span class="method-name">backup</span><span class="method-args">()</span>
159
252
  </a>
160
253
  </div>
161
254
 
162
255
  <div class="method-description">
163
256
  <p><a class="source-toggle" href="#"
164
- onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
165
- <div class="method-source-code" id="M000110-source">
257
+ onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
258
+ <div class="method-source-code" id="M000117-source">
166
259
  <pre>
167
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 16</span>
260
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 52</span>
168
261
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backup</span>()
169
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Submitting Snapshot Job&quot;</span>
262
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Submitting Snapshot Job to Store #{@store.storeuri}&quot;</span>
170
263
  <span class="ruby-identifier">resp</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">submit_snapshot</span>(<span class="ruby-ivar">@store</span>, <span class="ruby-value str">&quot;Reindex&quot;</span>, <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>)
171
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Monitoring Job&quot;</span>
264
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Monitoring Snapshot Job: #{resp.header[&quot;Location&quot;].first}&quot;</span>
172
265
  <span class="ruby-identifier">job</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">wait_for_submitted</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-ivar">@store</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">job</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">time</span><span class="ruby-operator">|</span>
173
266
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{time} #{message}&quot;</span>
174
267
  <span class="ruby-keyword kw">end</span>
@@ -184,21 +277,21 @@ Class that implements the command-line behaviour
184
277
  </div>
185
278
  </div>
186
279
 
187
- <div id="method-M000115" class="method-detail">
188
- <a name="M000115"></a>
280
+ <div id="method-M000122" class="method-detail">
281
+ <a name="M000122"></a>
189
282
 
190
283
  <div class="method-heading">
191
- <a href="#M000115" class="method-signature">
284
+ <a href="#M000122" class="method-signature">
192
285
  <span class="method-name">describe</span><span class="method-args">()</span>
193
286
  </a>
194
287
  </div>
195
288
 
196
289
  <div class="method-description">
197
290
  <p><a class="source-toggle" href="#"
198
- onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
199
- <div class="method-source-code" id="M000115-source">
291
+ onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
292
+ <div class="method-source-code" id="M000122-source">
200
293
  <pre>
201
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 78</span>
294
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 115</span>
202
295
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">describe</span>()
203
296
  <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">describe</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;url&quot;</span>] )
204
297
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-value">200</span>
@@ -213,23 +306,135 @@ Class that implements the command-line behaviour
213
306
  </div>
214
307
  </div>
215
308
 
216
- <div id="method-M000112" class="method-detail">
217
- <a name="M000112"></a>
309
+ <div id="method-M000126" class="method-detail">
310
+ <a name="M000126"></a>
218
311
 
219
312
  <div class="method-heading">
220
- <a href="#M000112" class="method-signature">
313
+ <a href="#M000126" class="method-signature">
314
+ <span class="method-name">fpmap</span><span class="method-args">(out=$stdout)</span>
315
+ </a>
316
+ </div>
317
+
318
+ <div class="method-description">
319
+ <p><a class="source-toggle" href="#"
320
+ onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
321
+ <div class="method-source-code" id="M000126-source">
322
+ <pre>
323
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 203</span>
324
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fpmap</span>(<span class="ruby-identifier">out</span>=<span class="ruby-identifier">$stdout</span>)
325
+
326
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;raw&quot;</span>]
327
+ <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">get_field_predicate_map</span>(<span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">ACCEPT_RDF</span>)
328
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-value">200</span>
329
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Unable to read Field Predicate Map from store. Response code was #{resp.status}&quot;</span>
330
+ <span class="ruby-keyword kw">else</span>
331
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">content</span>
332
+ <span class="ruby-keyword kw">end</span>
333
+ <span class="ruby-keyword kw">else</span>
334
+ <span class="ruby-identifier">fpmap</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">FieldPredicateMap</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-ivar">@store</span>)
335
+ <span class="ruby-identifier">mappings</span> = <span class="ruby-identifier">fpmap</span>.<span class="ruby-identifier">datatype_properties</span>.<span class="ruby-identifier">sort</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">y</span>.<span class="ruby-identifier">name</span> }
336
+ <span class="ruby-identifier">mappings</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mapping</span><span class="ruby-operator">|</span>
337
+ <span class="ruby-identifier">analyzer</span> = <span class="ruby-identifier">mapping</span>.<span class="ruby-identifier">analyzer</span>
338
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">analyzer</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
339
+ <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Analyzers</span>.<span class="ruby-identifier">constants</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
340
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">analyzer</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Analyzers</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">c</span>)
341
+ <span class="ruby-identifier">analyzer</span> = <span class="ruby-identifier">c</span>
342
+ <span class="ruby-keyword kw">end</span>
343
+ <span class="ruby-keyword kw">end</span>
344
+ <span class="ruby-keyword kw">end</span>
345
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{mapping.name} -&gt; #{mapping.property_uri}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">analyzer</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
346
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{mapping.name} -&gt; #{mapping.property_uri} (#{mapping.analyzer})&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">analyzer</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
347
+ <span class="ruby-keyword kw">end</span>
348
+
349
+ <span class="ruby-keyword kw">end</span>
350
+
351
+ <span class="ruby-keyword kw">end</span>
352
+ </pre>
353
+ </div>
354
+ </div>
355
+ </div>
356
+
357
+ <div id="method-M000114" class="method-detail">
358
+ <a name="M000114"></a>
359
+
360
+ <div class="method-heading">
361
+ <a href="#M000114" class="method-signature">
362
+ <span class="method-name">password</span><span class="method-args">()</span>
363
+ </a>
364
+ </div>
365
+
366
+ <div class="method-description">
367
+ <p><a class="source-toggle" href="#"
368
+ onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
369
+ <div class="method-source-code" id="M000114-source">
370
+ <pre>
371
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 31</span>
372
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>()
373
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;password&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;password&quot;</span>]
374
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">&quot;TALIS_PASS&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">&quot;TALIS_PASS&quot;</span>]
375
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
376
+ <span class="ruby-keyword kw">end</span>
377
+ </pre>
378
+ </div>
379
+ </div>
380
+ </div>
381
+
382
+ <div id="method-M000127" class="method-detail">
383
+ <a name="M000127"></a>
384
+
385
+ <div class="method-heading">
386
+ <a href="#M000127" class="method-signature">
387
+ <span class="method-name">queryprofile</span><span class="method-args">(out=$stdout)</span>
388
+ </a>
389
+ </div>
390
+
391
+ <div class="method-description">
392
+ <p><a class="source-toggle" href="#"
393
+ onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
394
+ <div class="method-source-code" id="M000127-source">
395
+ <pre>
396
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 232</span>
397
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">queryprofile</span>(<span class="ruby-identifier">out</span>=<span class="ruby-identifier">$stdout</span>)
398
+
399
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;raw&quot;</span>]
400
+ <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">get_query_profile</span>(<span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">ACCEPT_RDF</span>)
401
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-value">200</span>
402
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Unable to read Query Profile from store. Response code was #{resp.status}&quot;</span>
403
+ <span class="ruby-keyword kw">else</span>
404
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">content</span>
405
+ <span class="ruby-keyword kw">end</span>
406
+ <span class="ruby-keyword kw">else</span>
407
+ <span class="ruby-identifier">queryprofile</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">QueryProfile</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-ivar">@store</span>)
408
+ <span class="ruby-identifier">field_weights</span> = <span class="ruby-identifier">queryprofile</span>.<span class="ruby-identifier">field_weights</span>()
409
+ <span class="ruby-identifier">field_weights</span> = <span class="ruby-identifier">field_weights</span>.<span class="ruby-identifier">sort</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">y</span>.<span class="ruby-identifier">name</span> }
410
+ <span class="ruby-identifier">field_weights</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">weighting</span><span class="ruby-operator">|</span>
411
+ <span class="ruby-identifier">out</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{weighting.name} -&gt; #{weighting.weight}&quot;</span>
412
+ <span class="ruby-keyword kw">end</span>
413
+ <span class="ruby-keyword kw">end</span>
414
+
415
+ <span class="ruby-keyword kw">end</span>
416
+ </pre>
417
+ </div>
418
+ </div>
419
+ </div>
420
+
421
+ <div id="method-M000119" class="method-detail">
422
+ <a name="M000119"></a>
423
+
424
+ <div class="method-heading">
425
+ <a href="#M000119" class="method-signature">
221
426
  <span class="method-name">reindex</span><span class="method-args">()</span>
222
427
  </a>
223
428
  </div>
224
429
 
225
430
  <div class="method-description">
226
431
  <p><a class="source-toggle" href="#"
227
- onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
228
- <div class="method-source-code" id="M000112-source">
432
+ onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
433
+ <div class="method-source-code" id="M000119-source">
229
434
  <pre>
230
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 41</span>
435
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 77</span>
231
436
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reindex</span>()
232
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Submitting Reindex Job&quot;</span>
437
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Submitting Reindex Job to Store #{@store.storeuri}&quot;</span>
233
438
  <span class="ruby-identifier">resp</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">submit_reindex</span>(<span class="ruby-ivar">@store</span>, <span class="ruby-value str">&quot;Reindex&quot;</span>, <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>)
234
439
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">resp</span>.<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-value">201</span>
235
440
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Monitoring Reindex Job: #{resp.header[&quot;Location&quot;].first}&quot;</span>
@@ -244,25 +449,25 @@ Class that implements the command-line behaviour
244
449
  </div>
245
450
  </div>
246
451
 
247
- <div id="method-M000113" class="method-detail">
248
- <a name="M000113"></a>
452
+ <div id="method-M000120" class="method-detail">
453
+ <a name="M000120"></a>
249
454
 
250
455
  <div class="method-heading">
251
- <a href="#M000113" class="method-signature">
456
+ <a href="#M000120" class="method-signature">
252
457
  <span class="method-name">reset</span><span class="method-args">()</span>
253
458
  </a>
254
459
  </div>
255
460
 
256
461
  <div class="method-description">
257
462
  <p><a class="source-toggle" href="#"
258
- onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
259
- <div class="method-source-code" id="M000113-source">
463
+ onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
464
+ <div class="method-source-code" id="M000120-source">
260
465
  <pre>
261
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 53</span>
466
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 89</span>
262
467
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>()
263
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Resetting Store&quot;</span>
468
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Resetting Store #{@store.storeuri}&quot;</span>
264
469
  <span class="ruby-identifier">resp</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">submit_reset</span>(<span class="ruby-ivar">@store</span>, <span class="ruby-value str">&quot;Reset&quot;</span>, <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>)
265
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Monitoring Reset Job:&quot;</span>
470
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Monitoring Reset Job: #{resp.header[&quot;Location&quot;].first}&quot;</span>
266
471
  <span class="ruby-identifier">job</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">wait_for_submitted</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-ivar">@store</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">job</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">time</span><span class="ruby-operator">|</span>
267
472
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{time} #{message}&quot;</span>
268
473
  <span class="ruby-keyword kw">end</span>
@@ -273,30 +478,31 @@ Class that implements the command-line behaviour
273
478
  </div>
274
479
  </div>
275
480
 
276
- <div id="method-M000114" class="method-detail">
277
- <a name="M000114"></a>
481
+ <div id="method-M000121" class="method-detail">
482
+ <a name="M000121"></a>
278
483
 
279
484
  <div class="method-heading">
280
- <a href="#M000114" class="method-signature">
485
+ <a href="#M000121" class="method-signature">
281
486
  <span class="method-name">restore</span><span class="method-args">()</span>
282
487
  </a>
283
488
  </div>
284
489
 
285
490
  <div class="method-description">
286
491
  <p><a class="source-toggle" href="#"
287
- onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
288
- <div class="method-source-code" id="M000114-source">
492
+ onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
493
+ <div class="method-source-code" id="M000121-source">
289
494
  <pre>
290
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 63</span>
495
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 99</span>
291
496
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restore</span>()
292
497
  <span class="ruby-identifier">url</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;url&quot;</span>]
293
498
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
294
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Restore from latest snapshot&quot;</span>
499
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Restoring #{@store.storeuri} from latest snapshot&quot;</span>
295
500
  <span class="ruby-identifier">snapshot</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Snapshot</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-ivar">@store</span>)
296
501
  <span class="ruby-identifier">url</span> = <span class="ruby-identifier">snapshot</span>.<span class="ruby-identifier">url</span>
297
502
  <span class="ruby-keyword kw">end</span>
298
503
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Restoring from #{url}&quot;</span>
299
504
  <span class="ruby-identifier">resp</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">submit_restore</span>(<span class="ruby-ivar">@store</span>, <span class="ruby-identifier">url</span>, <span class="ruby-value str">&quot;Reset&quot;</span>, <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>)
505
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Monitoring Restore Job: #{resp.header[&quot;Location&quot;].first}&quot;</span>
300
506
  <span class="ruby-identifier">job</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">wait_for_submitted</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-ivar">@store</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">job</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">time</span><span class="ruby-operator">|</span>
301
507
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{time} #{message}&quot;</span>
302
508
  <span class="ruby-keyword kw">end</span>
@@ -307,25 +513,25 @@ Class that implements the command-line behaviour
307
513
  </div>
308
514
  </div>
309
515
 
310
- <div id="method-M000111" class="method-detail">
311
- <a name="M000111"></a>
516
+ <div id="method-M000118" class="method-detail">
517
+ <a name="M000118"></a>
312
518
 
313
519
  <div class="method-heading">
314
- <a href="#M000111" class="method-signature">
520
+ <a href="#M000118" class="method-signature">
315
521
  <span class="method-name">snapshot</span><span class="method-args">()</span>
316
522
  </a>
317
523
  </div>
318
524
 
319
525
  <div class="method-description">
320
526
  <p><a class="source-toggle" href="#"
321
- onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
322
- <div class="method-source-code" id="M000111-source">
527
+ onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
528
+ <div class="method-source-code" id="M000118-source">
323
529
  <pre>
324
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 31</span>
530
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 67</span>
325
531
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">snapshot</span>()
326
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Submitting Snapshot Job&quot;</span>
532
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Submitting Snapshot Job to Store #{@store.storeuri}&quot;</span>
327
533
  <span class="ruby-identifier">resp</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">submit_snapshot</span>(<span class="ruby-ivar">@store</span>, <span class="ruby-value str">&quot;Reindex&quot;</span>, <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>)
328
- <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Monitoring Job&quot;</span>
534
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Monitoring Snapshot Job #{resp.header[&quot;Location&quot;].first}&quot;</span>
329
535
  <span class="ruby-identifier">job</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Jobs</span>.<span class="ruby-identifier">wait_for_submitted</span>(<span class="ruby-identifier">resp</span>, <span class="ruby-ivar">@store</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">job</span>, <span class="ruby-identifier">message</span>, <span class="ruby-identifier">time</span><span class="ruby-operator">|</span>
330
536
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{time} #{message}&quot;</span>
331
537
  <span class="ruby-keyword kw">end</span>
@@ -336,21 +542,21 @@ Class that implements the command-line behaviour
336
542
  </div>
337
543
  </div>
338
544
 
339
- <div id="method-M000116" class="method-detail">
340
- <a name="M000116"></a>
545
+ <div id="method-M000123" class="method-detail">
546
+ <a name="M000123"></a>
341
547
 
342
548
  <div class="method-heading">
343
- <a href="#M000116" class="method-signature">
549
+ <a href="#M000123" class="method-signature">
344
550
  <span class="method-name">sparql</span><span class="method-args">()</span>
345
551
  </a>
346
552
  </div>
347
553
 
348
554
  <div class="method-description">
349
555
  <p><a class="source-toggle" href="#"
350
- onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
351
- <div class="method-source-code" id="M000116-source">
556
+ onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
557
+ <div class="method-source-code" id="M000123-source">
352
558
  <pre>
353
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 88</span>
559
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 125</span>
354
560
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparql</span>()
355
561
  <span class="ruby-identifier">query</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>] ).<span class="ruby-identifier">read</span>()
356
562
  <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">sparql</span>(<span class="ruby-identifier">query</span>)
@@ -366,45 +572,45 @@ Class that implements the command-line behaviour
366
572
  </div>
367
573
  </div>
368
574
 
369
- <div id="method-M000109" class="method-detail">
370
- <a name="M000109"></a>
575
+ <div id="method-M000116" class="method-detail">
576
+ <a name="M000116"></a>
371
577
 
372
578
  <div class="method-heading">
373
- <a href="#M000109" class="method-signature">
579
+ <a href="#M000116" class="method-signature">
374
580
  <span class="method-name">status</span><span class="method-args">()</span>
375
581
  </a>
376
582
  </div>
377
583
 
378
584
  <div class="method-description">
379
585
  <p><a class="source-toggle" href="#"
380
- onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
381
- <div class="method-source-code" id="M000109-source">
586
+ onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
587
+ <div class="method-source-code" id="M000116-source">
382
588
  <pre>
383
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 11</span>
589
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 47</span>
384
590
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">status</span>()
385
591
  <span class="ruby-identifier">status</span> = <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">Status</span>.<span class="ruby-identifier">read_from_store</span>(<span class="ruby-ivar">@store</span>)
386
- <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Store Status:\nReadable: #{status.readable?}\nWritable: #{status.writeable?}&quot;</span>
592
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Status of Store #{@store.storeuri}:\nReadable: #{status.readable?}\nWritable: #{status.writeable?}&quot;</span>
387
593
  <span class="ruby-keyword kw">end</span>
388
594
  </pre>
389
595
  </div>
390
596
  </div>
391
597
  </div>
392
598
 
393
- <div id="method-M000117" class="method-detail">
394
- <a name="M000117"></a>
599
+ <div id="method-M000124" class="method-detail">
600
+ <a name="M000124"></a>
395
601
 
396
602
  <div class="method-heading">
397
- <a href="#M000117" class="method-signature">
603
+ <a href="#M000124" class="method-signature">
398
604
  <span class="method-name">store</span><span class="method-args">()</span>
399
605
  </a>
400
606
  </div>
401
607
 
402
608
  <div class="method-description">
403
609
  <p><a class="source-toggle" href="#"
404
- onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
405
- <div class="method-source-code" id="M000117-source">
610
+ onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
611
+ <div class="method-source-code" id="M000124-source">
406
612
  <pre>
407
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 99</span>
613
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 136</span>
408
614
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">store</span>()
409
615
  <span class="ruby-identifier">resp</span> = <span class="ruby-keyword kw">nil</span>
410
616
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;url&quot;</span>]
@@ -414,7 +620,9 @@ Class that implements the command-line behaviour
414
620
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Storing local file: #{@opts[&quot;file&quot;]}&quot;</span>
415
621
  <span class="ruby-identifier">f</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>] )
416
622
  <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">extname</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>] ) <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;.nt&quot;</span>
417
- <span class="ruby-constant">Pho</span><span class="ruby-operator">::</span><span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Parser</span>.<span class="ruby-identifier">store_ntriples</span>(<span class="ruby-identifier">f</span>, <span class="ruby-ivar">@store</span>)
623
+ <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">store_file</span>( <span class="ruby-identifier">f</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">&quot;text/plain&quot;</span> )
624
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">extname</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>] ) <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;.ttl&quot;</span>
625
+ <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">store_file</span>( <span class="ruby-identifier">f</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">&quot;text/turtle&quot;</span> )
418
626
  <span class="ruby-keyword kw">else</span>
419
627
  <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">store_file</span>( <span class="ruby-identifier">f</span> )
420
628
  <span class="ruby-keyword kw">end</span>
@@ -441,27 +649,56 @@ Class that implements the command-line behaviour
441
649
  </div>
442
650
  </div>
443
651
 
444
- <div id="method-M000118" class="method-detail">
445
- <a name="M000118"></a>
652
+ <div id="method-M000115" class="method-detail">
653
+ <a name="M000115"></a>
446
654
 
447
655
  <div class="method-heading">
448
- <a href="#M000118" class="method-signature">
656
+ <a href="#M000115" class="method-signature">
657
+ <span class="method-name">storename</span><span class="method-args">()</span>
658
+ </a>
659
+ </div>
660
+
661
+ <div class="method-description">
662
+ <p><a class="source-toggle" href="#"
663
+ onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
664
+ <div class="method-source-code" id="M000115-source">
665
+ <pre>
666
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 37</span>
667
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">storename</span>()
668
+ <span class="ruby-identifier">store</span> = <span class="ruby-keyword kw">nil</span>
669
+ <span class="ruby-identifier">store</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-value str">&quot;TALIS_STORE&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">&quot;TALIS_STORE&quot;</span>]
670
+ <span class="ruby-identifier">store</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;store&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;store&quot;</span>]
671
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">store</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">store</span>.<span class="ruby-identifier">start_with?</span>(<span class="ruby-value str">&quot;http&quot;</span>)
672
+ <span class="ruby-identifier">store</span> = <span class="ruby-node">&quot;http://api.talis.com/stores/#{store}&quot;</span>
673
+ <span class="ruby-keyword kw">end</span>
674
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">store</span>
675
+ <span class="ruby-keyword kw">end</span>
676
+ </pre>
677
+ </div>
678
+ </div>
679
+ </div>
680
+
681
+ <div id="method-M000125" class="method-detail">
682
+ <a name="M000125"></a>
683
+
684
+ <div class="method-heading">
685
+ <a href="#M000125" class="method-signature">
449
686
  <span class="method-name">upload</span><span class="method-args">()</span>
450
687
  </a>
451
688
  </div>
452
689
 
453
690
  <div class="method-description">
454
691
  <p><a class="source-toggle" href="#"
455
- onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
456
- <div class="method-source-code" id="M000118-source">
692
+ onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
693
+ <div class="method-source-code" id="M000125-source">
457
694
  <pre>
458
- <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 131</span>
695
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 170</span>
459
696
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upload</span>()
460
697
  <span class="ruby-identifier">resp</span> = <span class="ruby-keyword kw">nil</span>
461
698
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>]
462
699
  <span class="ruby-identifier">f</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>] )
463
700
  <span class="ruby-identifier">uri</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>] )
464
- <span class="ruby-identifier">uri</span> = <span class="ruby-node">&quot;#{opts[&quot;base&quot;]}/#{uri}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;base&quot;</span>]
701
+ <span class="ruby-identifier">uri</span> = <span class="ruby-node">&quot;#{@opts[&quot;base&quot;]}/#{uri}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;base&quot;</span>]
465
702
  <span class="ruby-identifier">mime</span> = <span class="ruby-constant">MIME</span><span class="ruby-operator">::</span><span class="ruby-constant">Types</span>.<span class="ruby-identifier">type_for</span>( <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;file&quot;</span>] )[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_s</span>
466
703
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Uploading file: #{ @opts[&quot;file&quot;] } to /items/#{ uri } as #{mime}&quot;</span>
467
704
  <span class="ruby-identifier">resp</span> = <span class="ruby-ivar">@store</span>.<span class="ruby-identifier">upload_item</span>( <span class="ruby-identifier">f</span> , <span class="ruby-identifier">mime</span> , <span class="ruby-identifier">uri</span> )
@@ -493,6 +730,31 @@ Class that implements the command-line behaviour
493
730
  </div>
494
731
  </div>
495
732
 
733
+ <div id="method-M000113" class="method-detail">
734
+ <a name="M000113"></a>
735
+
736
+ <div class="method-heading">
737
+ <a href="#M000113" class="method-signature">
738
+ <span class="method-name">username</span><span class="method-args">()</span>
739
+ </a>
740
+ </div>
741
+
742
+ <div class="method-description">
743
+ <p><a class="source-toggle" href="#"
744
+ onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
745
+ <div class="method-source-code" id="M000113-source">
746
+ <pre>
747
+ <span class="ruby-comment cmt"># File lib/pho/command_line.rb, line 25</span>
748
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">username</span>()
749
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;username&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value str">&quot;username&quot;</span>]
750
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">&quot;TALIS_USER&quot;</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">&quot;TALIS_USER&quot;</span>]
751
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
752
+ <span class="ruby-keyword kw">end</span>
753
+ </pre>
754
+ </div>
755
+ </div>
756
+ </div>
757
+
496
758
 
497
759
  </div>
498
760