bel 0.4.0.beta.7 → 0.4.0.beta.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bel/completion_rule.rb +8 -3
- data/lib/bel/json/adapter/multi_json.rb +1 -1
- data/lib/bel/rdf_repository/plugins/memory.rb +0 -2
- data/lib/bel/rdf_repository/plugins/mongo.rb +0 -2
- data/lib/bel/translator/plugins/rdf/bel_schema.rb +9 -8
- data/lib/bel/translator/plugins/rdf/monkey_patch.rb +13 -11
- data/lib/bel/translator/plugins/rdf/translator.rb +4 -11
- data/lib/bel/translator/plugins/rdf/uuid.rb +21 -0
- data/lib/bel/translator/plugins/rdf/writer.rb +9 -4
- data/lib/bel/translator/plugins/xbel/translator.rb +14 -4
- data/lib/bel/version.rb +1 -1
- metadata +13 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e22bc8ddb611afaba61076e5e2ac66dc89ff9a59
|
4
|
+
data.tar.gz: 54c075abe536cd62000858f19e88cdaad4b1ab79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e994fee183fbcedbcec2b6728a9095299eb506e3ec0d8e9a2935b589eaff302498c3318fe5ffd25919490b80803db1d5cf4b9ede339099cb6630efc96d2e27ab
|
7
|
+
data.tar.gz: d6573b1c9965ee341f154a03f11c1a50f9392db3d5264c984d6e976435090e6c4f70c8e186e85e46228676791fe46514e6c5610a2e45c22df1b42739f33e02c9
|
data/lib/bel/completion_rule.rb
CHANGED
@@ -194,9 +194,11 @@ module BEL
|
|
194
194
|
namespace = BEL::Namespace::NAMESPACE_LATEST[prefix_token.value.to_sym]
|
195
195
|
if namespace
|
196
196
|
scheme_uri = namespace[1]
|
197
|
-
return search.
|
198
|
-
URI(scheme_uri),
|
197
|
+
return search.search(
|
199
198
|
"#{active_token.value}*",
|
199
|
+
:namespace_concept,
|
200
|
+
URI(scheme_uri),
|
201
|
+
nil,
|
200
202
|
:start => 0,
|
201
203
|
:size => 10
|
202
204
|
).
|
@@ -207,7 +209,10 @@ module BEL
|
|
207
209
|
end
|
208
210
|
else
|
209
211
|
return search.search(
|
210
|
-
active_token.value,
|
212
|
+
"#{active_token.value}*",
|
213
|
+
:namespace_concept,
|
214
|
+
nil,
|
215
|
+
nil,
|
211
216
|
:start => 0,
|
212
217
|
:size => 10
|
213
218
|
).
|
@@ -9,19 +9,20 @@ module BEL::Translator::Plugins
|
|
9
9
|
# uri prefixes
|
10
10
|
BELR = ::RDF::Vocabulary.new('http://www.openbel.org/bel/')
|
11
11
|
BELV = ::RDF::Vocabulary.new('http://www.openbel.org/vocabulary/')
|
12
|
+
BELE = ::RDF::Vocabulary.new('http://www.openbel.org/evidence/')
|
12
13
|
PUBMED = ::RDF::Vocabulary.new('http://bio2rdf.org/pubmed:')
|
13
14
|
RDF = ::RDF
|
14
15
|
RDFS = ::RDF::RDFS
|
15
16
|
|
16
17
|
# annotations
|
17
|
-
Anatomy =
|
18
|
-
Cell =
|
19
|
-
CellLine =
|
20
|
-
CellStructure =
|
21
|
-
Disease =
|
22
|
-
MeSHAnatomy =
|
23
|
-
MeSHDisease =
|
24
|
-
Species =
|
18
|
+
Anatomy = 'http://www.openbel.org/bel/annotation/anatomy/'
|
19
|
+
Cell = 'http://www.openbel.org/bel/annotation/cell/'
|
20
|
+
CellLine = 'http://www.openbel.org/bel/annotation/cell-line/'
|
21
|
+
CellStructure = 'http://www.openbel.org/bel/annotation/cell-structure/'
|
22
|
+
Disease = 'http://www.openbel.org/bel/annotation/disease/'
|
23
|
+
MeSHAnatomy = 'http://www.openbel.org/bel/annotation/mesh-anatomy/'
|
24
|
+
MeSHDisease = 'http://www.openbel.org/bel/annotation/mesh-diseases/'
|
25
|
+
Species = 'http://www.openbel.org/bel/annotation/species-taxonomy-id/'
|
25
26
|
|
26
27
|
# maps outer function to bel/vocabulary class
|
27
28
|
FUNCTION_TYPE = {
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'uuid'
|
2
|
+
|
1
3
|
module BEL::Translator::Plugins
|
2
4
|
|
3
5
|
module Rdf
|
@@ -155,8 +157,8 @@ module BEL::Translator::Plugins
|
|
155
157
|
@arguments.find_all{ |x|
|
156
158
|
x.is_a? ::BEL::Model::Parameter and x.ns != nil
|
157
159
|
}.each do |param|
|
158
|
-
concept_uri = param.ns.
|
159
|
-
statements << [uri, BEL::RDF::BELV.hasConcept, BEL::RDF::RDF::URI(
|
160
|
+
concept_uri = param.ns.to_uri + param.value.to_s
|
161
|
+
statements << [uri, BEL::RDF::BELV.hasConcept, BEL::RDF::RDF::URI(URI.encode(concept_uri))]
|
160
162
|
end
|
161
163
|
|
162
164
|
# BEL::RDF::BELV.hasChild]
|
@@ -254,10 +256,10 @@ module BEL::Translator::Plugins
|
|
254
256
|
statements << [uri, ::RDF::RDFS.label, to_s.force_encoding('UTF-8')]
|
255
257
|
|
256
258
|
# evidence
|
257
|
-
|
258
|
-
statements << [
|
259
|
-
statements << [uri, BEL::RDF::BELV.hasEvidence,
|
260
|
-
statements << [
|
259
|
+
evidence = BEL::RDF::BELE[Rdf.generate_uuid]
|
260
|
+
statements << [evidence, BEL::RDF::RDF.type, BEL::RDF::BELV.Evidence]
|
261
|
+
statements << [uri, BEL::RDF::BELV.hasEvidence, evidence]
|
262
|
+
statements << [evidence, BEL::RDF::BELV.hasStatement, uri]
|
261
263
|
|
262
264
|
# citation
|
263
265
|
citation = @annotations.delete('Citation')
|
@@ -266,9 +268,9 @@ module BEL::Translator::Plugins
|
|
266
268
|
if citation and value[0] == 'PubMed'
|
267
269
|
pid = value[2]
|
268
270
|
statements << [
|
269
|
-
|
271
|
+
evidence,
|
270
272
|
BEL::RDF::BELV.hasCitation,
|
271
|
-
BEL::RDF::
|
273
|
+
BEL::RDF::PUBMED[pid]
|
272
274
|
]
|
273
275
|
end
|
274
276
|
end
|
@@ -277,7 +279,7 @@ module BEL::Translator::Plugins
|
|
277
279
|
evidence_text = @annotations.delete('Evidence')
|
278
280
|
if evidence_text
|
279
281
|
value = evidence_text.value.gsub('"', '').force_encoding('UTF-8')
|
280
|
-
statements << [
|
282
|
+
statements << [evidence, BEL::RDF::BELV.hasEvidenceText, value]
|
281
283
|
end
|
282
284
|
|
283
285
|
# annotations
|
@@ -287,8 +289,8 @@ module BEL::Translator::Plugins
|
|
287
289
|
if BEL::RDF::const_defined? name
|
288
290
|
annotation_scheme = BEL::RDF::const_get name
|
289
291
|
[anno.value].flatten.map{|x| x.gsub('"', '')}.each do |val|
|
290
|
-
value_uri = BEL::RDF::RDF::URI(
|
291
|
-
statements << [
|
292
|
+
value_uri = BEL::RDF::RDF::URI(URI.encode(annotation_scheme + val.to_s))
|
293
|
+
statements << [evidence, BEL::RDF::BELV.hasAnnotation, value_uri]
|
292
294
|
end
|
293
295
|
end
|
294
296
|
end
|
@@ -1,13 +1,6 @@
|
|
1
|
-
|
2
|
-
begin
|
3
|
-
require 'rdf'
|
4
|
-
require 'addressable/uri'
|
5
|
-
require 'uuid'
|
6
|
-
rescue LoadError => e
|
7
|
-
# Raise LoadError if the requirements were not met.
|
8
|
-
raise
|
9
|
-
end
|
1
|
+
require 'rdf'
|
10
2
|
|
3
|
+
require_relative 'uuid'
|
11
4
|
require_relative 'bel_schema'
|
12
5
|
require_relative 'monkey_patch'
|
13
6
|
require_relative 'reader'
|
@@ -26,8 +19,8 @@ module BEL::Translator::Plugins
|
|
26
19
|
end
|
27
20
|
|
28
21
|
def write(objects, writer = StringIO.new, options = {})
|
29
|
-
format = options[:format] || :ntriples
|
30
|
-
rdf_writer = Writer::RDFYielder.new(writer,
|
22
|
+
# format = options[:format] || :ntriples
|
23
|
+
rdf_writer = Writer::RDFYielder.new(writer, :nquads)
|
31
24
|
|
32
25
|
objects.each do |evidence|
|
33
26
|
rdf_writer << evidence
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module BEL::Translator::Plugins
|
2
|
+
|
3
|
+
module Rdf
|
4
|
+
|
5
|
+
unless self.methods.include?(:generate_uuid)
|
6
|
+
|
7
|
+
# Dynamically defines an efficient UUID method for the current ruby.
|
8
|
+
if RUBY_ENGINE =~ /^jruby/i
|
9
|
+
java_import 'java.util.UUID'
|
10
|
+
define_singleton_method(:generate_uuid) do
|
11
|
+
Java::JavaUtil::UUID.random_uuid.to_s
|
12
|
+
end
|
13
|
+
else
|
14
|
+
require 'uuid'
|
15
|
+
define_singleton_method(:generate_uuid) do
|
16
|
+
UUID.generate
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'uuid'
|
2
|
+
|
1
3
|
module BEL::Translator::Plugins
|
2
4
|
|
3
5
|
module Rdf::Writer
|
@@ -5,15 +7,18 @@ module BEL::Translator::Plugins
|
|
5
7
|
class RDFYielder
|
6
8
|
attr_reader :writer
|
7
9
|
|
10
|
+
Rdf = ::BEL::Translator::Plugins::Rdf
|
11
|
+
|
8
12
|
def initialize(io, format)
|
9
13
|
rdf_writer = find_writer(format)
|
10
14
|
@writer = rdf_writer.new(io, { :stream => true })
|
11
15
|
end
|
12
16
|
|
13
17
|
def <<(evidence)
|
18
|
+
graph = RDF::URI("http://www.openbel.org/evidence-graphs/#{Rdf.generate_uuid}")
|
14
19
|
triples = evidence.bel_statement.to_rdf[1]
|
15
20
|
triples.each do |triple|
|
16
|
-
@writer.write_statement(::RDF::Statement(*triple))
|
21
|
+
@writer.write_statement(::RDF::Statement(*triple, :graph_name => graph))
|
17
22
|
end
|
18
23
|
end
|
19
24
|
|
@@ -26,18 +31,18 @@ module BEL::Translator::Plugins
|
|
26
31
|
def find_writer(format)
|
27
32
|
case format.to_s.to_sym
|
28
33
|
when :nquads
|
29
|
-
|
34
|
+
RDF::NQuads::Writer
|
30
35
|
when :turtle
|
31
36
|
begin
|
32
37
|
require 'rdf/turtle'
|
33
|
-
|
38
|
+
RDF::Turtle::Writer
|
34
39
|
rescue LoadError
|
35
40
|
$stderr.puts """Turtle format not supported.
|
36
41
|
Install the 'rdf-turtle' gem."""
|
37
42
|
raise
|
38
43
|
end
|
39
44
|
when :ntriples
|
40
|
-
|
45
|
+
RDF::NTriples::Writer
|
41
46
|
end
|
42
47
|
end
|
43
48
|
end
|
@@ -14,10 +14,20 @@ module BEL::Translator::Plugins
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def write(objects, writer = StringIO.new, options = {})
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
if block_given?
|
18
|
+
XBELYielder.new(objects).each { |xml_data|
|
19
|
+
yield xml_data
|
20
|
+
}
|
21
|
+
else
|
22
|
+
if writer
|
23
|
+
XBELYielder.new(objects).each { |xml_data|
|
24
|
+
writer << xml_data
|
25
|
+
writer.flush
|
26
|
+
}
|
27
|
+
else
|
28
|
+
XBELYielder.new(objects)
|
29
|
+
end
|
30
|
+
end
|
21
31
|
end
|
22
32
|
end
|
23
33
|
end
|
data/lib/bel/version.rb
CHANGED
metadata
CHANGED
@@ -1,34 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.0.beta.
|
4
|
+
version: 0.4.0.beta.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Bargnesi
|
8
8
|
- Natalie Catlett
|
9
9
|
- Nick Bargnesi
|
10
10
|
- William Hayes
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-12-
|
14
|
+
date: 2015-12-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name: ffi
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
18
|
requirements:
|
20
19
|
- - '='
|
21
20
|
- !ruby/object:Gem::Version
|
22
21
|
version: 1.9.8
|
23
|
-
|
22
|
+
name: ffi
|
24
23
|
prerelease: false
|
24
|
+
type: :runtime
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 1.9.8
|
30
|
-
description: " The BEL gem allows the reading, writing, and processing of BEL (Biological
|
31
|
-
Expression Language) with a natural DSL. "
|
30
|
+
description: " The BEL gem allows the reading, writing, and processing of BEL (Biological\
|
31
|
+
\ Expression Language) with a natural DSL. "
|
32
32
|
email:
|
33
33
|
- abargnesi@selventa.com
|
34
34
|
- ncatlett@selventa.com
|
@@ -152,6 +152,7 @@ files:
|
|
152
152
|
- lib/bel/translator/plugins/rdf/monkey_patch.rb
|
153
153
|
- lib/bel/translator/plugins/rdf/reader.rb
|
154
154
|
- lib/bel/translator/plugins/rdf/translator.rb
|
155
|
+
- lib/bel/translator/plugins/rdf/uuid.rb
|
155
156
|
- lib/bel/translator/plugins/rdf/writer.rb
|
156
157
|
- lib/bel/translator/plugins/xbel.rb
|
157
158
|
- lib/bel/translator/plugins/xbel/evidence_handler.rb
|
@@ -166,7 +167,7 @@ homepage: https://github.com/OpenBEL/bel.rb
|
|
166
167
|
licenses:
|
167
168
|
- Apache-2.0
|
168
169
|
metadata: {}
|
169
|
-
post_install_message:
|
170
|
+
post_install_message:
|
170
171
|
rdoc_options:
|
171
172
|
- "--title"
|
172
173
|
- BEL Ruby Documentation
|
@@ -200,10 +201,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
201
|
- !ruby/object:Gem::Version
|
201
202
|
version: 1.3.1
|
202
203
|
requirements: []
|
203
|
-
rubyforge_project:
|
204
|
-
rubygems_version: 2.4.
|
205
|
-
signing_key:
|
204
|
+
rubyforge_project:
|
205
|
+
rubygems_version: 2.4.8
|
206
|
+
signing_key:
|
206
207
|
specification_version: 4
|
207
208
|
summary: Process BEL with ruby.
|
208
209
|
test_files: []
|
209
|
-
has_rdoc:
|
210
|
+
has_rdoc:
|