bel_parser 1.0.0.alpha.12 → 1.0.0.alpha.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/.gemspec +1 -1
  3. data/VERSION +1 -1
  4. data/bin/bel2_validator +35 -8
  5. data/lib/bel_parser/expression/validator.rb +3 -2
  6. data/lib/bel_parser/language/apply_namespace_encoding.rb +96 -0
  7. data/lib/bel_parser/language/base_specification.rb +82 -0
  8. data/lib/bel_parser/language/expression_validator.rb +6 -2
  9. data/lib/bel_parser/language/relationship.rb +1 -1
  10. data/lib/bel_parser/language/semantics/signature_mapping.rb +26 -32
  11. data/lib/bel_parser/language/semantics_ast.rb +285 -149
  12. data/lib/bel_parser/language/semantics_ast_warnings.rb +180 -0
  13. data/lib/bel_parser/language/semantics_result.rb +11 -2
  14. data/lib/bel_parser/language/semantics_type_warning.rb +22 -0
  15. data/lib/bel_parser/language/semantics_warning.rb +8 -0
  16. data/lib/bel_parser/language/specification.rb +38 -55
  17. data/lib/bel_parser/language/syntax/undefined_namespace_value.rb +43 -0
  18. data/lib/bel_parser/language/syntax_error.rb +8 -0
  19. data/lib/bel_parser/language/syntax_result.rb +8 -0
  20. data/lib/bel_parser/language/syntax_warning.rb +9 -4
  21. data/lib/bel_parser/language/version1_0/functions/abundance.rb +5 -6
  22. data/lib/bel_parser/language/version1_0/functions/biological_process.rb +5 -6
  23. data/lib/bel_parser/language/version1_0/functions/complex_abundance.rb +6 -7
  24. data/lib/bel_parser/language/version1_0/functions/fusion.rb +39 -60
  25. data/lib/bel_parser/language/version1_0/functions/gene_abundance.rb +9 -12
  26. data/lib/bel_parser/language/version1_0/functions/list.rb +5 -6
  27. data/lib/bel_parser/language/version1_0/functions/micro_rna_abundance.rb +5 -6
  28. data/lib/bel_parser/language/version1_0/functions/pathology.rb +5 -6
  29. data/lib/bel_parser/language/version1_0/functions/protein_abundance.rb +16 -30
  30. data/lib/bel_parser/language/version1_0/functions/protein_modification.rb +15 -27
  31. data/lib/bel_parser/language/version1_0/functions/rna_abundance.rb +8 -11
  32. data/lib/bel_parser/language/version1_0/functions/substitution.rb +6 -12
  33. data/lib/bel_parser/language/version1_0/functions/translocation.rb +9 -12
  34. data/lib/bel_parser/language/version1_0/functions/truncation.rb +2 -4
  35. data/lib/bel_parser/language/version1_0/value_encodings/abundance.rb +21 -0
  36. data/lib/bel_parser/language/version1_0/value_encodings/any.rb +74 -0
  37. data/lib/bel_parser/language/version1_0/value_encodings/biological_process.rb +21 -0
  38. data/lib/bel_parser/language/version1_0/value_encodings/complex_abundance.rb +21 -0
  39. data/lib/bel_parser/language/version1_0/value_encodings/gene_abundance.rb +21 -0
  40. data/lib/bel_parser/language/version1_0/value_encodings/micro_rna_abundance.rb +21 -0
  41. data/lib/bel_parser/language/version1_0/value_encodings/pathology.rb +21 -0
  42. data/lib/bel_parser/language/version1_0/value_encodings/protein_abundance.rb +21 -0
  43. data/lib/bel_parser/language/version1_0/value_encodings/rna_abundance.rb +21 -0
  44. data/lib/bel_parser/language/version1_0.rb +6 -87
  45. data/lib/bel_parser/language/version2_0/functions/abundance.rb +13 -18
  46. data/lib/bel_parser/language/version2_0/functions/biological_process.rb +5 -6
  47. data/lib/bel_parser/language/version2_0/functions/complex_abundance.rb +9 -12
  48. data/lib/bel_parser/language/version2_0/functions/fragment.rb +4 -9
  49. data/lib/bel_parser/language/version2_0/functions/from_location.rb +5 -6
  50. data/lib/bel_parser/language/version2_0/functions/fusion.rb +39 -66
  51. data/lib/bel_parser/language/version2_0/functions/gene_abundance.rb +13 -18
  52. data/lib/bel_parser/language/version2_0/functions/list.rb +5 -6
  53. data/lib/bel_parser/language/version2_0/functions/location.rb +5 -6
  54. data/lib/bel_parser/language/version2_0/functions/micro_rna_abundance.rb +13 -18
  55. data/lib/bel_parser/language/version2_0/functions/molecular_activity.rb +6 -5
  56. data/lib/bel_parser/language/version2_0/functions/pathology.rb +5 -6
  57. data/lib/bel_parser/language/version2_0/functions/protein_abundance.rb +21 -30
  58. data/lib/bel_parser/language/version2_0/functions/protein_modification.rb +11 -17
  59. data/lib/bel_parser/language/version2_0/functions/rna_abundance.rb +13 -18
  60. data/lib/bel_parser/language/version2_0/functions/to_location.rb +5 -6
  61. data/lib/bel_parser/language/version2_0/functions/variant.rb +1 -4
  62. data/lib/bel_parser/language/version2_0/value_encodings/abundance.rb +21 -0
  63. data/lib/bel_parser/language/version2_0/value_encodings/activity.rb +21 -0
  64. data/lib/bel_parser/language/version2_0/value_encodings/any.rb +74 -0
  65. data/lib/bel_parser/language/version2_0/value_encodings/biological_process.rb +21 -0
  66. data/lib/bel_parser/language/version2_0/value_encodings/complex_abundance.rb +21 -0
  67. data/lib/bel_parser/language/version2_0/value_encodings/gene_abundance.rb +21 -0
  68. data/lib/bel_parser/language/version2_0/value_encodings/location.rb +21 -0
  69. data/lib/bel_parser/language/version2_0/value_encodings/micro_rna_abundance.rb +21 -0
  70. data/lib/bel_parser/language/version2_0/value_encodings/pathology.rb +21 -0
  71. data/lib/bel_parser/language/version2_0/value_encodings/protein_abundance.rb +21 -0
  72. data/lib/bel_parser/language/version2_0/value_encodings/protein_modification.rb +21 -0
  73. data/lib/bel_parser/language/version2_0/value_encodings/rna_abundance.rb +21 -0
  74. data/lib/bel_parser/language/version2_0.rb +6 -60
  75. data/lib/bel_parser/language.rb +3 -4
  76. data/lib/bel_parser/parsers/ast/node.rb +14 -2
  77. data/lib/bel_parser/{language/quoting.rb → quoting.rb} +0 -56
  78. data/lib/bel_parser/resource/concept.rb +56 -0
  79. data/lib/bel_parser/resource/concept_scheme.rb +35 -0
  80. data/lib/bel_parser/resource/dataset.rb +34 -0
  81. data/lib/bel_parser/resource/eager_reader.rb +75 -0
  82. data/lib/bel_parser/resource/eager_sparql_reader.rb +51 -0
  83. data/lib/bel_parser/resource/http_cache.rb +71 -0
  84. data/lib/bel_parser/resource/jena_tdb_reader.rb +246 -0
  85. data/lib/bel_parser/resource/lru_cache.rb +111 -0
  86. data/lib/bel_parser/resource/lru_reader.rb +38 -0
  87. data/lib/bel_parser/resource/reader.rb +18 -0
  88. data/lib/bel_parser/resource/resource_file_reader.rb +134 -0
  89. data/lib/bel_parser/resource/sparql_reader.rb +178 -0
  90. data/lib/bel_parser/resource/value.rb +31 -0
  91. metadata +42 -4
  92. data/lib/bel_parser/language/version1_0/syntax/function.rb +0 -28
@@ -0,0 +1,134 @@
1
+ require 'open-uri'
2
+ require_relative 'reader'
3
+ require_relative 'eager_reader'
4
+ require_relative 'dataset'
5
+ require_relative 'http_cache'
6
+ require_relative 'value'
7
+
8
+ module BELParser
9
+ module Resource
10
+ # ResourceFileReader retrieves {Dataset datasets} and {Value values} from
11
+ # Annotation (i.e. belanno extension) and Namespace (i.e. belns extension)
12
+ # files.
13
+ #
14
+ # Only supports resource identifiers with an HTTP or HTTPS scheme.
15
+ class ResourceFileReader
16
+ include Reader
17
+ prepend EagerReader
18
+
19
+ DEFAULT_RESOURCE_VALUE_DELIMITER = '|'
20
+ private_constant :DEFAULT_RESOURCE_VALUE_DELIMITER
21
+
22
+ def initialize
23
+ @http_cache = HTTPCache.new
24
+ end
25
+
26
+ def retrieve_resource(resource_identifier)
27
+ read_resource(resource_identifier)
28
+ end
29
+
30
+ def retrieve_value_from_resource(resource_identifier, value)
31
+ file_resource = read_resource(resource_identifier)
32
+
33
+ io = @http_cache.get(resource_identifier)
34
+ delimiter = DEFAULT_RESOURCE_VALUE_DELIMITER
35
+ io.each_line do |line|
36
+ case line
37
+ when /^DelimiterString *=(.*)/
38
+ delimiter = Regexp.last_match[1]
39
+ when /^#{Regexp.escape('[Values]')}/
40
+ break
41
+ end
42
+ end
43
+
44
+ value_match = "#{value}#{delimiter}"
45
+ value_line = io.each_line.find do |line|
46
+ line.start_with?(value_match)
47
+ end
48
+ return nil unless value_line
49
+ value, encoding = value_line.strip.split(delimiter)
50
+ FileResourceValue.new(file_resource, value, encoding)
51
+ end
52
+
53
+ def retrieve_values_from_resource(resource_identifier)
54
+ file_resource = read_resource(resource_identifier)
55
+
56
+ io = @http_cache.get(resource_identifier)
57
+ delimiter = DEFAULT_RESOURCE_VALUE_DELIMITER
58
+ io.each_line do |line|
59
+ case line
60
+ when /^DelimiterString *=(.*)/
61
+ delimiter = Regexp.last_match[1]
62
+ when /^#{Regexp.escape('[Values]')}/
63
+ break
64
+ end
65
+ end
66
+
67
+ io.each_line.map do |line|
68
+ value, encoding = line.strip.split(delimiter)
69
+ FileResourceValue.new(file_resource, value, encoding)
70
+ end
71
+ end
72
+
73
+ private
74
+
75
+ def read_resource(url)
76
+ io = @http_cache.get(url)
77
+
78
+ type, name, keyword, domain = nil
79
+ io.each_line do |line|
80
+ case line
81
+ when /^#{Regexp.escape('[AnnotationDefinition]')}/
82
+ type = Dataset::ANNOTATION
83
+ when /^#{Regexp.escape('[Namespace]')}/
84
+ type = Dataset::NAMESPACE
85
+ when /^NameString *= *(.*)$/
86
+ name = Regexp.last_match[1]
87
+ when /^Keyword *= *(.*)$/
88
+ keyword = Regexp.last_match[1]
89
+ when /^DomainString *= *(.*)$/
90
+ domain = Regexp.last_match[1]
91
+ when /^#{Regexp.escape('[Values]')}/
92
+ break
93
+ end
94
+ end
95
+ FileResource.new(url, domain, keyword, name, type)
96
+ end
97
+
98
+ # FileResource is a {Dataset} description obtained from a Annotation or
99
+ # Namespace file.
100
+ class FileResource
101
+ include Dataset
102
+
103
+ attr_reader :identifier, :domain, :keyword, :name, :types
104
+
105
+ def initialize(identifier, domain, keyword, name, type)
106
+ @identifier = identifier.to_s
107
+ @domain = domain.to_s
108
+ @keyword = keyword.to_s
109
+ @name = name.to_s
110
+ @types = [type]
111
+ end
112
+ end
113
+
114
+ # FileResourceValue is a {Value} obtained from a Annotation or Namespace
115
+ # file.
116
+ class FileResourceValue
117
+ include Value
118
+
119
+ attr_reader :dataset, :name, :encodings
120
+
121
+ def initialize(dataset, name, encodings)
122
+ @dataset = dataset
123
+ @name = name
124
+ @encodings =
125
+ if dataset.annotation_resource? && !dataset.namespace_resource?
126
+ nil
127
+ else
128
+ encodings.chars.map(&:to_sym)
129
+ end
130
+ end
131
+ end
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,178 @@
1
+ require 'erb'
2
+ require 'net/http'
3
+ require 'sparql/client'
4
+ require 'uri'
5
+
6
+ require_relative 'reader'
7
+ require_relative 'lru_reader'
8
+ require_relative 'concept'
9
+ require_relative 'concept_scheme'
10
+
11
+ module BELParser
12
+ module Resource
13
+ # SPARQLReader
14
+ class SPARQLReader
15
+ include Reader
16
+ prepend LRUReader
17
+
18
+ SCHEMES = [URI::HTTP, URI::HTTPS].freeze
19
+ ALLOW_HEADER = 'Allow'.freeze
20
+
21
+ def initialize(sparql_endpoint_url, validate_url = true)
22
+ validate_sparql_endpoint_url(sparql_endpoint_url) if validate_url
23
+ @sparql_repository = SPARQL::Client.new(sparql_endpoint_url)
24
+ end
25
+
26
+ def retrieve_resource(resource_identifier)
27
+ uri = URI(resource_identifier.to_s)
28
+ template_binding = binding
29
+ sparql_query = RESOLVE_CONCEPT_SCHEME.result(template_binding)
30
+ hash_to_concept_scheme(resource_identifier,
31
+ execute_select(sparql_query).first)
32
+ end
33
+
34
+ def retrieve_value_from_resource(resource_identifier, value)
35
+ uri = URI(resource_identifier.to_s)
36
+ template_binding = binding
37
+ sparql_query = RESOLVE_CONCEPT.result(template_binding)
38
+ concept_scheme = retrieve_resource(resource_identifier)
39
+ to_concept = method(:hash_to_concept).to_proc.curry[concept_scheme]
40
+
41
+ execute_select(sparql_query).map(&to_concept)
42
+ end
43
+
44
+ def retrieve_values_from_resource(resource_identifier)
45
+ uri = URI(resource_identifier.to_s)
46
+ template_binding = binding
47
+ sparql_query = RESOLVE_CONCEPTS.result(template_binding)
48
+ concept_scheme = retrieve_resource(resource_identifier)
49
+ to_concept = method(:hash_to_concept).to_proc.curry[concept_scheme]
50
+
51
+ execute_select(sparql_query).map(&to_concept)
52
+ end
53
+
54
+ protected
55
+
56
+ def execute_select(sparql_query)
57
+ @sparql_repository.query(sparql_query).map do |solution|
58
+ solution.to_hash
59
+ end
60
+ end
61
+
62
+ def hash_to_concept_scheme(resource_identifier, hash)
63
+ ConceptScheme.new(resource_identifier,
64
+ *hash.values_at(:domain, :prefix, :prefLabel, :types))
65
+ end
66
+
67
+ def hash_to_concept(concept_scheme, hash)
68
+ Concept.new(concept_scheme,
69
+ *hash.values_at(:concept, :prefLabel, :identifier, :title,
70
+ :altLabels, :types))
71
+ end
72
+
73
+ def validate_sparql_endpoint_url(url)
74
+ url_s = url.to_s
75
+ scheme, host, port = URI(url_s).select(:scheme, :host, :port)
76
+ validate_uri_scheme(scheme, url_s)
77
+
78
+ options_request = Net::HTTP::Options.new(url_s)
79
+ options_response = Net::HTTP.start(host, port) do |http|
80
+ http.request(Net::HTTP::Options.new(url_s))
81
+ end
82
+ validate_200(options_response, url_s)
83
+ validate_allowed_methods(options_response, url_s)
84
+ end
85
+
86
+ def validate_uri_scheme(scheme, url_s)
87
+ unless SCHEMES.include?(URI.scheme_list[scheme.upcase])
88
+ raise ArgumentError,
89
+ "expected HTTP or HTTPS scheme for url: #{url_s}"
90
+ end
91
+ end
92
+
93
+ def validate_200(response, url_s)
94
+ unless response.code_type == Net::HTTPOK
95
+ raise ArgumentError,
96
+ <<-MSG.gsub(/ {14}/, '').delete("\n")
97
+ expected URL to respond 200 (received #{response.code}) for
98
+ OPTIONS request to: #{url_s}"
99
+ MSG
100
+ end
101
+ end
102
+
103
+ def validate_allowed_methods(response, url_s)
104
+ unless response[ALLOW_HEADER].to_s =~ /GET|POST/
105
+ raise ArgumentError,
106
+ "expected URL to allow GET or POST: #{url_s}"
107
+ end
108
+ end
109
+
110
+ RESOLVE_CONCEPT_SCHEME = ERB.new(<<-SPARQL)
111
+ prefix belv: <http://www.openbel.org/vocabulary/>
112
+ prefix dct: <http://purl.org/dc/terms/>
113
+ prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
114
+ prefix skos: <http://www.w3.org/2004/02/skos/core#>
115
+ select ?domain ?prefix ?prefLabel (group_concat(?type;separator='|') as ?types)
116
+ where {
117
+ <<%= uri %>> rdf:type skos:ConceptScheme .
118
+ <<%= uri %>> rdf:type ?type .
119
+ <<%= uri %>> belv:domain ?domain .
120
+ <<%= uri %>> belv:prefix ?prefix .
121
+ <<%= uri %>> skos:prefLabel ?prefLabel .
122
+ }
123
+ group by ?domain ?prefix ?prefLabel
124
+ SPARQL
125
+
126
+ RESOLVE_CONCEPT = ERB.new(<<-SPARQL)
127
+ prefix belv: <http://www.openbel.org/vocabulary/>
128
+ prefix dct: <http://purl.org/dc/terms/>
129
+ prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
130
+ prefix skos: <http://www.w3.org/2004/02/skos/core#>
131
+ select ?concept ?prefLabel ?identifier ?title
132
+ (group_concat(distinct(?type);separator='|') as ?types)
133
+ (group_concat(distinct(?altLabel);separator='|') as ?altLabels)
134
+ where {
135
+ {?concept skos:prefLabel "<%= value %>"}
136
+ UNION
137
+ {?concept dct:identifier "<%= value %>"}
138
+ UNION
139
+ {?concept dct:title "<%= value %>"}
140
+ UNION
141
+ {?concept skos:altLabel "<%= value %>"}
142
+
143
+ ?concept skos:inScheme <<%= uri %>> .
144
+ ?concept rdf:type ?type .
145
+
146
+ ?concept skos:prefLabel ?prefLabel .
147
+ ?concept dct:identifier ?identifier .
148
+ optional {
149
+ ?concept dct:title ?title .
150
+ ?concept skos:altLabel ?altLabel .
151
+ }
152
+ }
153
+ group by ?concept ?prefLabel ?identifier ?title
154
+ SPARQL
155
+
156
+ RESOLVE_CONCEPTS = ERB.new(<<-SPARQL)
157
+ prefix belv: <http://www.openbel.org/vocabulary/>
158
+ prefix dct: <http://purl.org/dc/terms/>
159
+ prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
160
+ prefix skos: <http://www.w3.org/2004/02/skos/core#>
161
+ select ?concept ?prefLabel ?identifier ?title
162
+ (group_concat(distinct(?type);separator='|') as ?types)
163
+ (group_concat(distinct(?altLabel);separator='|') as ?altLabels)
164
+ where {
165
+ ?concept skos:inScheme <<%= uri %>> .
166
+ ?concept rdf:type ?type .
167
+ ?concept skos:prefLabel ?prefLabel .
168
+ optional {
169
+ ?concept dct:identifier ?identifier .
170
+ ?concept dct:title ?title .
171
+ ?concept skos:altLabel ?altLabel
172
+ }
173
+ }
174
+ group by ?concept ?prefLabel ?identifier ?title
175
+ SPARQL
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,31 @@
1
+ module BELParser
2
+ module Resource
3
+ # Value
4
+ module Value
5
+
6
+ def dataset
7
+ raise NotImplementedError, "#{__method__} is not implemented."
8
+ end
9
+
10
+ def name
11
+ raise NotImplementedError, "#{__method__} is not implemented."
12
+ end
13
+
14
+ def identifier
15
+ nil
16
+ end
17
+
18
+ def title
19
+ nil
20
+ end
21
+
22
+ def synonyms
23
+ []
24
+ end
25
+
26
+ def encodings
27
+ raise NotImplementedError, "#{__method__} is not implemented."
28
+ end
29
+ end
30
+ end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bel_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha.12
4
+ version: 1.0.0.alpha.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Bargnesi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-15 00:00:00.000000000 Z
12
+ date: 2016-04-27 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Implements language versions 1.0 and 2.0.
15
15
  email: abargnesi@selventa.com
@@ -31,10 +31,11 @@ files:
31
31
  - lib/bel_parser/expression/validator.rb
32
32
  - lib/bel_parser/language.rb
33
33
  - lib/bel_parser/language/amino_acid.rb
34
+ - lib/bel_parser/language/apply_namespace_encoding.rb
35
+ - lib/bel_parser/language/base_specification.rb
34
36
  - lib/bel_parser/language/covalent_protein_modification.rb
35
37
  - lib/bel_parser/language/expression_validator.rb
36
38
  - lib/bel_parser/language/function.rb
37
- - lib/bel_parser/language/quoting.rb
38
39
  - lib/bel_parser/language/relationship.rb
39
40
  - lib/bel_parser/language/semantics.rb
40
41
  - lib/bel_parser/language/semantics/deeply_nested_statement.rb
@@ -47,9 +48,11 @@ files:
47
48
  - lib/bel_parser/language/semantics/relationship_not_listable.rb
48
49
  - lib/bel_parser/language/semantics/signature_mapping.rb
49
50
  - lib/bel_parser/language/semantics_ast.rb
51
+ - lib/bel_parser/language/semantics_ast_warnings.rb
50
52
  - lib/bel_parser/language/semantics_function.rb
51
53
  - lib/bel_parser/language/semantics_match.rb
52
54
  - lib/bel_parser/language/semantics_result.rb
55
+ - lib/bel_parser/language/semantics_type_warning.rb
53
56
  - lib/bel_parser/language/semantics_warning.rb
54
57
  - lib/bel_parser/language/signature.rb
55
58
  - lib/bel_parser/language/specification.rb
@@ -57,6 +60,7 @@ files:
57
60
  - lib/bel_parser/language/syntax/invalid_function.rb
58
61
  - lib/bel_parser/language/syntax/invalid_relationship.rb
59
62
  - lib/bel_parser/language/syntax/undefined_namespace.rb
63
+ - lib/bel_parser/language/syntax/undefined_namespace_value.rb
60
64
  - lib/bel_parser/language/syntax_error.rb
61
65
  - lib/bel_parser/language/syntax_function.rb
62
66
  - lib/bel_parser/language/syntax_result.rb
@@ -147,7 +151,15 @@ files:
147
151
  - lib/bel_parser/language/version1_0/return_types/transcriptional_activity.rb
148
152
  - lib/bel_parser/language/version1_0/return_types/transport_activity.rb
149
153
  - lib/bel_parser/language/version1_0/return_types/truncation.rb
150
- - lib/bel_parser/language/version1_0/syntax/function.rb
154
+ - lib/bel_parser/language/version1_0/value_encodings/abundance.rb
155
+ - lib/bel_parser/language/version1_0/value_encodings/any.rb
156
+ - lib/bel_parser/language/version1_0/value_encodings/biological_process.rb
157
+ - lib/bel_parser/language/version1_0/value_encodings/complex_abundance.rb
158
+ - lib/bel_parser/language/version1_0/value_encodings/gene_abundance.rb
159
+ - lib/bel_parser/language/version1_0/value_encodings/micro_rna_abundance.rb
160
+ - lib/bel_parser/language/version1_0/value_encodings/pathology.rb
161
+ - lib/bel_parser/language/version1_0/value_encodings/protein_abundance.rb
162
+ - lib/bel_parser/language/version1_0/value_encodings/rna_abundance.rb
151
163
  - lib/bel_parser/language/version2_0.rb
152
164
  - lib/bel_parser/language/version2_0/functions/abundance.rb
153
165
  - lib/bel_parser/language/version2_0/functions/activity.rb
@@ -225,6 +237,18 @@ files:
225
237
  - lib/bel_parser/language/version2_0/return_types/rna_abundance.rb
226
238
  - lib/bel_parser/language/version2_0/return_types/to_location.rb
227
239
  - lib/bel_parser/language/version2_0/return_types/variant.rb
240
+ - lib/bel_parser/language/version2_0/value_encodings/abundance.rb
241
+ - lib/bel_parser/language/version2_0/value_encodings/activity.rb
242
+ - lib/bel_parser/language/version2_0/value_encodings/any.rb
243
+ - lib/bel_parser/language/version2_0/value_encodings/biological_process.rb
244
+ - lib/bel_parser/language/version2_0/value_encodings/complex_abundance.rb
245
+ - lib/bel_parser/language/version2_0/value_encodings/gene_abundance.rb
246
+ - lib/bel_parser/language/version2_0/value_encodings/location.rb
247
+ - lib/bel_parser/language/version2_0/value_encodings/micro_rna_abundance.rb
248
+ - lib/bel_parser/language/version2_0/value_encodings/pathology.rb
249
+ - lib/bel_parser/language/version2_0/value_encodings/protein_abundance.rb
250
+ - lib/bel_parser/language/version2_0/value_encodings/protein_modification.rb
251
+ - lib/bel_parser/language/version2_0/value_encodings/rna_abundance.rb
228
252
  - lib/bel_parser/mixin/line_continuator.rb
229
253
  - lib/bel_parser/mixin/line_mapping.rb
230
254
  - lib/bel_parser/parser.rb
@@ -272,6 +296,20 @@ files:
272
296
  - lib/bel_parser/parsers/line_parser.rb
273
297
  - lib/bel_parser/parsers/mixin/buffer.rb
274
298
  - lib/bel_parser/parsers/nonblocking_io_wrapper.rb
299
+ - lib/bel_parser/quoting.rb
300
+ - lib/bel_parser/resource/concept.rb
301
+ - lib/bel_parser/resource/concept_scheme.rb
302
+ - lib/bel_parser/resource/dataset.rb
303
+ - lib/bel_parser/resource/eager_reader.rb
304
+ - lib/bel_parser/resource/eager_sparql_reader.rb
305
+ - lib/bel_parser/resource/http_cache.rb
306
+ - lib/bel_parser/resource/jena_tdb_reader.rb
307
+ - lib/bel_parser/resource/lru_cache.rb
308
+ - lib/bel_parser/resource/lru_reader.rb
309
+ - lib/bel_parser/resource/reader.rb
310
+ - lib/bel_parser/resource/resource_file_reader.rb
311
+ - lib/bel_parser/resource/sparql_reader.rb
312
+ - lib/bel_parser/resource/value.rb
275
313
  - lib/bel_parser/script/parser.rb
276
314
  - lib/bel_parser/vendor/ast.rb
277
315
  - lib/bel_parser/vendor/ast/node.rb
@@ -1,28 +0,0 @@
1
- require 'bel_parser/parsers/ast/node'
2
-
3
- module BELParser
4
- module Language
5
- module Version1_0
6
- module Syntax
7
- # Function will add syntax errors to
8
- # {BELParser::Parsers::AST::Function} nodes that do not have a valid
9
- # BEL 1.0 functon name.
10
- class Function
11
- private_class_method :new
12
-
13
- V1 = ::BELParser::Language::Version1_0::Specification.new
14
-
15
- def self.match(input_ast)
16
- input_ast.traverse do |node|
17
- next unless node.is_a?(BELParser::Parsers::AST::Function)
18
- function_name = node.identifier.string_literal
19
- unless V1.function(function_name.to_sym)
20
- node.add_syntax_error(:FunctionV1)
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end