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

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 (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