michael-ken 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +3 -0
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/examples/artist.rb +1 -0
- data/ken.gemspec +8 -2
- data/lib/ken.rb +31 -4
- data/lib/ken/resource.rb +26 -27
- data/test/fixtures/music_artist.json +1 -1
- data/test/fixtures/the_police.json +935 -938
- data/test/integration/ken_test.rb +2 -2
- data/test/unit/attribute_test.rb +7 -6
- metadata +22 -2
data/README.textile
CHANGED
@@ -23,6 +23,7 @@ Use GitHub RubyGems:
|
|
23
23
|
</pre>
|
24
24
|
|
25
25
|
In your Ruby files add:
|
26
|
+
|
26
27
|
<pre>
|
27
28
|
<code>
|
28
29
|
require 'rubygems'
|
@@ -201,7 +202,9 @@ That's why I now added direct Property/Attribute access, but only on a Type/View
|
|
201
202
|
type.genre # => #<Property id="/music/artist/genre" expected_type="/music/genre" unique="false" object_type="true">
|
202
203
|
</code>
|
203
204
|
</pre>
|
205
|
+
|
204
206
|
The same works for views:
|
207
|
+
|
205
208
|
<pre>
|
206
209
|
<code>
|
207
210
|
resource = Ken.get('/en/new_order')
|
data/Rakefile
CHANGED
@@ -10,6 +10,8 @@ begin
|
|
10
10
|
gem.homepage = "http://github.com/michael/ken"
|
11
11
|
gem.authors = ["michael"]
|
12
12
|
gem.add_dependency('extlib')
|
13
|
+
gem.add_dependency('json')
|
14
|
+
gem.add_dependency('addressable')
|
13
15
|
# gem.files = FileList["[A-Z]*.*"]
|
14
16
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
17
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/examples/artist.rb
CHANGED
data/ken.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{ken}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["michael"]
|
9
|
-
s.date = %q{2009-07-
|
9
|
+
s.date = %q{2009-07-24}
|
10
10
|
s.email = %q{ma[at]zive[dot]at}
|
11
11
|
s.extra_rdoc_files = [
|
12
12
|
"LICENSE",
|
@@ -73,10 +73,16 @@ Gem::Specification.new do |s|
|
|
73
73
|
|
74
74
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
75
75
|
s.add_runtime_dependency(%q<extlib>, [">= 0"])
|
76
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
77
|
+
s.add_runtime_dependency(%q<addressable>, [">= 0"])
|
76
78
|
else
|
77
79
|
s.add_dependency(%q<extlib>, [">= 0"])
|
80
|
+
s.add_dependency(%q<json>, [">= 0"])
|
81
|
+
s.add_dependency(%q<addressable>, [">= 0"])
|
78
82
|
end
|
79
83
|
else
|
80
84
|
s.add_dependency(%q<extlib>, [">= 0"])
|
85
|
+
s.add_dependency(%q<json>, [">= 0"])
|
86
|
+
s.add_dependency(%q<addressable>, [">= 0"])
|
81
87
|
end
|
82
88
|
end
|
data/lib/ken.rb
CHANGED
@@ -39,8 +39,8 @@ module Ken
|
|
39
39
|
# executed. maybe this is fine, maybe not,
|
40
40
|
# this needs to be discussed.
|
41
41
|
|
42
|
-
|
43
|
-
# :id => id, # needs to be
|
42
|
+
FETCH_DATA_QUERY = {
|
43
|
+
# :id => id, # needs to be merge!d in instance method
|
44
44
|
:name => nil,
|
45
45
|
:"ken:type" => [{
|
46
46
|
:id => nil,
|
@@ -53,9 +53,36 @@ module Ken
|
|
53
53
|
:reverse_property => nil,
|
54
54
|
:master_property => nil,
|
55
55
|
}]
|
56
|
-
}]
|
56
|
+
}],
|
57
|
+
:"/type/reflect/any_master" => [
|
58
|
+
{
|
59
|
+
:id => nil,
|
60
|
+
:link => nil,
|
61
|
+
:name => nil,
|
62
|
+
:optional => true
|
63
|
+
}
|
64
|
+
],
|
65
|
+
:"/type/reflect/any_reverse" => [
|
66
|
+
{
|
67
|
+
:id => nil,
|
68
|
+
:link => nil,
|
69
|
+
:name => nil,
|
70
|
+
:optional => true
|
71
|
+
}
|
72
|
+
],
|
73
|
+
:"/type/reflect/any_value" => [
|
74
|
+
{
|
75
|
+
:link => nil,
|
76
|
+
:value => nil,
|
77
|
+
:optional => true
|
78
|
+
# TODO: support multiple language
|
79
|
+
# :lang => "/lang/en",
|
80
|
+
# :type => "/type/text"
|
81
|
+
}
|
82
|
+
]
|
57
83
|
}
|
58
84
|
|
85
|
+
|
59
86
|
# Executes an Mql Query against the Freebase API and returns the result as
|
60
87
|
# a <tt>Collection</tt> of <tt>Resources</tt>.
|
61
88
|
#
|
@@ -89,7 +116,7 @@ module Ken
|
|
89
116
|
# @api public
|
90
117
|
def self.get(id)
|
91
118
|
assert_kind_of 'id', id, String
|
92
|
-
result = Ken.session.mqlread(
|
119
|
+
result = Ken.session.mqlread(FETCH_DATA_QUERY.merge!(:id => id))
|
93
120
|
raise ResourceNotFound unless result
|
94
121
|
Ken::Resource.new(result)
|
95
122
|
end
|
data/lib/ken/resource.rb
CHANGED
@@ -2,7 +2,7 @@ module Ken
|
|
2
2
|
class Resource
|
3
3
|
include Extlib::Assertions
|
4
4
|
|
5
|
-
|
5
|
+
FETCH_DATA_QUERY = {
|
6
6
|
# :id => id, # needs to be merge!d in instance method
|
7
7
|
:name => nil,
|
8
8
|
:"ken:type" => [{
|
@@ -12,31 +12,32 @@ module Ken
|
|
12
12
|
:id => nil,
|
13
13
|
:name => nil,
|
14
14
|
:expected_type => nil,
|
15
|
-
:unique => nil
|
15
|
+
:unique => nil,
|
16
|
+
:reverse_property => nil,
|
17
|
+
:master_property => nil,
|
16
18
|
}]
|
17
|
-
}]
|
18
|
-
}
|
19
|
-
|
20
|
-
FETCH_ATTRIBUTES_QUERY = {
|
21
|
-
# :id => id # needs to be merg!d in instance method
|
19
|
+
}],
|
22
20
|
:"/type/reflect/any_master" => [
|
23
21
|
{
|
24
22
|
:id => nil,
|
25
23
|
:link => nil,
|
26
|
-
:name => nil
|
24
|
+
:name => nil,
|
25
|
+
:optional => true
|
27
26
|
}
|
28
27
|
],
|
29
28
|
:"/type/reflect/any_reverse" => [
|
30
29
|
{
|
31
30
|
:id => nil,
|
32
31
|
:link => nil,
|
33
|
-
:name => nil
|
32
|
+
:name => nil,
|
33
|
+
:optional => true
|
34
34
|
}
|
35
35
|
],
|
36
36
|
:"/type/reflect/any_value" => [
|
37
37
|
{
|
38
38
|
:link => nil,
|
39
|
-
:value => nil
|
39
|
+
:value => nil,
|
40
|
+
:optional => true
|
40
41
|
# TODO: support multiple language
|
41
42
|
# :lang => "/lang/en",
|
42
43
|
# :type => "/type/text"
|
@@ -47,8 +48,8 @@ module Ken
|
|
47
48
|
# initializes a resource using a json result
|
48
49
|
def initialize(data)
|
49
50
|
assert_kind_of 'data', data, Hash
|
50
|
-
# intialize lazy if there is no type supplied
|
51
51
|
@schema_loaded, @attributes_loaded, @data = false, false, data
|
52
|
+
@data_fechted = data["/type/reflect/any_master"] != nil
|
52
53
|
end
|
53
54
|
|
54
55
|
# resource id
|
@@ -114,51 +115,49 @@ module Ken
|
|
114
115
|
def attributes_loaded?
|
115
116
|
@attributes_loaded
|
116
117
|
end
|
118
|
+
# returns true if json data is already loaded
|
119
|
+
# @api public
|
120
|
+
def data_fetched?
|
121
|
+
@data_fetched
|
122
|
+
end
|
117
123
|
|
118
124
|
private
|
119
|
-
# executes the fetch
|
125
|
+
# executes the fetch data query in order to load the full set of types, properties and attributes
|
120
126
|
# more info at http://lists.freebase.com/pipermail/developers/2007-December/001022.html
|
121
127
|
# @api private
|
122
|
-
def
|
123
|
-
|
128
|
+
def fetch_data
|
129
|
+
return @data if @data["/type/reflect/any_master"]
|
130
|
+
@data = Ken.session.mqlread(FETCH_DATA_QUERY.merge!(:id => id))
|
124
131
|
end
|
125
132
|
|
126
133
|
# loads the full set of attributes using reflection
|
127
134
|
# information is extracted from master, value and reverse attributes
|
128
135
|
# @api private
|
129
136
|
def load_attributes!
|
130
|
-
|
137
|
+
fetch_data unless data_fetched?
|
131
138
|
# master & value attributes
|
132
|
-
raw_attributes = Ken::Util.convert_hash(data["/type/reflect/any_master"])
|
133
|
-
raw_attributes.merge!(Ken::Util.convert_hash(data["/type/reflect/any_value"]))
|
139
|
+
raw_attributes = Ken::Util.convert_hash(@data["/type/reflect/any_master"])
|
140
|
+
raw_attributes.merge!(Ken::Util.convert_hash(@data["/type/reflect/any_value"]))
|
134
141
|
@attributes = {}
|
135
142
|
raw_attributes.each_pair do |a, d|
|
136
143
|
properties.select { |p| p.id == a}.each do |p|
|
137
144
|
@attributes[p.id] = Ken::Attribute.create(d, p)
|
138
145
|
end
|
139
146
|
end
|
140
|
-
|
141
147
|
# reverse properties
|
142
|
-
raw_attributes = Ken::Util.convert_hash(data["/type/reflect/any_reverse"])
|
148
|
+
raw_attributes = Ken::Util.convert_hash(@data["/type/reflect/any_reverse"])
|
143
149
|
raw_attributes.each_pair do |a, d|
|
144
150
|
properties.select { |p| p.master_property == a}.each do |p|
|
145
151
|
@attributes[p.id] = Ken::Attribute.create(d, p)
|
146
152
|
end
|
147
153
|
end
|
148
|
-
|
149
154
|
@attributes_loaded = true
|
150
155
|
end
|
151
156
|
|
152
|
-
# executes the fetch schema query in order to load all schema information
|
153
|
-
# @api private
|
154
|
-
def fetch_schema
|
155
|
-
Ken.session.mqlread(FETCH_SCHEMA_QUERY.merge!(:id => id))["ken:type"]
|
156
|
-
end
|
157
|
-
|
158
157
|
# loads the resource's metainfo
|
159
158
|
# @api private
|
160
159
|
def load_schema!
|
161
|
-
|
160
|
+
fetch_data unless data_fetched?
|
162
161
|
@types = Ken::Collection.new(@data["ken:type"].map { |type| Ken::Type.new(type) })
|
163
162
|
@schema_loaded = true
|
164
163
|
end
|
@@ -1,940 +1,937 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
"
|
904
|
-
|
905
|
-
|
906
|
-
"
|
907
|
-
"
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
"
|
916
|
-
|
917
|
-
|
918
|
-
"
|
919
|
-
"
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
"
|
928
|
-
|
929
|
-
|
930
|
-
"
|
931
|
-
"
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
],
|
938
|
-
"id": "/en/the_police"
|
939
|
-
}
|
2
|
+
"/type/reflect/any_master": [
|
3
|
+
{
|
4
|
+
"id": "/boot/all_permission",
|
5
|
+
"link": "/type/object/permission",
|
6
|
+
"name": "Global Write Permission"
|
7
|
+
},
|
8
|
+
{
|
9
|
+
"id": "/guid/9202a8c04000641f800000000006df25",
|
10
|
+
"link": "/common/topic/article",
|
11
|
+
"name": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"id": "/music/artist",
|
15
|
+
"link": "/type/object/type",
|
16
|
+
"name": "Musical Artist"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"id": "/common/topic",
|
20
|
+
"link": "/type/object/type",
|
21
|
+
"name": "Topic"
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"id": "/guid/9202a8c04000641f8000000003921d3c",
|
25
|
+
"link": "/common/topic/webpage",
|
26
|
+
"name": "Discogs entry"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"id": "/wikipedia/images/en_id/982873",
|
30
|
+
"link": "/common/topic/image",
|
31
|
+
"name": null
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"id": "/en/rock_music",
|
35
|
+
"link": "/music/artist/genre",
|
36
|
+
"name": "Rock music"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"id": "/en/ska",
|
40
|
+
"link": "/music/artist/genre",
|
41
|
+
"name": "Ska"
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"id": "/en/reggae",
|
45
|
+
"link": "/music/artist/genre",
|
46
|
+
"name": "Reggae"
|
47
|
+
},
|
48
|
+
{
|
49
|
+
"id": "/en/london",
|
50
|
+
"link": "/music/artist/origin",
|
51
|
+
"name": "London"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"id": "/music/producer",
|
55
|
+
"link": "/type/object/type",
|
56
|
+
"name": "Record Producer"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"id": "/music/musical_group",
|
60
|
+
"link": "/type/object/type",
|
61
|
+
"name": "Musical Group"
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"id": "/guid/9202a8c04000641f80000000072a23e1",
|
65
|
+
"link": "/common/topic/webpage",
|
66
|
+
"name": null
|
67
|
+
},
|
68
|
+
{
|
69
|
+
"id": "/en/new_wave",
|
70
|
+
"link": "/music/artist/genre",
|
71
|
+
"name": "New Wave"
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"id": "/en/a_m_records",
|
75
|
+
"link": "/music/artist/label",
|
76
|
+
"name": "A&M Records"
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"id": "/en/polydor_records",
|
80
|
+
"link": "/music/artist/label",
|
81
|
+
"name": "Polydor Records"
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"id": "/en/illegal_records",
|
85
|
+
"link": "/music/artist/label",
|
86
|
+
"name": "Illegal Records"
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"id": "/en/post-punk",
|
90
|
+
"link": "/music/artist/genre",
|
91
|
+
"name": "Post-punk"
|
92
|
+
},
|
93
|
+
{
|
94
|
+
"id": "/guid/9202a8c04000641f80000000082147dd",
|
95
|
+
"link": "/common/topic/webpage",
|
96
|
+
"name": null
|
97
|
+
},
|
98
|
+
{
|
99
|
+
"id": "/wikipedia/images/commons_id/3520500",
|
100
|
+
"link": "/common/topic/image",
|
101
|
+
"name": "The Police performing live on August 1, 2007 at Madison Square Garden, New York."
|
102
|
+
},
|
103
|
+
{
|
104
|
+
"id": "/broadcast/artist",
|
105
|
+
"link": "/type/object/type",
|
106
|
+
"name": "Broadcast Artist"
|
107
|
+
},
|
108
|
+
{
|
109
|
+
"id": "/en/electric_guitar",
|
110
|
+
"link": "/music/artist/instruments_played",
|
111
|
+
"name": "Electric guitar"
|
112
|
+
},
|
113
|
+
{
|
114
|
+
"id": "/en/drum",
|
115
|
+
"link": "/music/artist/instruments_played",
|
116
|
+
"name": "Drum"
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"id": "/en/universal_music_group",
|
120
|
+
"link": "/music/artist/label",
|
121
|
+
"name": "Universal Music Group"
|
122
|
+
},
|
123
|
+
{
|
124
|
+
"id": "/award/award_winner",
|
125
|
+
"link": "/type/object/type",
|
126
|
+
"name": "Award Winner"
|
127
|
+
},
|
128
|
+
{
|
129
|
+
"id": "/en/pop_rock",
|
130
|
+
"link": "/music/artist/genre",
|
131
|
+
"name": "Pop rock"
|
132
|
+
},
|
133
|
+
{
|
134
|
+
"id": "/en/sting",
|
135
|
+
"link": "/music/artist/similar_artist",
|
136
|
+
"name": "Sting"
|
137
|
+
}
|
138
|
+
],
|
139
|
+
"/type/reflect/any_reverse": [
|
140
|
+
{
|
141
|
+
"id": "/en/outlandos_damour",
|
142
|
+
"link": "/music/album/artist",
|
143
|
+
"name": "Outlandos d'Amour"
|
144
|
+
},
|
145
|
+
{
|
146
|
+
"id": "/en/reggatta_de_blanc",
|
147
|
+
"link": "/music/album/artist",
|
148
|
+
"name": "Reggatta de Blanc"
|
149
|
+
},
|
150
|
+
{
|
151
|
+
"id": "/en/zenyatta_mondatta",
|
152
|
+
"link": "/music/album/artist",
|
153
|
+
"name": "Zenyatta Mondatta"
|
154
|
+
},
|
155
|
+
{
|
156
|
+
"id": "/guid/9202a8c04000641f800000000017dab4",
|
157
|
+
"link": "/music/album/artist",
|
158
|
+
"name": "Ghost in the Machine"
|
159
|
+
},
|
160
|
+
{
|
161
|
+
"id": "/guid/9202a8c04000641f8000000002f9e349",
|
162
|
+
"link": "/music/album/artist",
|
163
|
+
"name": "Synchronicity"
|
164
|
+
},
|
165
|
+
{
|
166
|
+
"id": "/en/every_breath_you_take_the_singles",
|
167
|
+
"link": "/music/album/artist",
|
168
|
+
"name": "Every Breath You Take: The Singles"
|
169
|
+
},
|
170
|
+
{
|
171
|
+
"id": "/guid/9202a8c04000641f8000000002f9e3ca",
|
172
|
+
"link": "/music/album/artist",
|
173
|
+
"name": "Greatest Hits"
|
174
|
+
},
|
175
|
+
{
|
176
|
+
"id": "/en/message_in_a_box_the_complete_recordings",
|
177
|
+
"link": "/music/album/artist",
|
178
|
+
"name": "Message in a Box: The Complete Recordings"
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"id": "/guid/9202a8c04000641f8000000002f9e2df",
|
182
|
+
"link": "/music/album/artist",
|
183
|
+
"name": "Live!"
|
184
|
+
},
|
185
|
+
{
|
186
|
+
"id": "/en/every_breath_you_take_the_classics",
|
187
|
+
"link": "/music/album/artist",
|
188
|
+
"name": "Every Breath You Take: The Classics"
|
189
|
+
},
|
190
|
+
{
|
191
|
+
"id": "/guid/9202a8c04000641f8000000002f9e3a7",
|
192
|
+
"link": "/music/album/artist",
|
193
|
+
"name": "Their Greatest Hits"
|
194
|
+
},
|
195
|
+
{
|
196
|
+
"id": "/guid/9202a8c04000641f8000000002f9e2cf",
|
197
|
+
"link": "/music/album/artist",
|
198
|
+
"name": "Can't Stand Losing You"
|
199
|
+
},
|
200
|
+
{
|
201
|
+
"id": "/en/roxanne_97_puff_daddy_remix",
|
202
|
+
"link": "/music/album/artist",
|
203
|
+
"name": "Roxanne '97 (Puff Daddy remix)"
|
204
|
+
},
|
205
|
+
{
|
206
|
+
"id": "/en/roxanne_97",
|
207
|
+
"link": "/music/album/artist",
|
208
|
+
"name": "Roxanne '97"
|
209
|
+
},
|
210
|
+
{
|
211
|
+
"id": "/guid/9202a8c04000641f800000000128acd5",
|
212
|
+
"link": "/music/track/artist",
|
213
|
+
"name": "Message in a Bottle"
|
214
|
+
},
|
215
|
+
{
|
216
|
+
"id": "/guid/9202a8c04000641f800000000128acdc",
|
217
|
+
"link": "/music/track/artist",
|
218
|
+
"name": "Can't Stand Losing You"
|
219
|
+
},
|
220
|
+
{
|
221
|
+
"id": "/guid/9202a8c04000641f800000000128acea",
|
222
|
+
"link": "/music/track/artist",
|
223
|
+
"name": "Every Breath You Take"
|
224
|
+
},
|
225
|
+
{
|
226
|
+
"id": "/guid/9202a8c04000641f800000000128acf8",
|
227
|
+
"link": "/music/track/artist",
|
228
|
+
"name": "Walking on the Moon"
|
229
|
+
},
|
230
|
+
{
|
231
|
+
"id": "/guid/9202a8c04000641f800000000128ad0d",
|
232
|
+
"link": "/music/track/artist",
|
233
|
+
"name": "Every Little Thing She Does Is Magic"
|
234
|
+
},
|
235
|
+
{
|
236
|
+
"id": "/guid/9202a8c04000641f800000000128ad14",
|
237
|
+
"link": "/music/track/artist",
|
238
|
+
"name": "De Do Do Do, De Da Da Da"
|
239
|
+
},
|
240
|
+
{
|
241
|
+
"id": "/guid/9202a8c04000641f800000000128ad3e",
|
242
|
+
"link": "/music/track/artist",
|
243
|
+
"name": "Don't Stand So Close to Me"
|
244
|
+
},
|
245
|
+
{
|
246
|
+
"id": "/guid/9202a8c04000641f800000000128ad45",
|
247
|
+
"link": "/music/track/artist",
|
248
|
+
"name": "Roxanne"
|
249
|
+
},
|
250
|
+
{
|
251
|
+
"id": "/guid/9202a8c04000641f800000000128ad4c",
|
252
|
+
"link": "/music/track/artist",
|
253
|
+
"name": "Roxanne '97 (Puff Daddy remix)"
|
254
|
+
},
|
255
|
+
{
|
256
|
+
"id": "/guid/9202a8c04000641f80000000012dba61",
|
257
|
+
"link": "/music/track/artist",
|
258
|
+
"name": "Every Breath You Take"
|
259
|
+
},
|
260
|
+
{
|
261
|
+
"id": "/guid/9202a8c04000641f80000000012dde95",
|
262
|
+
"link": "/music/track/artist",
|
263
|
+
"name": "Message in a Bottle"
|
264
|
+
},
|
265
|
+
{
|
266
|
+
"id": "/guid/9202a8c04000641f80000000012dde9c",
|
267
|
+
"link": "/music/track/artist",
|
268
|
+
"name": "Can't Stand Losing You"
|
269
|
+
},
|
270
|
+
{
|
271
|
+
"id": "/guid/9202a8c04000641f80000000012ddeaa",
|
272
|
+
"link": "/music/track/artist",
|
273
|
+
"name": "Every Breath You Take"
|
274
|
+
},
|
275
|
+
{
|
276
|
+
"id": "/guid/9202a8c04000641f80000000012ddeb1",
|
277
|
+
"link": "/music/track/artist",
|
278
|
+
"name": "Walking on The Moon"
|
279
|
+
},
|
280
|
+
{
|
281
|
+
"id": "/guid/9202a8c04000641f80000000012ddebf",
|
282
|
+
"link": "/music/track/artist",
|
283
|
+
"name": "Every Little Thing She Does Is Magic"
|
284
|
+
},
|
285
|
+
{
|
286
|
+
"id": "/guid/9202a8c04000641f80000000012ddee9",
|
287
|
+
"link": "/music/track/artist",
|
288
|
+
"name": "Don't Stand So Close to Me"
|
289
|
+
},
|
290
|
+
{
|
291
|
+
"id": "/guid/9202a8c04000641f80000000012ddef0",
|
292
|
+
"link": "/music/track/artist",
|
293
|
+
"name": "Roxanne"
|
294
|
+
},
|
295
|
+
{
|
296
|
+
"id": "/guid/9202a8c04000641f80000000012ddef7",
|
297
|
+
"link": "/music/track/artist",
|
298
|
+
"name": "Roxanne '97 (Puff Daddy remix)"
|
299
|
+
},
|
300
|
+
{
|
301
|
+
"id": "/guid/9202a8c04000641f8000000001338a15",
|
302
|
+
"link": "/music/track/artist",
|
303
|
+
"name": "Message in a Bottle"
|
304
|
+
},
|
305
|
+
{
|
306
|
+
"id": "/guid/9202a8c04000641f8000000001338a1c",
|
307
|
+
"link": "/music/track/artist",
|
308
|
+
"name": "Can't Stand Losing You"
|
309
|
+
},
|
310
|
+
{
|
311
|
+
"id": "/guid/9202a8c04000641f8000000001338a2a",
|
312
|
+
"link": "/music/track/artist",
|
313
|
+
"name": "Every Breath You Take"
|
314
|
+
},
|
315
|
+
{
|
316
|
+
"id": "/guid/9202a8c04000641f8000000001338a38",
|
317
|
+
"link": "/music/track/artist",
|
318
|
+
"name": "Walking on the Moon"
|
319
|
+
},
|
320
|
+
{
|
321
|
+
"id": "/guid/9202a8c04000641f8000000001338a4d",
|
322
|
+
"link": "/music/track/artist",
|
323
|
+
"name": "Every Little Thing She Does Is Magic"
|
324
|
+
},
|
325
|
+
{
|
326
|
+
"id": "/guid/9202a8c04000641f8000000001338a54",
|
327
|
+
"link": "/music/track/artist",
|
328
|
+
"name": "De Do Do Do, De Da Da Da"
|
329
|
+
},
|
330
|
+
{
|
331
|
+
"id": "/guid/9202a8c04000641f8000000001338a7e",
|
332
|
+
"link": "/music/track/artist",
|
333
|
+
"name": "Don't Stand So Close to Me"
|
334
|
+
},
|
335
|
+
{
|
336
|
+
"id": "/guid/9202a8c04000641f8000000001338a85",
|
337
|
+
"link": "/music/track/artist",
|
338
|
+
"name": "Roxanne"
|
339
|
+
},
|
340
|
+
{
|
341
|
+
"id": "/guid/9202a8c04000641f8000000001423459",
|
342
|
+
"link": "/music/track/artist",
|
343
|
+
"name": "Don't Stand So Close to Me"
|
344
|
+
},
|
345
|
+
{
|
346
|
+
"id": "/guid/9202a8c04000641f8000000001474145",
|
347
|
+
"link": "/music/track/artist",
|
348
|
+
"name": "Message in a Bottle"
|
349
|
+
},
|
350
|
+
{
|
351
|
+
"id": "/guid/9202a8c04000641f800000000147414c",
|
352
|
+
"link": "/music/track/artist",
|
353
|
+
"name": "Can't Stand Losing You"
|
354
|
+
},
|
355
|
+
{
|
356
|
+
"id": "/guid/9202a8c04000641f800000000147415a",
|
357
|
+
"link": "/music/track/artist",
|
358
|
+
"name": "Every Breath You Take"
|
359
|
+
},
|
360
|
+
{
|
361
|
+
"id": "/guid/9202a8c04000641f8000000001474168",
|
362
|
+
"link": "/music/track/artist",
|
363
|
+
"name": "Walking on the Moon"
|
364
|
+
},
|
365
|
+
{
|
366
|
+
"id": "/guid/9202a8c04000641f800000000147417d",
|
367
|
+
"link": "/music/track/artist",
|
368
|
+
"name": "Every Little Thing She Does Is Magic"
|
369
|
+
},
|
370
|
+
{
|
371
|
+
"id": "/guid/9202a8c04000641f8000000001474184",
|
372
|
+
"link": "/music/track/artist",
|
373
|
+
"name": "De Do Do Do, De Da Da Da"
|
374
|
+
},
|
375
|
+
{
|
376
|
+
"id": "/guid/9202a8c04000641f80000000014741ae",
|
377
|
+
"link": "/music/track/artist",
|
378
|
+
"name": "Don't Stand So Close to Me"
|
379
|
+
},
|
380
|
+
{
|
381
|
+
"id": "/guid/9202a8c04000641f80000000014741b5",
|
382
|
+
"link": "/music/track/artist",
|
383
|
+
"name": "Roxanne"
|
384
|
+
},
|
385
|
+
{
|
386
|
+
"id": "/guid/9202a8c04000641f80000000014741bc",
|
387
|
+
"link": "/music/track/artist",
|
388
|
+
"name": "So Lonely"
|
389
|
+
},
|
390
|
+
{
|
391
|
+
"id": "/guid/9202a8c04000641f8000000001477682",
|
392
|
+
"link": "/music/track/artist",
|
393
|
+
"name": "Every Little Thing She Does Is Magic"
|
394
|
+
},
|
395
|
+
{
|
396
|
+
"id": "/guid/9202a8c04000641f80000000014c6e37",
|
397
|
+
"link": "/music/track/artist",
|
398
|
+
"name": "Don't Stand So Close"
|
399
|
+
},
|
400
|
+
{
|
401
|
+
"id": "/guid/9202a8c04000641f8000000001555d7d",
|
402
|
+
"link": "/music/track/artist",
|
403
|
+
"name": "Walking on the Moon"
|
404
|
+
},
|
405
|
+
{
|
406
|
+
"id": "/guid/9202a8c04000641f8000000001594b89",
|
407
|
+
"link": "/music/track/artist",
|
408
|
+
"name": "Message in a Bottle"
|
409
|
+
},
|
410
|
+
{
|
411
|
+
"id": "/guid/9202a8c04000641f8000000001594b90",
|
412
|
+
"link": "/music/track/artist",
|
413
|
+
"name": "Can't Stand Losing You"
|
414
|
+
},
|
415
|
+
{
|
416
|
+
"id": "/guid/9202a8c04000641f8000000001594b9e",
|
417
|
+
"link": "/music/track/artist",
|
418
|
+
"name": "Every Breath You Take"
|
419
|
+
},
|
420
|
+
{
|
421
|
+
"id": "/guid/9202a8c04000641f8000000001594bac",
|
422
|
+
"link": "/music/track/artist",
|
423
|
+
"name": "Walking on the Moon"
|
424
|
+
},
|
425
|
+
{
|
426
|
+
"id": "/guid/9202a8c04000641f8000000001594bc1",
|
427
|
+
"link": "/music/track/artist",
|
428
|
+
"name": "Every Little Thing She Does Is Magic"
|
429
|
+
},
|
430
|
+
{
|
431
|
+
"id": "/guid/9202a8c04000641f8000000001594bc8",
|
432
|
+
"link": "/music/track/artist",
|
433
|
+
"name": "De Do Do Do De Da Da Da"
|
434
|
+
},
|
435
|
+
{
|
436
|
+
"id": "/guid/9202a8c04000641f80000000015de479",
|
437
|
+
"link": "/music/track/artist",
|
438
|
+
"name": "Driven to Tears"
|
439
|
+
},
|
440
|
+
{
|
441
|
+
"id": "/guid/9202a8c04000641f80000000016088e7",
|
442
|
+
"link": "/music/track/artist",
|
443
|
+
"name": "Every Breath You Take"
|
444
|
+
},
|
445
|
+
{
|
446
|
+
"id": "/guid/9202a8c04000641f800000000163c1eb",
|
447
|
+
"link": "/music/track/artist",
|
448
|
+
"name": "Don't Stand So Close to Me"
|
449
|
+
},
|
450
|
+
{
|
451
|
+
"id": "/guid/9202a8c04000641f800000000166c542",
|
452
|
+
"link": "/music/track/artist",
|
453
|
+
"name": "So Lonely"
|
454
|
+
},
|
455
|
+
{
|
456
|
+
"id": "/guid/9202a8c04000641f800000000166ddfa",
|
457
|
+
"link": "/music/track/artist",
|
458
|
+
"name": "Synchronicity II"
|
459
|
+
},
|
460
|
+
{
|
461
|
+
"id": "/guid/9202a8c04000641f80000000016a7432",
|
462
|
+
"link": "/music/track/artist",
|
463
|
+
"name": "Every Breath You Take"
|
464
|
+
},
|
465
|
+
{
|
466
|
+
"id": "/guid/9202a8c04000641f80000000016f672b",
|
467
|
+
"link": "/music/track/artist",
|
468
|
+
"name": "Every Breath You Take"
|
469
|
+
},
|
470
|
+
{
|
471
|
+
"id": "/guid/9202a8c04000641f800000000170d706",
|
472
|
+
"link": "/music/track/artist",
|
473
|
+
"name": "Every Breath You Take"
|
474
|
+
},
|
475
|
+
{
|
476
|
+
"id": "/guid/9202a8c04000641f80000000017c7193",
|
477
|
+
"link": "/music/track/artist",
|
478
|
+
"name": "Can't Stand Losing You"
|
479
|
+
},
|
480
|
+
{
|
481
|
+
"id": "/guid/9202a8c04000641f80000000017f93ec",
|
482
|
+
"link": "/music/track/artist",
|
483
|
+
"name": "Roxanne"
|
484
|
+
},
|
485
|
+
{
|
486
|
+
"id": "/guid/9202a8c04000641f800000000187d519",
|
487
|
+
"link": "/music/track/artist",
|
488
|
+
"name": "De Do Do"
|
489
|
+
},
|
490
|
+
{
|
491
|
+
"id": "/guid/9202a8c04000641f80000000018b6033",
|
492
|
+
"link": "/music/track/artist",
|
493
|
+
"name": "Every Breath You Take"
|
494
|
+
},
|
495
|
+
{
|
496
|
+
"id": "/guid/9202a8c04000641f80000000018dc967",
|
497
|
+
"link": "/music/track/artist",
|
498
|
+
"name": "Don't Stand So Close to Me"
|
499
|
+
},
|
500
|
+
{
|
501
|
+
"id": "/guid/9202a8c04000641f800000000196011e",
|
502
|
+
"link": "/music/track/artist",
|
503
|
+
"name": "Every Breath You Take"
|
504
|
+
},
|
505
|
+
{
|
506
|
+
"id": "/guid/9202a8c04000641f80000000019ad096",
|
507
|
+
"link": "/music/track/artist",
|
508
|
+
"name": "Every Little Thing She Does Is Magic"
|
509
|
+
},
|
510
|
+
{
|
511
|
+
"id": "/guid/9202a8c04000641f8000000001a3fbb1",
|
512
|
+
"link": "/music/track/artist",
|
513
|
+
"name": "Every Breath You Take"
|
514
|
+
},
|
515
|
+
{
|
516
|
+
"id": "/guid/9202a8c04000641f8000000001a51770",
|
517
|
+
"link": "/music/track/artist",
|
518
|
+
"name": "Driven to Tears"
|
519
|
+
},
|
520
|
+
{
|
521
|
+
"id": "/guid/9202a8c04000641f8000000001a6f0e0",
|
522
|
+
"link": "/music/track/artist",
|
523
|
+
"name": "How Stupid Mr. Bates"
|
524
|
+
},
|
525
|
+
{
|
526
|
+
"id": "/guid/9202a8c04000641f8000000001a6f0ee",
|
527
|
+
"link": "/music/track/artist",
|
528
|
+
"name": "I Burn For You"
|
529
|
+
},
|
530
|
+
{
|
531
|
+
"id": "/guid/9202a8c04000641f8000000001a6f118",
|
532
|
+
"link": "/music/track/artist",
|
533
|
+
"name": "A Kind of Loving"
|
534
|
+
},
|
535
|
+
{
|
536
|
+
"id": "/guid/9202a8c04000641f8000000001b3c3b5",
|
537
|
+
"link": "/music/track/artist",
|
538
|
+
"name": "Roxanne"
|
539
|
+
},
|
540
|
+
{
|
541
|
+
"id": "/guid/9202a8c04000641f8000000001b4384d",
|
542
|
+
"link": "/music/track/artist",
|
543
|
+
"name": "Nothing Achieving"
|
544
|
+
},
|
545
|
+
{
|
546
|
+
"id": "/guid/9202a8c04000641f8000000001b8d03f",
|
547
|
+
"link": "/music/track/artist",
|
548
|
+
"name": "Roxanne"
|
549
|
+
},
|
550
|
+
{
|
551
|
+
"id": "/guid/9202a8c04000641f8000000001bbfa9a",
|
552
|
+
"link": "/music/track/artist",
|
553
|
+
"name": "Fall Out"
|
554
|
+
},
|
555
|
+
{
|
556
|
+
"id": "/guid/9202a8c04000641f8000000001bf6fa1",
|
557
|
+
"link": "/music/track/artist",
|
558
|
+
"name": "Every Breath You Take"
|
559
|
+
},
|
560
|
+
{
|
561
|
+
"id": "/guid/9202a8c04000641f8000000001d17cc8",
|
562
|
+
"link": "/music/track/artist",
|
563
|
+
"name": "Message in a Bottle"
|
564
|
+
},
|
565
|
+
{
|
566
|
+
"id": "/guid/9202a8c04000641f8000000001d17e96",
|
567
|
+
"link": "/music/track/artist",
|
568
|
+
"name": "Every Breath You Take"
|
569
|
+
},
|
570
|
+
{
|
571
|
+
"id": "/guid/9202a8c04000641f8000000001d2d0b8",
|
572
|
+
"link": "/music/track/artist",
|
573
|
+
"name": "Message in a Bottle"
|
574
|
+
},
|
575
|
+
{
|
576
|
+
"id": "/guid/9202a8c04000641f8000000001d80ea3",
|
577
|
+
"link": "/music/track/artist",
|
578
|
+
"name": "King of Pain"
|
579
|
+
},
|
580
|
+
{
|
581
|
+
"id": "/guid/9202a8c04000641f8000000001d93d32",
|
582
|
+
"link": "/music/track/artist",
|
583
|
+
"name": "Every Little Thing She Does Is Magic"
|
584
|
+
},
|
585
|
+
{
|
586
|
+
"id": "/guid/9202a8c04000641f8000000001e3eb1f",
|
587
|
+
"link": "/music/track/artist",
|
588
|
+
"name": "Every Little Thing She Does Is Magic"
|
589
|
+
},
|
590
|
+
{
|
591
|
+
"id": "/guid/9202a8c04000641f8000000001ee5178",
|
592
|
+
"link": "/music/track/artist",
|
593
|
+
"name": "Message in a Bottle"
|
594
|
+
},
|
595
|
+
{
|
596
|
+
"id": "/guid/9202a8c04000641f8000000001f5a4ad",
|
597
|
+
"link": "/music/track/artist",
|
598
|
+
"name": "Every Breath You Take"
|
599
|
+
},
|
600
|
+
{
|
601
|
+
"id": "/guid/9202a8c04000641f8000000001f835c3",
|
602
|
+
"link": "/music/track/artist",
|
603
|
+
"name": "Every Breath You Take"
|
604
|
+
},
|
605
|
+
{
|
606
|
+
"id": "/guid/9202a8c04000641f8000000001ff4227",
|
607
|
+
"link": "/music/track/artist",
|
608
|
+
"name": "Every Breath You Take"
|
609
|
+
},
|
610
|
+
{
|
611
|
+
"id": "/guid/9202a8c04000641f800000000200cc5e",
|
612
|
+
"link": "/music/track/artist",
|
613
|
+
"name": "Every Little Thing She Does Is Magic"
|
614
|
+
},
|
615
|
+
{
|
616
|
+
"id": "/guid/9202a8c04000641f8000000002041324",
|
617
|
+
"link": "/music/track/artist",
|
618
|
+
"name": "Every Breath You Take"
|
619
|
+
},
|
620
|
+
{
|
621
|
+
"id": "/guid/9202a8c04000641f800000000206f5f8",
|
622
|
+
"link": "/music/track/artist",
|
623
|
+
"name": "Every Breath You Take"
|
624
|
+
},
|
625
|
+
{
|
626
|
+
"id": "/guid/9202a8c04000641f80000000021147c7",
|
627
|
+
"link": "/music/track/artist",
|
628
|
+
"name": "Message in a Bottle"
|
629
|
+
},
|
630
|
+
{
|
631
|
+
"id": "/guid/9202a8c04000641f80000000021147ce",
|
632
|
+
"link": "/music/track/artist",
|
633
|
+
"name": "Can't Stand Losing You"
|
634
|
+
},
|
635
|
+
{
|
636
|
+
"id": "/guid/9202a8c04000641f80000000021147dc",
|
637
|
+
"link": "/music/track/artist",
|
638
|
+
"name": "Every Breath You Take"
|
639
|
+
}
|
640
|
+
],
|
641
|
+
"/type/reflect/any_value": [
|
642
|
+
{
|
643
|
+
"link": "/type/object/name",
|
644
|
+
"value": "The Police"
|
645
|
+
},
|
646
|
+
{
|
647
|
+
"link": "/type/object/name",
|
648
|
+
"value": "The Police"
|
649
|
+
},
|
650
|
+
{
|
651
|
+
"link": "/type/object/name",
|
652
|
+
"value": "The Police"
|
653
|
+
},
|
654
|
+
{
|
655
|
+
"link": "/type/object/name",
|
656
|
+
"value": "The Police"
|
657
|
+
},
|
658
|
+
{
|
659
|
+
"link": "/type/object/name",
|
660
|
+
"value": "ポリス (バンド)"
|
661
|
+
},
|
662
|
+
{
|
663
|
+
"link": "/type/object/name",
|
664
|
+
"value": "The Police"
|
665
|
+
},
|
666
|
+
{
|
667
|
+
"link": "/music/artist/active_start",
|
668
|
+
"value": "1977-01"
|
669
|
+
},
|
670
|
+
{
|
671
|
+
"link": "/type/object/name",
|
672
|
+
"value": "The Police"
|
673
|
+
},
|
674
|
+
{
|
675
|
+
"link": "/type/object/name",
|
676
|
+
"value": "The Police"
|
677
|
+
},
|
678
|
+
{
|
679
|
+
"link": "/type/object/name",
|
680
|
+
"value": "The Police"
|
681
|
+
},
|
682
|
+
{
|
683
|
+
"link": "/type/object/name",
|
684
|
+
"value": "The Police"
|
685
|
+
},
|
686
|
+
{
|
687
|
+
"link": "/type/object/name",
|
688
|
+
"value": "הפוליס"
|
689
|
+
},
|
690
|
+
{
|
691
|
+
"link": "/common/topic/alias",
|
692
|
+
"value": "Sting & The Police"
|
693
|
+
},
|
694
|
+
{
|
695
|
+
"link": "/type/object/name",
|
696
|
+
"value": "เดอะ โพลิซ"
|
697
|
+
},
|
698
|
+
{
|
699
|
+
"link": "/music/artist/active_end",
|
700
|
+
"value": "1986"
|
701
|
+
}
|
702
|
+
],
|
703
|
+
"id": "/en/the_police",
|
704
|
+
"ken:type": [
|
705
|
+
{
|
706
|
+
"id": "/music/artist",
|
707
|
+
"name": "Musical Artist",
|
708
|
+
"properties": [
|
709
|
+
{
|
710
|
+
"expected_type": "/location/location",
|
711
|
+
"id": "/music/artist/origin",
|
712
|
+
"master_property": null,
|
713
|
+
"name": "Place Musical Career Began",
|
714
|
+
"reverse_property": null,
|
715
|
+
"unique": true
|
716
|
+
},
|
717
|
+
{
|
718
|
+
"expected_type": "/type/datetime",
|
719
|
+
"id": "/music/artist/active_start",
|
720
|
+
"master_property": null,
|
721
|
+
"name": "Active as Musical Artist (start)",
|
722
|
+
"reverse_property": null,
|
723
|
+
"unique": true
|
724
|
+
},
|
725
|
+
{
|
726
|
+
"expected_type": "/type/datetime",
|
727
|
+
"id": "/music/artist/active_end",
|
728
|
+
"master_property": null,
|
729
|
+
"name": "Active as Musical Artist (end)",
|
730
|
+
"reverse_property": null,
|
731
|
+
"unique": true
|
732
|
+
},
|
733
|
+
{
|
734
|
+
"expected_type": "/music/genre",
|
735
|
+
"id": "/music/artist/genre",
|
736
|
+
"master_property": null,
|
737
|
+
"name": "Musical Genres",
|
738
|
+
"reverse_property": "/music/genre/artists",
|
739
|
+
"unique": false
|
740
|
+
},
|
741
|
+
{
|
742
|
+
"expected_type": "/music/record_label",
|
743
|
+
"id": "/music/artist/label",
|
744
|
+
"master_property": null,
|
745
|
+
"name": "Record Labels",
|
746
|
+
"reverse_property": "/music/record_label/artist",
|
747
|
+
"unique": null
|
748
|
+
},
|
749
|
+
{
|
750
|
+
"expected_type": "/music/artist",
|
751
|
+
"id": "/music/artist/similar_artist",
|
752
|
+
"master_property": null,
|
753
|
+
"name": "Similar Artists",
|
754
|
+
"reverse_property": "/music/artist/artist_similar",
|
755
|
+
"unique": null
|
756
|
+
},
|
757
|
+
{
|
758
|
+
"expected_type": "/common/webpage",
|
759
|
+
"id": "/music/artist/home_page",
|
760
|
+
"master_property": null,
|
761
|
+
"name": "Musical Artist Home Page",
|
762
|
+
"reverse_property": null,
|
763
|
+
"unique": null
|
764
|
+
},
|
765
|
+
{
|
766
|
+
"expected_type": "/common/webpage",
|
767
|
+
"id": "/music/artist/acquire_webpage",
|
768
|
+
"master_property": null,
|
769
|
+
"name": "Web Page for Music",
|
770
|
+
"reverse_property": null,
|
771
|
+
"unique": null
|
772
|
+
},
|
773
|
+
{
|
774
|
+
"expected_type": "/music/album",
|
775
|
+
"id": "/music/artist/album",
|
776
|
+
"master_property": "/music/album/artist",
|
777
|
+
"name": "Albums",
|
778
|
+
"reverse_property": null,
|
779
|
+
"unique": null
|
780
|
+
},
|
781
|
+
{
|
782
|
+
"expected_type": "/music/recording_contribution",
|
783
|
+
"id": "/music/artist/contribution",
|
784
|
+
"master_property": "/music/recording_contribution/contributor",
|
785
|
+
"name": "Album Contributions",
|
786
|
+
"reverse_property": null,
|
787
|
+
"unique": null
|
788
|
+
},
|
789
|
+
{
|
790
|
+
"expected_type": "/music/track",
|
791
|
+
"id": "/music/artist/track",
|
792
|
+
"master_property": "/music/track/artist",
|
793
|
+
"name": "Tracks Recorded",
|
794
|
+
"reverse_property": null,
|
795
|
+
"unique": null
|
796
|
+
},
|
797
|
+
{
|
798
|
+
"expected_type": "/music/artist",
|
799
|
+
"id": "/music/artist/artist_similar",
|
800
|
+
"master_property": "/music/artist/similar_artist",
|
801
|
+
"name": "Similar Musical Artists",
|
802
|
+
"reverse_property": null,
|
803
|
+
"unique": null
|
804
|
+
},
|
805
|
+
{
|
806
|
+
"expected_type": "/music/track_contribution",
|
807
|
+
"id": "/music/artist/track_contributions",
|
808
|
+
"master_property": "/music/track_contribution/contributor",
|
809
|
+
"name": "Track Contributions",
|
810
|
+
"reverse_property": null,
|
811
|
+
"unique": null
|
812
|
+
},
|
813
|
+
{
|
814
|
+
"expected_type": "/music/instrument",
|
815
|
+
"id": "/music/artist/instruments_played",
|
816
|
+
"master_property": null,
|
817
|
+
"name": "Instruments Played",
|
818
|
+
"reverse_property": "/music/instrument/instrumentalists",
|
819
|
+
"unique": null
|
820
|
+
},
|
821
|
+
{
|
822
|
+
"expected_type": "/music/voice",
|
823
|
+
"id": "/music/artist/vocal_range",
|
824
|
+
"master_property": null,
|
825
|
+
"name": "Vocal Range",
|
826
|
+
"reverse_property": "/music/voice/singers",
|
827
|
+
"unique": null
|
828
|
+
},
|
829
|
+
{
|
830
|
+
"expected_type": "/music/concert_tour",
|
831
|
+
"id": "/music/artist/concert_tours",
|
832
|
+
"master_property": "/music/concert_tour/artist",
|
833
|
+
"name": "Concert Tours",
|
834
|
+
"reverse_property": null,
|
835
|
+
"unique": false
|
836
|
+
}
|
837
|
+
]
|
838
|
+
},
|
839
|
+
{
|
840
|
+
"id": "/common/topic",
|
841
|
+
"name": "Topic",
|
842
|
+
"properties": [
|
843
|
+
{
|
844
|
+
"expected_type": "/type/text",
|
845
|
+
"id": "/common/topic/alias",
|
846
|
+
"master_property": null,
|
847
|
+
"name": "Also known as",
|
848
|
+
"reverse_property": null,
|
849
|
+
"unique": null
|
850
|
+
},
|
851
|
+
{
|
852
|
+
"expected_type": "/common/document",
|
853
|
+
"id": "/common/topic/article",
|
854
|
+
"master_property": null,
|
855
|
+
"name": "article",
|
856
|
+
"reverse_property": null,
|
857
|
+
"unique": null
|
858
|
+
},
|
859
|
+
{
|
860
|
+
"expected_type": "/common/image",
|
861
|
+
"id": "/common/topic/image",
|
862
|
+
"master_property": null,
|
863
|
+
"name": "image",
|
864
|
+
"reverse_property": "/common/image/appears_in_topic_gallery",
|
865
|
+
"unique": null
|
866
|
+
},
|
867
|
+
{
|
868
|
+
"expected_type": "/common/webpage",
|
869
|
+
"id": "/common/topic/webpage",
|
870
|
+
"master_property": null,
|
871
|
+
"name": "Web Link(s)",
|
872
|
+
"reverse_property": null,
|
873
|
+
"unique": null
|
874
|
+
}
|
875
|
+
]
|
876
|
+
},
|
877
|
+
{
|
878
|
+
"id": "/music/producer",
|
879
|
+
"name": "Record Producer",
|
880
|
+
"properties": [
|
881
|
+
{
|
882
|
+
"expected_type": "/music/album",
|
883
|
+
"id": "/music/producer/albums_produced",
|
884
|
+
"master_property": "/music/album/producer",
|
885
|
+
"name": "Albums Produced",
|
886
|
+
"reverse_property": null,
|
887
|
+
"unique": null
|
888
|
+
},
|
889
|
+
{
|
890
|
+
"expected_type": "/music/track",
|
891
|
+
"id": "/music/producer/tracks_produced",
|
892
|
+
"master_property": "/music/track/producer",
|
893
|
+
"name": "Tracks produced",
|
894
|
+
"reverse_property": null,
|
895
|
+
"unique": false
|
896
|
+
}
|
897
|
+
]
|
898
|
+
},
|
899
|
+
{
|
900
|
+
"id": "/music/musical_group",
|
901
|
+
"name": "Musical Group",
|
902
|
+
"properties": [{
|
903
|
+
"expected_type": "/music/group_membership",
|
904
|
+
"id": "/music/musical_group/member",
|
905
|
+
"master_property": "/music/group_membership/group",
|
906
|
+
"name": "Members Of Musical Group",
|
907
|
+
"reverse_property": null,
|
908
|
+
"unique": null
|
909
|
+
}]
|
910
|
+
},
|
911
|
+
{
|
912
|
+
"id": "/broadcast/artist",
|
913
|
+
"name": "Broadcast Artist",
|
914
|
+
"properties": [{
|
915
|
+
"expected_type": "/broadcast/content",
|
916
|
+
"id": "/broadcast/artist/content",
|
917
|
+
"master_property": "/broadcast/content/artist",
|
918
|
+
"name": "Content",
|
919
|
+
"reverse_property": null,
|
920
|
+
"unique": null
|
921
|
+
}]
|
922
|
+
},
|
923
|
+
{
|
924
|
+
"id": "/award/award_winner",
|
925
|
+
"name": "Award Winner",
|
926
|
+
"properties": [{
|
927
|
+
"expected_type": "/award/award_honor",
|
928
|
+
"id": "/award/award_winner/awards_won",
|
929
|
+
"master_property": "/award/award_honor/award_winner",
|
930
|
+
"name": "Awards Won",
|
931
|
+
"reverse_property": null,
|
932
|
+
"unique": null
|
933
|
+
}]
|
934
|
+
}
|
935
|
+
],
|
936
|
+
"name": "The Police"
|
940
937
|
}
|