openbel-api 0.6.2-java → 1.0.0-java

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.gemspec +11 -14
  3. data/CHANGELOG.md +18 -12
  4. data/README.md +25 -36
  5. data/VERSION +1 -1
  6. data/app/openbel/api/app.rb +13 -12
  7. data/app/openbel/api/config.rb +53 -11
  8. data/app/openbel/api/helpers/{evidence.rb → nanopub.rb} +13 -14
  9. data/app/openbel/api/middleware/auth.rb +22 -29
  10. data/app/openbel/api/resources/annotation.rb +7 -7
  11. data/app/openbel/api/resources/function.rb +12 -35
  12. data/app/openbel/api/resources/namespace.rb +13 -13
  13. data/app/openbel/api/resources/{evidence.rb → nanopub.rb} +23 -23
  14. data/app/openbel/api/resources/{evidence_transform.rb → nanopub_transform.rb} +8 -8
  15. data/app/openbel/api/resources/relationship.rb +74 -0
  16. data/app/openbel/api/routes/annotations.rb +1 -1
  17. data/app/openbel/api/routes/base.rb +11 -7
  18. data/app/openbel/api/routes/datasets.rb +74 -84
  19. data/app/openbel/api/routes/expressions.rb +86 -396
  20. data/app/openbel/api/routes/language.rb +118 -0
  21. data/app/openbel/api/routes/namespaces.rb +2 -2
  22. data/app/openbel/api/routes/{evidence.rb → nanopubs.rb} +68 -69
  23. data/app/openbel/api/routes/root.rb +2 -2
  24. data/app/openbel/api/routes/version.rb +37 -23
  25. data/app/openbel/api/schemas/annotation_resource.schema.json +1 -1
  26. data/app/openbel/api/schemas/{evidence.schema.json → nanopub.schema.json} +10 -10
  27. data/app/openbel/api/schemas/{evidence_collection.schema.json → nanopub_collection.schema.json} +5 -5
  28. data/app/openbel/api/schemas/{evidence_resource.schema.json → nanopub_resource.schema.json} +4 -4
  29. data/config/config.yml +15 -5
  30. data/lib/openbel/api/helpers/uuid_generator.rb +22 -0
  31. data/lib/openbel/api/{evidence → nanopub}/api.rb +9 -9
  32. data/lib/openbel/api/{evidence → nanopub}/facet_api.rb +2 -2
  33. data/lib/openbel/api/{evidence → nanopub}/facet_filter.rb +6 -6
  34. data/lib/openbel/api/{evidence → nanopub}/mongo.rb +54 -52
  35. data/lib/openbel/api/{evidence → nanopub}/mongo_facet.rb +17 -28
  36. data/lib/openbel/api/plugin/{evidence/evidence.rb → nanopub/nanopub.rb} +7 -7
  37. metadata +44 -56
  38. data/app/openbel/api/routes/functions.rb +0 -41
@@ -2,14 +2,16 @@ require 'mongo'
2
2
  require 'multi_json'
3
3
  require_relative 'facet_api'
4
4
  require_relative 'facet_filter'
5
+ require_relative '../helpers/uuid_generator'
5
6
 
6
7
  module OpenBEL
7
- module Evidence
8
+ module Nanopub
8
9
 
9
- class EvidenceFacets
10
+ class NanopubFacets
10
11
  include FacetAPI
11
12
  include Mongo
12
13
  include FacetFilter
14
+ include ::OpenBEL::Helpers::UUIDGenerator
13
15
 
14
16
  def initialize(options = {})
15
17
  host = options[:host]
@@ -30,8 +32,8 @@ module OpenBEL
30
32
  @db.authenticate(username, password, nil, auth_db)
31
33
  end
32
34
 
33
- @evidence = @db[:evidence]
34
- @evidence_facet_cache = @db[:evidence_facet_cache]
35
+ @nanopub = @db[:nanopub]
36
+ @nanopub_facet_cache = @db[:nanopub_facet_cache]
35
37
 
36
38
  # ensure all indexes are created and maintained
37
39
  ensure_all_indexes
@@ -42,10 +44,10 @@ module OpenBEL
42
44
  cache_collection = facet_cache_collection(sorted_filters)
43
45
 
44
46
  if no_collection?(cache_collection)
45
- cache_collection = "evidence_facet_cache_#{EvidenceFacets.generate_uuid}"
47
+ cache_collection = "nanopub_facet_cache_#{generate_uuid}"
46
48
  create_aggr = create_aggregation(cache_collection, query)
47
- @evidence.aggregate(create_aggr[:pipeline], create_aggr[:options])
48
- @evidence_facet_cache.insert({
49
+ @nanopub.aggregate(create_aggr[:pipeline], create_aggr[:options])
50
+ @nanopub_facet_cache.insert({
49
51
  :filters => sorted_filters,
50
52
  :cache_collection => cache_collection
51
53
  })
@@ -82,7 +84,7 @@ module OpenBEL
82
84
  facets.unshift([])
83
85
 
84
86
  # Drop facet cache collections
85
- @evidence_facet_cache.find(
87
+ @nanopub_facet_cache.find(
86
88
  {:filters => {:$in => facets}},
87
89
  :fields => {:_id => 0, :cache_collection => 1}
88
90
  ).each do |doc|
@@ -90,12 +92,12 @@ module OpenBEL
90
92
  @db[cache_collection].drop()
91
93
  end
92
94
 
93
- # remove filter match entries in evidence_facet_cache
94
- @evidence_facet_cache.remove({:filters => {:$in => facets}})
95
+ # remove filter match entries in nanopub_facet_cache
96
+ @nanopub_facet_cache.remove({:filters => {:$in => facets}})
95
97
  end
96
98
 
97
99
  def delete_all_facets
98
- @evidence_facet_cache.find(
100
+ @nanopub_facet_cache.find(
99
101
  {},
100
102
  :fields => {:_id => 0, :cache_collection => 1}
101
103
  ).each do |doc|
@@ -103,12 +105,12 @@ module OpenBEL
103
105
  @db[cache_collection].drop()
104
106
  end
105
107
 
106
- # remove all entries in evidence_facet_cache
107
- @evidence_facet_cache.remove({})
108
+ # remove all entries in nanopub_facet_cache
109
+ @nanopub_facet_cache.remove({})
108
110
  end
109
111
 
110
112
  def ensure_all_indexes
111
- @evidence_facet_cache.ensure_index([
113
+ @nanopub_facet_cache.ensure_index([
112
114
  [:"filters.category", Mongo::ASCENDING],
113
115
  [:"filters.name", Mongo::ASCENDING]
114
116
  ],
@@ -132,7 +134,7 @@ module OpenBEL
132
134
  end
133
135
 
134
136
  def facet_cache_collection(filters)
135
- result = @evidence_facet_cache.find_one(
137
+ result = @nanopub_facet_cache.find_one(
136
138
  {:filters => filters},
137
139
  :fields => {:cache_collection => 1, :_id => 0}
138
140
  )
@@ -203,19 +205,6 @@ module OpenBEL
203
205
  :allowDiskUse => true
204
206
  }
205
207
  }
206
-
207
- # Define UUID implementation based on Ruby.
208
- if RUBY_ENGINE =~ /^jruby/i
209
- java_import 'java.util.UUID'
210
- define_singleton_method(:generate_uuid) do
211
- Java::JavaUtil::UUID.random_uuid.to_s
212
- end
213
- else
214
- require 'uuid'
215
- define_singleton_method(:generate_uuid) do
216
- UUID.generate
217
- end
218
- end
219
208
  end
220
209
  end
221
210
  end
@@ -3,12 +3,12 @@ require_relative '../plugin'
3
3
  module OpenBEL
4
4
  module Plugin
5
5
 
6
- class Evidence
6
+ class Nanopub
7
7
  include OpenBEL::Plugin
8
8
 
9
- ID = 'evidence'
10
- NAME = 'OpenBEL Evidence API'
11
- DESC = 'API for accesing OpenBEL Evidence.'
9
+ ID = 'nanopub'
10
+ NAME = 'OpenBEL Nanopub API'
11
+ DESC = 'API for accesing OpenBEL Nanopub.'
12
12
 
13
13
  def id
14
14
  ID
@@ -23,7 +23,7 @@ module OpenBEL
23
23
  end
24
24
 
25
25
  def type
26
- :evidence
26
+ :nanopub
27
27
  end
28
28
 
29
29
  def required_extensions
@@ -35,7 +35,7 @@ module OpenBEL
35
35
  end
36
36
 
37
37
  def on_load
38
- require_relative '../../evidence/mongo'
38
+ require_relative '../../nanopub/mongo'
39
39
  end
40
40
 
41
41
  def validate(extensions = {}, options = {})
@@ -51,7 +51,7 @@ module OpenBEL
51
51
  end
52
52
 
53
53
  def create_instance
54
- OpenBEL::Evidence::Evidence.new(@options)
54
+ OpenBEL::Nanopub::Nanopub.new(@options)
55
55
  end
56
56
  end
57
57
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openbel-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 1.0.0
5
5
  platform: java
6
6
  authors:
7
7
  - Anthony Bargnesi
@@ -15,23 +15,23 @@ dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '='
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 0.6.0
20
+ version: 1.0.0
21
21
  name: bel
22
22
  prerelease: false
23
23
  type: :runtime
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - '='
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 0.6.0
28
+ version: 1.0.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - '='
33
33
  - !ruby/object:Gem::Version
34
- version: 1.99.0
34
+ version: 2.0.0
35
35
  name: json-ld
36
36
  prerelease: false
37
37
  type: :runtime
@@ -39,13 +39,13 @@ dependencies:
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 1.99.0
42
+ version: 2.0.0
43
43
  - !ruby/object:Gem::Dependency
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: 1.99.0
48
+ version: 2.0.0
49
49
  name: rdf-json
50
50
  prerelease: false
51
51
  type: :runtime
@@ -53,13 +53,13 @@ dependencies:
53
53
  requirements:
54
54
  - - '='
55
55
  - !ruby/object:Gem::Version
56
- version: 1.99.0
56
+ version: 2.0.0
57
57
  - !ruby/object:Gem::Dependency
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - '='
61
61
  - !ruby/object:Gem::Version
62
- version: 1.99.0
62
+ version: 2.0.0
63
63
  name: rdf-rdfa
64
64
  prerelease: false
65
65
  type: :runtime
@@ -67,13 +67,13 @@ dependencies:
67
67
  requirements:
68
68
  - - '='
69
69
  - !ruby/object:Gem::Version
70
- version: 1.99.0
70
+ version: 2.0.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - '='
75
75
  - !ruby/object:Gem::Version
76
- version: 1.99.0
76
+ version: 2.0.0
77
77
  name: rdf-rdfxml
78
78
  prerelease: false
79
79
  type: :runtime
@@ -81,13 +81,13 @@ dependencies:
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 1.99.0
84
+ version: 2.0.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - '='
89
89
  - !ruby/object:Gem::Version
90
- version: 1.99.0.1
90
+ version: 2.0.0
91
91
  name: rdf-trig
92
92
  prerelease: false
93
93
  type: :runtime
@@ -95,13 +95,13 @@ dependencies:
95
95
  requirements:
96
96
  - - '='
97
97
  - !ruby/object:Gem::Version
98
- version: 1.99.0.1
98
+ version: 2.0.0
99
99
  - !ruby/object:Gem::Dependency
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - '='
103
103
  - !ruby/object:Gem::Version
104
- version: 1.99.0
104
+ version: 2.0.0
105
105
  name: rdf-trix
106
106
  prerelease: false
107
107
  type: :runtime
@@ -109,13 +109,13 @@ dependencies:
109
109
  requirements:
110
110
  - - '='
111
111
  - !ruby/object:Gem::Version
112
- version: 1.99.0
112
+ version: 2.0.0
113
113
  - !ruby/object:Gem::Dependency
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - '='
117
117
  - !ruby/object:Gem::Version
118
- version: 1.99.0
118
+ version: 2.0.0
119
119
  name: rdf-turtle
120
120
  prerelease: false
121
121
  type: :runtime
@@ -123,49 +123,35 @@ dependencies:
123
123
  requirements:
124
124
  - - '='
125
125
  - !ruby/object:Gem::Version
126
- version: 1.99.0
126
+ version: 2.0.0
127
127
  - !ruby/object:Gem::Dependency
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - '='
130
+ - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: 0.4.2
132
+ version: 1.0.0.beta
133
133
  name: bel-search-sqlite
134
134
  prerelease: false
135
135
  type: :runtime
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - '='
138
+ - - "~>"
139
139
  - !ruby/object:Gem::Version
140
- version: 0.4.2
140
+ version: 1.0.0.beta
141
141
  - !ruby/object:Gem::Dependency
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - '='
144
+ - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: 0.4.2
146
+ version: 1.0.0.beta
147
147
  name: bel-rdf-jena
148
148
  prerelease: false
149
149
  type: :runtime
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - '='
153
- - !ruby/object:Gem::Version
154
- version: 0.4.2
155
- - !ruby/object:Gem::Dependency
156
- requirement: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - '='
159
- - !ruby/object:Gem::Version
160
- version: 1.99.1
161
- name: rdf
162
- prerelease: false
163
- type: :runtime
164
- version_requirements: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - '='
152
+ - - "~>"
167
153
  - !ruby/object:Gem::Version
168
- version: 1.99.1
154
+ version: 1.0.0.beta
169
155
  - !ruby/object:Gem::Dependency
170
156
  requirement: !ruby/object:Gem::Requirement
171
157
  requirements:
@@ -381,8 +367,8 @@ files:
381
367
  - app/openbel/api/config.rb
382
368
  - app/openbel/api/config.ru
383
369
  - app/openbel/api/helpers/base.rb
384
- - app/openbel/api/helpers/evidence.rb
385
370
  - app/openbel/api/helpers/filters.rb
371
+ - app/openbel/api/helpers/nanopub.rb
386
372
  - app/openbel/api/helpers/pager.rb
387
373
  - app/openbel/api/helpers/translators.rb
388
374
  - app/openbel/api/middleware/auth.rb
@@ -390,19 +376,20 @@ files:
390
376
  - app/openbel/api/resources/annotation.rb
391
377
  - app/openbel/api/resources/base.rb
392
378
  - app/openbel/api/resources/completion.rb
393
- - app/openbel/api/resources/evidence.rb
394
- - app/openbel/api/resources/evidence_transform.rb
395
379
  - app/openbel/api/resources/function.rb
396
380
  - app/openbel/api/resources/match_result.rb
397
381
  - app/openbel/api/resources/namespace.rb
382
+ - app/openbel/api/resources/nanopub.rb
383
+ - app/openbel/api/resources/nanopub_transform.rb
384
+ - app/openbel/api/resources/relationship.rb
398
385
  - app/openbel/api/routes/annotations.rb
399
386
  - app/openbel/api/routes/authenticate.rb
400
387
  - app/openbel/api/routes/base.rb
401
388
  - app/openbel/api/routes/datasets.rb
402
- - app/openbel/api/routes/evidence.rb
403
389
  - app/openbel/api/routes/expressions.rb
404
- - app/openbel/api/routes/functions.rb
390
+ - app/openbel/api/routes/language.rb
405
391
  - app/openbel/api/routes/namespaces.rb
392
+ - app/openbel/api/routes/nanopubs.rb
406
393
  - app/openbel/api/routes/root.rb
407
394
  - app/openbel/api/routes/version.rb
408
395
  - app/openbel/api/schemas.rb
@@ -412,11 +399,11 @@ files:
412
399
  - app/openbel/api/schemas/annotation_value_resource.schema.json
413
400
  - app/openbel/api/schemas/completion_collection.schema.json
414
401
  - app/openbel/api/schemas/completion_resource.schema.json
415
- - app/openbel/api/schemas/evidence.schema.json
416
- - app/openbel/api/schemas/evidence_collection.schema.json
417
- - app/openbel/api/schemas/evidence_resource.schema.json
418
402
  - app/openbel/api/schemas/namespace_value_collection.schema.json
419
403
  - app/openbel/api/schemas/namespace_value_resource.schema.json
404
+ - app/openbel/api/schemas/nanopub.schema.json
405
+ - app/openbel/api/schemas/nanopub_collection.schema.json
406
+ - app/openbel/api/schemas/nanopub_resource.schema.json
420
407
  - app/openbel/api/util.rb
421
408
  - app/openbel/api/version.rb
422
409
  - bin/openbel-api
@@ -425,16 +412,17 @@ files:
425
412
  - config/server_config.rb
426
413
  - lib/openbel/api/cache/cache.rb
427
414
  - lib/openbel/api/config/config.rb
428
- - lib/openbel/api/evidence/api.rb
429
- - lib/openbel/api/evidence/facet_api.rb
430
- - lib/openbel/api/evidence/facet_filter.rb
431
- - lib/openbel/api/evidence/mongo.rb
432
- - lib/openbel/api/evidence/mongo_facet.rb
433
415
  - lib/openbel/api/helpers/dependency_graph.rb
416
+ - lib/openbel/api/helpers/uuid_generator.rb
434
417
  - lib/openbel/api/model/rdf_resource.rb
418
+ - lib/openbel/api/nanopub/api.rb
419
+ - lib/openbel/api/nanopub/facet_api.rb
420
+ - lib/openbel/api/nanopub/facet_filter.rb
421
+ - lib/openbel/api/nanopub/mongo.rb
422
+ - lib/openbel/api/nanopub/mongo_facet.rb
435
423
  - lib/openbel/api/plugin/cache/kyotocabinet.rb
436
424
  - lib/openbel/api/plugin/configure_plugins.rb
437
- - lib/openbel/api/plugin/evidence/evidence.rb
425
+ - lib/openbel/api/plugin/nanopub/nanopub.rb
438
426
  - lib/openbel/api/plugin/plugin.rb
439
427
  - lib/openbel/api/plugin/plugin_manager.rb
440
428
  - lib/openbel/api/plugin/plugin_repository.rb
@@ -461,7 +449,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
461
449
  version: '0'
462
450
  requirements: []
463
451
  rubyforge_project:
464
- rubygems_version: 2.4.8
452
+ rubygems_version: 2.6.4
465
453
  signing_key:
466
454
  specification_version: 4
467
455
  summary: The OpenBEL API provided over RESTful HTTP endpoints.
@@ -1,41 +0,0 @@
1
- require 'bel'
2
-
3
- module OpenBEL
4
- module Routes
5
-
6
- class Functions < Base
7
- include BEL::Language
8
-
9
- SORTED_FUNCTIONS = FUNCTIONS.values.uniq.sort_by { |fx|
10
- fx[:short_form]
11
- }
12
-
13
- options '/api/functions' do
14
- response.headers['Allow'] = 'OPTIONS,GET'
15
- status 200
16
- end
17
-
18
- options '/api/functions/:fx' do
19
- response.headers['Allow'] = 'OPTIONS,GET'
20
- status 200
21
- end
22
-
23
- get '/api/functions' do
24
- render(SORTED_FUNCTIONS, :function_collection)
25
- end
26
-
27
- # BEL Completion
28
- get '/api/functions/:fx' do
29
- fx_match = FUNCTIONS[params[:fx].to_sym]
30
- halt 404 unless fx_match
31
-
32
- render(
33
- [fx_match],
34
- :function_collection
35
- )
36
- end
37
- end
38
- end
39
- end
40
- # vim: ts=2 sw=2:
41
- # encoding: utf-8