bel_parser 1.0.8-java → 1.1.1-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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/{.gemspec-java → .gemspec} +11 -4
  3. data/VERSION +1 -1
  4. data/bin/bel2_compatibility +12 -9
  5. data/bin/bel2_upgrade +18 -6
  6. data/bin/bel2_validator +6 -3
  7. data/bin/bel_script_reader +1 -0
  8. data/lib/bel_parser/completion.rb +984 -0
  9. data/lib/bel_parser/language/apply_namespace_encoding.rb +14 -3
  10. data/lib/bel_parser/language/expression_validator.rb +1 -2
  11. data/lib/bel_parser/language/function.rb +4 -0
  12. data/lib/bel_parser/language/relationship.rb +4 -0
  13. data/lib/bel_parser/language/semantics/function_deprecation.rb +1 -0
  14. data/lib/bel_parser/language/semantics/list_function_subject.rb +2 -0
  15. data/lib/bel_parser/language/semantics/multiple_subject_object.rb +4 -1
  16. data/lib/bel_parser/language/semantics/nested_statement_without_object.rb +43 -0
  17. data/lib/bel_parser/language/semantics/non_object_list.rb +3 -0
  18. data/lib/bel_parser/language/semantics/relationship_not_listable.rb +2 -0
  19. data/lib/bel_parser/language/semantics/signature_mapping.rb +2 -0
  20. data/lib/bel_parser/language/semantics_ast.rb +0 -7
  21. data/lib/bel_parser/language/syntax/invalid_function.rb +6 -1
  22. data/lib/bel_parser/language/syntax/invalid_relationship.rb +1 -0
  23. data/lib/bel_parser/language/version1_0/relationships/acts_in.rb +9 -9
  24. data/lib/bel_parser/language/version1_0/relationships/analogous.rb +6 -4
  25. data/lib/bel_parser/language/version1_0/relationships/association.rb +8 -7
  26. data/lib/bel_parser/language/version1_0/relationships/biomarker_for.rb +6 -5
  27. data/lib/bel_parser/language/version1_0/relationships/causes_no_change.rb +8 -7
  28. data/lib/bel_parser/language/version1_0/relationships/decreases.rb +13 -12
  29. data/lib/bel_parser/language/version1_0/relationships/directly_decreases.rb +8 -6
  30. data/lib/bel_parser/language/version1_0/relationships/directly_increases.rb +8 -6
  31. data/lib/bel_parser/language/version1_0/relationships/has_component.rb +14 -14
  32. data/lib/bel_parser/language/version1_0/relationships/has_components.rb +12 -11
  33. data/lib/bel_parser/language/version1_0/relationships/has_member.rb +10 -8
  34. data/lib/bel_parser/language/version1_0/relationships/has_members.rb +12 -11
  35. data/lib/bel_parser/language/version1_0/relationships/has_modification.rb +9 -7
  36. data/lib/bel_parser/language/version1_0/relationships/has_product.rb +10 -8
  37. data/lib/bel_parser/language/version1_0/relationships/has_variant.rb +9 -7
  38. data/lib/bel_parser/language/version1_0/relationships/includes.rb +11 -10
  39. data/lib/bel_parser/language/version1_0/relationships/increases.rb +12 -13
  40. data/lib/bel_parser/language/version1_0/relationships/is_a.rb +10 -8
  41. data/lib/bel_parser/language/version1_0/relationships/negative_correlation.rb +9 -7
  42. data/lib/bel_parser/language/version1_0/relationships/orthologous.rb +9 -8
  43. data/lib/bel_parser/language/version1_0/relationships/positive_correlation.rb +8 -5
  44. data/lib/bel_parser/language/version1_0/relationships/prognostic_biomarker_for.rb +8 -6
  45. data/lib/bel_parser/language/version1_0/relationships/rate_limiting_step_of.rb +10 -9
  46. data/lib/bel_parser/language/version1_0/relationships/reactant_in.rb +10 -8
  47. data/lib/bel_parser/language/version1_0/relationships/sub_process_of.rb +13 -12
  48. data/lib/bel_parser/language/version1_0/relationships/transcribed_to.rb +8 -7
  49. data/lib/bel_parser/language/version1_0/relationships/translated_to.rb +9 -7
  50. data/lib/bel_parser/language/version1_0/relationships/translocates.rb +10 -9
  51. data/lib/bel_parser/language/version2_0/functions/protein_modification.rb +1 -2
  52. data/lib/bel_parser/language/version2_0/functions/translocation.rb +1 -2
  53. data/lib/bel_parser/language/version2_0/functions/variant.rb +1 -2
  54. data/lib/bel_parser/language/version2_0/relationships/acts_in.rb +10 -9
  55. data/lib/bel_parser/language/version2_0/relationships/biomarker_for.rb +7 -5
  56. data/lib/bel_parser/language/version2_0/relationships/causes_no_change.rb +9 -7
  57. data/lib/bel_parser/language/version2_0/relationships/decreases.rb +13 -12
  58. data/lib/bel_parser/language/version2_0/relationships/directly_decreases.rb +8 -6
  59. data/lib/bel_parser/language/version2_0/relationships/directly_increases.rb +8 -6
  60. data/lib/bel_parser/language/version2_0/relationships/has_component.rb +15 -14
  61. data/lib/bel_parser/language/version2_0/relationships/has_components.rb +12 -11
  62. data/lib/bel_parser/language/version2_0/relationships/has_member.rb +9 -8
  63. data/lib/bel_parser/language/version2_0/relationships/has_members.rb +12 -11
  64. data/lib/bel_parser/language/version2_0/relationships/has_modification.rb +9 -7
  65. data/lib/bel_parser/language/version2_0/relationships/has_product.rb +10 -8
  66. data/lib/bel_parser/language/version2_0/relationships/has_variant.rb +9 -7
  67. data/lib/bel_parser/language/version2_0/relationships/includes.rb +11 -10
  68. data/lib/bel_parser/language/version2_0/relationships/increases.rb +13 -12
  69. data/lib/bel_parser/language/version2_0/relationships/is_a.rb +10 -8
  70. data/lib/bel_parser/language/version2_0/relationships/negative_correlation.rb +9 -7
  71. data/lib/bel_parser/language/version2_0/relationships/orthologous.rb +10 -8
  72. data/lib/bel_parser/language/version2_0/relationships/positive_correlation.rb +7 -5
  73. data/lib/bel_parser/language/version2_0/relationships/prognostic_biomarker_for.rb +8 -6
  74. data/lib/bel_parser/language/version2_0/relationships/rate_limiting_step_of.rb +10 -9
  75. data/lib/bel_parser/language/version2_0/relationships/reactant_in.rb +10 -8
  76. data/lib/bel_parser/language/version2_0/relationships/regulates.rb +9 -8
  77. data/lib/bel_parser/language/version2_0/relationships/sub_process_of.rb +13 -12
  78. data/lib/bel_parser/language/version2_0/relationships/transcribed_to.rb +8 -7
  79. data/lib/bel_parser/language/version2_0/relationships/translated_to.rb +9 -7
  80. data/lib/bel_parser/language/version2_0/relationships/translocates.rb +10 -9
  81. data/lib/bel_parser/mixin/levenshtein.rb +20 -0
  82. data/lib/bel_parser/parsers/ast/node.rb +49 -2
  83. data/lib/bel_parser/parsers/bel_script/define_annotation.rb +156 -156
  84. data/lib/bel_parser/parsers/bel_script/define_namespace.rb +60 -60
  85. data/lib/bel_parser/parsers/bel_script/set.rb +200 -200
  86. data/lib/bel_parser/parsers/bel_script/set_document.rb +188 -188
  87. data/lib/bel_parser/parsers/bel_script/unset.rb +14 -14
  88. data/lib/bel_parser/parsers/common/common.rl +1 -0
  89. data/lib/bel_parser/parsers/common/function.rb +8 -8
  90. data/lib/bel_parser/parsers/common/function.rl +6 -6
  91. data/lib/bel_parser/parsers/common/identifier.rb +3 -3
  92. data/lib/bel_parser/parsers/common/identifier.rl +4 -4
  93. data/lib/bel_parser/parsers/common/list.rb +78 -78
  94. data/lib/bel_parser/parsers/common/multi_identifier.rb +275 -0
  95. data/lib/bel_parser/parsers/common/multi_identifier.rl +141 -0
  96. data/lib/bel_parser/parsers/common/string.rb +6 -6
  97. data/lib/bel_parser/parsers/common/string.rl +4 -4
  98. data/lib/bel_parser/parsers/common.rb +1 -0
  99. data/lib/bel_parser/parsers/expression/nested_statement.rb +30180 -29055
  100. data/lib/bel_parser/parsers/expression/observed_term.rb +1456 -1099
  101. data/lib/bel_parser/parsers/expression/parameter.rb +192 -111
  102. data/lib/bel_parser/parsers/expression/parameter.rl +6 -3
  103. data/lib/bel_parser/parsers/expression/relationship.rb +43 -19
  104. data/lib/bel_parser/parsers/expression/relationship.rl +1 -0
  105. data/lib/bel_parser/parsers/expression/simple_statement.rb +17805 -17093
  106. data/lib/bel_parser/parsers/expression/statement_autocomplete.rb +1035 -0
  107. data/lib/bel_parser/parsers/expression/statement_autocomplete.rl +736 -0
  108. data/lib/bel_parser/parsers/expression/term.rb +960 -705
  109. data/lib/bel_parser/parsers/serializer.rb +8 -4
  110. data/lib/bel_parser/version.rb +33 -0
  111. data/lib/bel_parser.rb +3 -0
  112. metadata +26 -4
@@ -69,11 +69,11 @@ module BELParser
69
69
 
70
70
  def on_value(value_node)
71
71
  return value_node unless @namespace
72
+
72
73
  value_node.prefix = @prefix
73
74
  value_node.namespace = @namespace
74
-
75
- value_literal = value_node.children[0].string_literal
76
- value = @namespace[value_literal]
75
+ string_literal = value_literal(value_node.children[0])
76
+ value = @namespace[string_literal]
77
77
 
78
78
  if value
79
79
  value_node.encoding =
@@ -86,6 +86,17 @@ module BELParser
86
86
  end
87
87
  value_node
88
88
  end
89
+
90
+ private
91
+
92
+ def value_literal(node)
93
+ case node.type
94
+ when :identifier
95
+ node.string_literal
96
+ when :string
97
+ node.string_value
98
+ end
99
+ end
89
100
  end
90
101
  end
91
102
  end
@@ -123,7 +123,7 @@ module BELParser
123
123
  end
124
124
 
125
125
  def semantics_errors_s
126
- return nil if @semantics_results.empty?
126
+ return nil if @semantics_results.nil? || @semantics_results.empty?
127
127
 
128
128
  report = "Semantic errors\n"
129
129
  @semantics_results.each { |res| report += "#{res}\n" }
@@ -406,7 +406,6 @@ module BELParser
406
406
  end
407
407
 
408
408
  def to_s
409
- report = @object_result.to_s
410
409
  <<-HEADER.gsub(/^ {12}/, '')
411
410
  Syntax: #{valid_syntax? ? 'Valid' : 'Invalid'}
412
411
  Semantics: #{valid_semantics? ? 'Valid' : 'Invalid'}
@@ -60,6 +60,10 @@ module BELParser
60
60
  })
61
61
  end
62
62
 
63
+ def =~(regexp)
64
+ short =~ regexp || long =~ regexp
65
+ end
66
+
63
67
  private
64
68
 
65
69
  def _form_value(form = :short)
@@ -93,6 +93,10 @@ module BELParser
93
93
  })
94
94
  end
95
95
 
96
+ def =~(regexp)
97
+ short =~ regexp || long =~ regexp
98
+ end
99
+
96
100
  private
97
101
 
98
102
  def _form_value(form = :short)
@@ -14,6 +14,7 @@ module BELParser
14
14
 
15
15
  def self.map(node, spec, _namespaces)
16
16
  return nil unless node.is_a?(BELParser::Parsers::AST::Function)
17
+ return nil unless node.identifier
17
18
 
18
19
  function_name = node.identifier.string_literal
19
20
  func = spec.function(function_name.to_sym)
@@ -19,6 +19,8 @@ module BELParser
19
19
  list_func = spec.function(:list)
20
20
  return nil unless list_func
21
21
 
22
+ return nil unless node.term.function
23
+ return nil unless node.term.function.identifier
22
24
  func_name = node.term.function.identifier.string_literal
23
25
  sub_func = spec.function(func_name.to_sym)
24
26
  ListFunctionSubjectWarning.new(node, spec) if sub_func == list_func
@@ -13,6 +13,7 @@ module BELParser
13
13
 
14
14
  def self.map(stmt_node, spec, _namespaces)
15
15
  return nil unless stmt_node.is_a?(BELParser::Parsers::AST::Statement)
16
+ return nil unless stmt_node.relationship?
16
17
  return nil if stmt_node.relationship.string_literal.nil?
17
18
  rel = spec.relationship(stmt_node.relationship.string_literal.to_sym)
18
19
  return nil unless rel
@@ -20,6 +21,7 @@ module BELParser
20
21
 
21
22
  list_func = spec.function(:list)
22
23
  return nil unless list_func
24
+ return nil unless stmt_node.object?
23
25
  return nil unless stmt_node.object.term?
24
26
 
25
27
  map_subject_object(stmt_node, rel, spec)
@@ -29,7 +31,8 @@ module BELParser
29
31
  sub_term = stmt_node.subject.term
30
32
  list_term = stmt_node.object.child
31
33
 
32
- if list_term.arguments.any? { |arg| sub_term == arg.child }
34
+ return nil if list_term.arguments.empty?
35
+ if list_term.arguments.any? { |arg| arg.child && sub_term == arg.child }
33
36
  MultipleSubjectObjectWarning.new(stmt_node, spec, rel)
34
37
  end
35
38
  end
@@ -0,0 +1,43 @@
1
+ require 'bel_parser/parsers/ast/node'
2
+
3
+ module BELParser
4
+ module Language
5
+ module Semantics
6
+ # NestedStatementWithoutObject implements a {SemanticsFunction} that maps a
7
+ # nested {BELParser::Parsers::AST::Statement} to {SemanticsWarning} if
8
+ # the nested statement does not have an object.
9
+ class NestedStatementWithoutObject
10
+ include SemanticsFunction
11
+
12
+ private_class_method :new
13
+
14
+ def self.map(node, spec, _namespaces)
15
+ return nil unless node.is_a?(BELParser::Parsers::AST::Statement)
16
+ return nil unless node.object? && node.object.statement?
17
+
18
+ nested = node.object.child
19
+
20
+ if nested.object?
21
+ NestedStatementWithoutObjectWarning.new(node, spec)
22
+ end
23
+ end
24
+ end
25
+
26
+ # Represents a {SemanticsWarning} when a nested
27
+ # {BELParser::Parsers::AST::Statement} does not have an object.
28
+ class NestedStatementWithoutObjectWarning < SemanticsWarning
29
+ attr_reader :non_causal_relationship
30
+
31
+ def initialize(stmt_node, spec)
32
+ super(stmt_node, spec)
33
+ end
34
+
35
+ def to_s
36
+ <<-MSG.gsub(/ {12}/, '')
37
+ Nested statement does not have an object.
38
+ MSG
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -13,6 +13,8 @@ module BELParser
13
13
 
14
14
  def self.map(stmt_node, spec, _namespaces)
15
15
  return nil unless stmt_node.is_a?(BELParser::Parsers::AST::Statement)
16
+ return nil unless stmt_node.relationship?
17
+ return nil unless stmt_node.object?
16
18
  return nil if stmt_node.relationship.string_literal.nil?
17
19
 
18
20
  list_func = spec.function(:list)
@@ -31,6 +33,7 @@ module BELParser
31
33
  spec,
32
34
  rel) unless obj_node.term?
33
35
 
36
+ return nil unless obj_node.child.function
34
37
  obj_func = obj_node.child.function.identifier.string_literal
35
38
  NonObjectListWarning.new(
36
39
  obj_node,
@@ -14,6 +14,7 @@ module BELParser
14
14
  def self.map(node, spec, _namespaces)
15
15
  return nil unless node.is_a?(BELParser::Parsers::AST::Statement)
16
16
  return nil unless node.relationship?
17
+ return nil unless node.object?
17
18
  return nil unless node.object.term?
18
19
 
19
20
  map_statement(node, spec)
@@ -22,6 +23,7 @@ module BELParser
22
23
  def self.map_statement(stmt_node, spec)
23
24
  list_func = spec.function(:list)
24
25
  return nil unless list_func
26
+ return nil unless stmt_node.object.child.function
25
27
 
26
28
  obj_func = stmt_node.object.child.function.identifier.string_literal
27
29
  return nil unless spec.function(obj_func.to_sym) == list_func
@@ -19,6 +19,8 @@ module BELParser
19
19
  # includes both successful and failed signature matches.
20
20
  def self.map(term_node, spec, _namespaces)
21
21
  return nil unless term_node.is_a?(BELParser::Parsers::AST::Term)
22
+ return nil unless term_node.function
23
+ return nil unless term_node.function.identifier
22
24
 
23
25
  function_name = term_node.function.identifier.string_literal
24
26
  function = spec.function(function_name.to_sym)
@@ -69,18 +69,11 @@ module BELParser
69
69
 
70
70
  builder = _builder_class.new
71
71
  builder.instance_eval(&block)
72
- builder.result
73
72
  end
74
73
 
75
74
  def self._builder_class
76
75
  Class.new do
77
76
  include Builder
78
-
79
- attr_reader :result
80
-
81
- def term(function, *arguments, **properties)
82
- @result = super
83
- end
84
77
  end
85
78
  end
86
79
  private_class_method :_builder_class
@@ -13,7 +13,12 @@ module BELParser
13
13
  def self.map(func_node, spec, _namespaces)
14
14
  return nil unless func_node.is_a?(BELParser::Parsers::AST::Function)
15
15
 
16
- function_name = func_node.identifier.string_literal
16
+ function_name =
17
+ if func_node.identifier
18
+ func_node.identifier.string_literal
19
+ else
20
+ ''
21
+ end
17
22
  unless spec.function(function_name.to_sym)
18
23
  InvalidFunctionSyntaxError.new(func_node, spec, function_name)
19
24
  end
@@ -12,6 +12,7 @@ module BELParser
12
12
 
13
13
  def self.map(stmt_node, spec, _namespaces)
14
14
  return nil unless stmt_node.is_a?(BELParser::Parsers::AST::Statement)
15
+ return nil unless stmt_node.relationship?
15
16
 
16
17
  rel_name = stmt_node.relationship.string_literal
17
18
  return nil if rel_name.nil?
@@ -17,15 +17,15 @@ module BELParser
17
17
 
18
18
  SHORT = :actsIn
19
19
  LONG = :actsIn
20
- DESCRIPTION = ' +A actsIn f(A)+ - This relationship links an
21
- bundance term to the activity term for the same
22
- bundance. This relationship is direct because
23
- t is a _self_ relationship, the abundance acts
24
- n its own activity. For protein abundance p(A)
25
- nd its molecular activity kin(p(A), +p(A) actsIn
26
- in(p(A))+. This relationship is introduced by the
27
- EL Compiler and may not be used by statements in
28
- EL documents.'.freeze
20
+ DESCRIPTION = <<-DOC
21
+ ActsIn: +A actsIn f(A)+ - This relationship links
22
+ an abundance term to the activity term for the same
23
+ abundance. This relationship is direct because it is a _self_
24
+ relationship, the abundance acts in its own activity. For
25
+ protein abundance p(A) and its molecular activity kin(p(A),
26
+ +p(A) actsIn kin(p(A))+. This relationship is introduced by the
27
+ BEL Compiler and may not be used by statements in BEL documents.
28
+ DOC
29
29
 
30
30
  def self.short
31
31
  SHORT
@@ -14,10 +14,12 @@ module BELParser
14
14
 
15
15
  SHORT = :analogous
16
16
  LONG = :analogous
17
- DESCRIPTION = ' +A analogous B+ - For terms A and B, +A
18
- nalogousTo B+ indicates that A and B represent
19
- bundances or molecular activities in different
20
- pecies which function in a similar manner.'.freeze
17
+ DESCRIPTION = <<-DOC
18
+ Analogous: +A analogous B+ - For terms A and B, +A analogousTo
19
+ B+ indicates that A and B represent abundances or molecular
20
+ activities in different species which function in a similar
21
+ manner.
22
+ DOC
21
23
 
22
24
  def self.short
23
25
  SHORT
@@ -16,13 +16,14 @@ module BELParser
16
16
 
17
17
  SHORT = :'--'
18
18
  LONG = :association
19
- DESCRIPTION = ' +A -- B+ - For terms A and B, +A association B+
20
- r +A -- B+ indicates that A and B are associated
21
- n an unspecified manner. This relationship
22
- s used when not enough information about the
23
- ssociation is available to describe it using
24
- ore specific relationships, like increases or
25
- ositiveCorrelation.'.freeze
19
+ DESCRIPTION = <<-DOC
20
+ Association: +A -- B+ - For terms A and B, +A association
21
+ B+ or +A -- B+ indicates that A and B are associated in an
22
+ unspecified manner. This relationship is used when not enough
23
+ information about the association is available to describe
24
+ it using more specific relationships, like increases or
25
+ positiveCorrelation.
26
+ DOC
26
27
 
27
28
  def self.short
28
29
  SHORT
@@ -14,11 +14,12 @@ module BELParser
14
14
 
15
15
  SHORT = :biomarkerFor
16
16
  LONG = :biomarkerFor
17
- DESCRIPTION = ' +A biomarkerFor P+ - For term A and process
18
- erm P, +A biomarkerFor P+ indicates that changes
19
- n or detection of A is used in some way to be
20
- biomarker for pathology or biological process
21
- .'.freeze
17
+ DESCRIPTION = <<-DOC
18
+ BiomarkerFor: +A biomarkerFor P+ - For term A and process term
19
+ P, +A biomarkerFor P+ indicates that changes in or detection
20
+ of A is used in some way to be a biomarker for pathology or
21
+ biological process P.
22
+ DOC
22
23
 
23
24
  def self.short
24
25
  SHORT
@@ -16,13 +16,14 @@ module BELParser
16
16
 
17
17
  SHORT = :causesNoChange
18
18
  LONG = :causesNoChange
19
- DESCRIPTION = ' +A causesNoChange B+ - For terms A and B, +A
20
- ausesNoChange B+ indicates that B was observed not
21
- o change in response to changes in A. Statements
22
- sing this relationship correspond to cases where
23
- xplicit measurement of B demonstrates lack of
24
- ignificant change, not for cases where the state
25
- f B is unknown.'.freeze
19
+ DESCRIPTION = <<-DOC
20
+ CausesNoChange: +A causesNoChange B+ - For terms A and B,
21
+ +A causesNoChange B+ indicates that B was observed not to
22
+ change in response to changes in A. Statements using this
23
+ relationship correspond to cases where explicit measurement
24
+ of B demonstrates lack of significant change, not for cases
25
+ where the state of B is unknown.
26
+ DOC
26
27
 
27
28
  def self.short
28
29
  SHORT
@@ -20,18 +20,19 @@ module BELParser
20
20
 
21
21
  SHORT = :'-|'
22
22
  LONG = :decreases
23
- DESCRIPTION = ' +A -| B+ - For terms A and B, +A decreases B
24
- r A -| B+ indicates that increases in A have been
25
- bserved to cause decreases in B. +A decreases
26
- + also represents cases where decreases in A
27
- ave been observed to cause increases in B, for
28
- xample, in recording the results of gene deletion
29
- r other inhibition experiments. A is a BEL Term
30
- nd B is either a BEL Term or a BEL Statement. The
31
- elationship does not indicate that the changes
32
- n A are either necessary for changes in B, nor
33
- oes it indicate that changes in A are sufficient
34
- o cause changes in B.'.freeze
23
+
24
+ DESCRIPTION = <<-DOC
25
+ Decreases: +A -| B+ - For terms A and B, +A decreases B or
26
+ A -| B+ indicates that increases in A have been observed to
27
+ cause decreases in B. +A decreases B+ also represents cases
28
+ where decreases in A have been observed to cause increases in B,
29
+ for example, in recording the results of gene deletion or other
30
+ inhibition experiments. A is a BEL Term and B is either a BEL
31
+ Term or a BEL Statement. The relationship does not indicate
32
+ that the changes in A are either necessary for changes in B,
33
+ nor does it indicate that changes in A are sufficient to cause
34
+ changes in B.
35
+ DOC
35
36
 
36
37
  def self.short
37
38
  SHORT
@@ -15,12 +15,14 @@ module BELParser
15
15
 
16
16
  SHORT = :'=|'
17
17
  LONG = :directlyDecreases
18
- DESCRIPTION = ' +A =| B+ - For terms A and B,
19
- A directlyDecreases B or A =| B+ indicates A
20
- ecreases B and that the mechanism of the causal
21
- elationship is based on physical interaction
22
- f entities related to A and B. This is a direct
23
- ersion of the decreases relationship.'.freeze
18
+
19
+ DESCRIPTION = <<-DOC
20
+ DirectlyDecreases: +A =| B+ - For terms A and B, +A
21
+ directlyDecreases B or A =| B+ indicates A decreases B and that
22
+ the mechanism of the causal relationship is based on physical
23
+ interaction of entities related to A and B. This is a direct
24
+ version of the decreases relationship.
25
+ DOC
24
26
 
25
27
  def self.short
26
28
  SHORT
@@ -15,12 +15,14 @@ module BELParser
15
15
 
16
16
  SHORT = :'=>'
17
17
  LONG = :directlyIncreases
18
- DESCRIPTION = ' +A => B+ - For terms A and B,
19
- A directlyIncreases B or A => B+ indicate A
20
- ncreases B and that the mechanism of the causal
21
- elationship is based on physical interaction
22
- f entities related to A and B. This is a direct
23
- ersion of the increases relationship.'.freeze
18
+
19
+ DESCRIPTION = <<-DOC
20
+ DirectlyIncreases: +A => B+ - For terms A and B, +A
21
+ directlyIncreases B or A => B+ indicate A increases B and that
22
+ the mechanism of the causal relationship is based on physical
23
+ interaction of entities related to A and B. This is a direct
24
+ version of the increases relationship.
25
+ DOC
24
26
 
25
27
  def self.short
26
28
  SHORT
@@ -21,20 +21,20 @@ module BELParser
21
21
 
22
22
  SHORT = :hasComponent
23
23
  LONG = :hasComponent
24
- DESCRIPTION = ' +A hasComponent A1+ - For complexAbundance
25
- erm A and abundance term B, +A hasComponent B+
26
- esignates B as a component of A, that complexes
27
- hat are instances of A have instances of B as
28
- ossible components. Note that, the stoichiometry
29
- f A is not described, nor is it stated that B
30
- s a required component. The use of hasComponent
31
- elationships is complementary to the use of
32
- unctionally composed complexes and is intended to
33
- nable the assignment of components to complexes
34
- esignated by names in external vocabularies. The
35
- ssignment of components can potentially enable
36
- he reconciliation of equivalent complexes at
37
- nowledge assembly time.'.freeze
24
+
25
+ DESCRIPTION = <<-DOC
26
+ HasComponent: +A hasComponent A1+ - For complexAbundance
27
+ term A and abundance term B, +A hasComponent B+ designates
28
+ B as a component of A, that complexes that are instances of
29
+ A have instances of B as possible components. Note that, the
30
+ stoichiometry of A is not described, nor is it stated that B is
31
+ a required component. The use of hasComponent relationships is
32
+ complementary to the use of functionally composed complexes and
33
+ is intended to enable the assignment of components to complexes
34
+ designated by names in external vocabularies. The assignment
35
+ of components can potentially enable the reconciliation of
36
+ equivalent complexes at knowledge assembly time.
37
+ DOC
38
38
 
39
39
  def self.short
40
40
  SHORT
@@ -19,17 +19,18 @@ module BELParser
19
19
 
20
20
  SHORT = :hasComponents
21
21
  LONG = :hasComponents
22
- DESCRIPTION = ' +A hasComponents (B, C, D)+ - The hasComponents
23
- elationship is a special form which enables
24
- he assignment of multiple complex components
25
- n a single statement where the object of the
26
- tatement is a set of abundance terms. A statement
27
- sing hasComponents is exactly equivalent to
28
- ultiple hasComponent statements. A term may not
29
- ppear in both the subject and object of the same
30
- asComponents statement. For the abundance terms A,
31
- , C and D, +A hasComponents B, C, D+ indicates
32
- hat A has components B, C and D.'.freeze
22
+
23
+ DESCRIPTION = <<-DOC
24
+ HasComponents: +A hasComponents (B, C, D)+ - The hasComponents
25
+ relationship is a special form which enables the assignment
26
+ of multiple complex components in a single statement where
27
+ the object of the statement is a set of abundance terms. A
28
+ statement using hasComponents is exactly equivalent to multiple
29
+ hasComponent statements. A term may not appear in both the
30
+ subject and object of the same hasComponents statement. For
31
+ the abundance terms A, B, C and D, +A hasComponents B, C, D+
32
+ indicates that A has components B, C and D.
33
+ DOC
33
34
 
34
35
  def self.short
35
36
  SHORT
@@ -17,14 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :hasMember
19
19
  LONG = :hasMember
20
- DESCRIPTION = ' +A hasMember A1+ - For term abundances A and B,
21
- A hasMember B+ designates B as a member class of
22
- . A member class is a distinguished sub-class. A is
23
- efined as a group by all of the members assigned to
24
- t. The member classes may or may not be overlapping
25
- nd may or may not entirely cover all instances
26
- f A. A term may not appear in both the subject
27
- nd object of the same hasMember statement.'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ HasMember: +A hasMember A1+ - For term abundances A and B,
23
+ +A hasMember B+ designates B as a member class of A. A member
24
+ class is a distinguished sub-class. A is defined as a group
25
+ by all of the members assigned to it. The member classes may
26
+ or may not be overlapping and may or may not entirely cover
27
+ all instances of A. A term may not appear in both the subject
28
+ and object of the same hasMember statement.
29
+ DOC
28
30
 
29
31
  def self.short
30
32
  SHORT
@@ -19,18 +19,19 @@ module BELParser
19
19
 
20
20
  SHORT = :hasMembers
21
21
  LONG = :hasMembers
22
- DESCRIPTION = ' +A hasMembers (B, C, D)+ - The hasMembers
23
- elationship is a special form which enables the
24
- ssignment of multiple member classes in a single
25
- tatement where the object of the statement is a set
26
- f abundance terms. A statement using hasMembers
27
- s exactly equivalent to multiple hasMember
28
- tatements. A term may not appear in both the
29
- ubject and object of a of the same hasMembers
30
- tatement. For the abundance terms A, B, C and D,
31
- A hasMembers B, C, D+ indicates that A is defined
32
- y its member abundance classes B, C and D.'.freeze
33
22
 
23
+ DESCRIPTION = <<-DOC
24
+ HasMembers: +A hasMembers (B, C, D)+ - The hasMembers
25
+ relationship is a special form which enables the assignment of
26
+ multiple member classes in a single statement where the object
27
+ of the statement is a set of abundance terms. A statement
28
+ using hasMembers is exactly equivalent to multiple hasMember
29
+ statements. A term may not appear in both the subject and
30
+ object of a of the same hasMembers statement. For the abundance
31
+ terms A, B, C and D, +A hasMembers B, C, D+ indicates that A
32
+ is defined by its member abundance classes B, C and D.
33
+ DOC
34
+
34
35
  def self.short
35
36
  SHORT
36
37
  end
@@ -16,13 +16,15 @@ module BELParser
16
16
 
17
17
  SHORT = :hasModification
18
18
  LONG = :hasModification
19
- DESCRIPTION = ' +p(A) hasModification p(A, pmod(P, S, 473))+ -
20
- his relationship links abundance terms modified by
21
- he +pmod()+ function to the unmodified abundance
22
- erm. This is a direct relationship because it
23
- s a _self_ relationship. This relationship is
24
- ntroduced by the BEL Compiler and may not be used
25
- y statements in BEL documents.'.freeze
19
+
20
+ DESCRIPTION = <<-DOC
21
+ HasModification: +p(A) hasModification p(A, pmod(P, S, 473))+
22
+ - This relationship links abundance terms modified by the
23
+ +pmod()+ function to the unmodified abundance term. This is a
24
+ direct relationship because it is a _self_ relationship. This
25
+ relationship is introduced by the BEL Compiler and may not be
26
+ used by statements in BEL documents.
27
+ DOC
26
28
 
27
29
  def self.short
28
30
  SHORT
@@ -17,14 +17,16 @@ module BELParser
17
17
 
18
18
  SHORT = :hasProduct
19
19
  LONG = :hasProduct
20
- DESCRIPTION = ' +reaction(reactants(A), products(B)) hasProduct
21
- + - This relationship links abundance terms
22
- rom the +products(<list>)+ in a reaction to the
23
- eaction. This is a direct relationship because it
24
- s a _self_ relationship. Products are produced
25
- irectly by a reaction. This relationship is
26
- ntroduced by the BEL Compiler and may not be used
27
- y statements in BEL documents.'.freeze
20
+
21
+ DESCRIPTION = <<-DOC
22
+ HasProduct: +reaction(reactants(A), products(B))
23
+ hasProduct B+ - This relationship links abundance
24
+ terms from the +products(<list>)+ in a reaction to the
25
+ reaction. This is a direct relationship because it is a _self_
26
+ relationship. Products are produced directly by a reaction. This
27
+ relationship is introduced by the BEL Compiler and may not be
28
+ used by statements in BEL documents.
29
+ DOC
28
30
 
29
31
  def self.short
30
32
  SHORT