bel_parser 1.0.0.alpha.27-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.
- checksums.yaml +7 -0
- data/.gemspec-java +32 -0
- data/CHANGELOG.md +10 -0
- data/LICENSE +191 -0
- data/README.md +20 -0
- data/VERSION +1 -0
- data/bin/bel2_validator +62 -0
- data/bin/bel_script_reader +132 -0
- data/lib/bel/translator/plugins/bel_script.rb +38 -0
- data/lib/bel/translator/plugins/bel_script/bel_citation_serialization.rb +125 -0
- data/lib/bel/translator/plugins/bel_script/bel_discrete_serialization.rb +109 -0
- data/lib/bel/translator/plugins/bel_script/bel_top_down_serialization.rb +100 -0
- data/lib/bel/translator/plugins/bel_script/nanopub_serialization.rb +79 -0
- data/lib/bel/translator/plugins/bel_script/reader.rb +39 -0
- data/lib/bel/translator/plugins/bel_script/translator.rb +37 -0
- data/lib/bel/translator/plugins/bel_script/writer.rb +180 -0
- data/lib/bel_parser.rb +23 -0
- data/lib/bel_parser/ast_filter.rb +44 -0
- data/lib/bel_parser/ast_generator.rb +83 -0
- data/lib/bel_parser/expression.rb +3 -0
- data/lib/bel_parser/expression/filter.rb +31 -0
- data/lib/bel_parser/expression/parser.rb +72 -0
- data/lib/bel_parser/expression/validator.rb +79 -0
- data/lib/bel_parser/language.rb +114 -0
- data/lib/bel_parser/language/amino_acid.rb +68 -0
- data/lib/bel_parser/language/apply_namespace_encoding.rb +98 -0
- data/lib/bel_parser/language/base_specification.rb +82 -0
- data/lib/bel_parser/language/covalent_protein_modification.rb +56 -0
- data/lib/bel_parser/language/expression_validator.rb +68 -0
- data/lib/bel_parser/language/function.rb +67 -0
- data/lib/bel_parser/language/relationship.rb +102 -0
- data/lib/bel_parser/language/semantics.rb +40 -0
- data/lib/bel_parser/language/semantics/deeply_nested_statement.rb +65 -0
- data/lib/bel_parser/language/semantics/function_deprecation.rb +43 -0
- data/lib/bel_parser/language/semantics/list_function_subject.rb +45 -0
- data/lib/bel_parser/language/semantics/multiple_subject_object.rb +55 -0
- data/lib/bel_parser/language/semantics/non_causal_nested_statement.rb +50 -0
- data/lib/bel_parser/language/semantics/non_object_list.rb +56 -0
- data/lib/bel_parser/language/semantics/relationship_deprecation.rb +44 -0
- data/lib/bel_parser/language/semantics/relationship_not_listable.rb +60 -0
- data/lib/bel_parser/language/semantics/signature_mapping.rb +83 -0
- data/lib/bel_parser/language/semantics_ast.rb +784 -0
- data/lib/bel_parser/language/semantics_ast_warnings.rb +180 -0
- data/lib/bel_parser/language/semantics_function.rb +16 -0
- data/lib/bel_parser/language/semantics_match.rb +28 -0
- data/lib/bel_parser/language/semantics_result.rb +33 -0
- data/lib/bel_parser/language/semantics_type_warning.rb +22 -0
- data/lib/bel_parser/language/semantics_warning.rb +27 -0
- data/lib/bel_parser/language/signature.rb +39 -0
- data/lib/bel_parser/language/specification.rb +118 -0
- data/lib/bel_parser/language/syntax.rb +38 -0
- data/lib/bel_parser/language/syntax/invalid_function.rb +39 -0
- data/lib/bel_parser/language/syntax/invalid_relationship.rb +42 -0
- data/lib/bel_parser/language/syntax/undefined_namespace.rb +49 -0
- data/lib/bel_parser/language/syntax/undefined_namespace_value.rb +44 -0
- data/lib/bel_parser/language/syntax_error.rb +32 -0
- data/lib/bel_parser/language/syntax_function.rb +16 -0
- data/lib/bel_parser/language/syntax_result.rb +32 -0
- data/lib/bel_parser/language/syntax_warning.rb +27 -0
- data/lib/bel_parser/language/version1_0.rb +20 -0
- data/lib/bel_parser/language/version1_0/functions/abundance.rb +83 -0
- data/lib/bel_parser/language/version1_0/functions/biological_process.rb +83 -0
- data/lib/bel_parser/language/version1_0/functions/catalytic_activity.rb +114 -0
- data/lib/bel_parser/language/version1_0/functions/cell_secretion.rb +83 -0
- data/lib/bel_parser/language/version1_0/functions/cell_surface_expression.rb +83 -0
- data/lib/bel_parser/language/version1_0/functions/chaperone_activity.rb +114 -0
- data/lib/bel_parser/language/version1_0/functions/complex_abundance.rb +115 -0
- data/lib/bel_parser/language/version1_0/functions/composite_abundance.rb +81 -0
- data/lib/bel_parser/language/version1_0/functions/degradation.rb +83 -0
- data/lib/bel_parser/language/version1_0/functions/fusion.rb +287 -0
- data/lib/bel_parser/language/version1_0/functions/gene_abundance.rb +122 -0
- data/lib/bel_parser/language/version1_0/functions/gtp_bound_activity.rb +113 -0
- data/lib/bel_parser/language/version1_0/functions/kinase_activity.rb +114 -0
- data/lib/bel_parser/language/version1_0/functions/list.rb +114 -0
- data/lib/bel_parser/language/version1_0/functions/micro_rna_abundance.rb +85 -0
- data/lib/bel_parser/language/version1_0/functions/molecular_activity.rb +82 -0
- data/lib/bel_parser/language/version1_0/functions/pathology.rb +83 -0
- data/lib/bel_parser/language/version1_0/functions/peptidase_activity.rb +112 -0
- data/lib/bel_parser/language/version1_0/functions/phosphatase_activity.rb +112 -0
- data/lib/bel_parser/language/version1_0/functions/products.rb +79 -0
- data/lib/bel_parser/language/version1_0/functions/protein_abundance.rb +234 -0
- data/lib/bel_parser/language/version1_0/functions/protein_modification.rb +179 -0
- data/lib/bel_parser/language/version1_0/functions/reactants.rb +79 -0
- data/lib/bel_parser/language/version1_0/functions/reaction.rb +86 -0
- data/lib/bel_parser/language/version1_0/functions/ribosylation_activity.rb +114 -0
- data/lib/bel_parser/language/version1_0/functions/rna_abundance.rb +122 -0
- data/lib/bel_parser/language/version1_0/functions/substitution.rb +93 -0
- data/lib/bel_parser/language/version1_0/functions/transcriptional_activity.rb +114 -0
- data/lib/bel_parser/language/version1_0/functions/translocation.rb +98 -0
- data/lib/bel_parser/language/version1_0/functions/transport_activity.rb +115 -0
- data/lib/bel_parser/language/version1_0/functions/truncation.rb +81 -0
- data/lib/bel_parser/language/version1_0/relationships/acts_in.rb +61 -0
- data/lib/bel_parser/language/version1_0/relationships/analogous.rb +41 -0
- data/lib/bel_parser/language/version1_0/relationships/association.rb +42 -0
- data/lib/bel_parser/language/version1_0/relationships/biomarker_for.rb +42 -0
- data/lib/bel_parser/language/version1_0/relationships/causes_no_change.rb +50 -0
- data/lib/bel_parser/language/version1_0/relationships/decreases.rb +63 -0
- data/lib/bel_parser/language/version1_0/relationships/directly_decreases.rb +56 -0
- data/lib/bel_parser/language/version1_0/relationships/directly_increases.rb +56 -0
- data/lib/bel_parser/language/version1_0/relationships/has_component.rb +62 -0
- data/lib/bel_parser/language/version1_0/relationships/has_components.rb +61 -0
- data/lib/bel_parser/language/version1_0/relationships/has_member.rb +48 -0
- data/lib/bel_parser/language/version1_0/relationships/has_members.rb +57 -0
- data/lib/bel_parser/language/version1_0/relationships/has_modification.rb +54 -0
- data/lib/bel_parser/language/version1_0/relationships/has_product.rb +60 -0
- data/lib/bel_parser/language/version1_0/relationships/has_variant.rb +54 -0
- data/lib/bel_parser/language/version1_0/relationships/includes.rb +59 -0
- data/lib/bel_parser/language/version1_0/relationships/increases.rb +63 -0
- data/lib/bel_parser/language/version1_0/relationships/is_a.rb +48 -0
- data/lib/bel_parser/language/version1_0/relationships/negative_correlation.rb +50 -0
- data/lib/bel_parser/language/version1_0/relationships/orthologous.rb +48 -0
- data/lib/bel_parser/language/version1_0/relationships/positive_correlation.rb +46 -0
- data/lib/bel_parser/language/version1_0/relationships/prognostic_biomarker_for.rb +44 -0
- data/lib/bel_parser/language/version1_0/relationships/rate_limiting_step_of.rb +53 -0
- data/lib/bel_parser/language/version1_0/relationships/reactant_in.rb +60 -0
- data/lib/bel_parser/language/version1_0/relationships/sub_process_of.rb +55 -0
- data/lib/bel_parser/language/version1_0/relationships/transcribed_to.rb +53 -0
- data/lib/bel_parser/language/version1_0/relationships/translated_to.rb +54 -0
- data/lib/bel_parser/language/version1_0/relationships/translocates.rb +57 -0
- data/lib/bel_parser/language/version1_0/return_types/abundance.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/any.rb +74 -0
- data/lib/bel_parser/language/version1_0/return_types/biological_process.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/catalytic_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/chaperone_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/complex_abundance.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/fusion.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/gene_abundance.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/gtp_bound_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/kinase_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/list.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/micro_rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/molecular_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/pathology.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/peptidase_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/phosphatase_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/products.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/protein_abundance.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/protein_modification.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/reactants.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/ribosylation_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/substitution.rb +17 -0
- data/lib/bel_parser/language/version1_0/return_types/transcriptional_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/transport_activity.rb +20 -0
- data/lib/bel_parser/language/version1_0/return_types/truncation.rb +17 -0
- data/lib/bel_parser/language/version1_0/value_encodings/abundance.rb +21 -0
- data/lib/bel_parser/language/version1_0/value_encodings/any.rb +74 -0
- data/lib/bel_parser/language/version1_0/value_encodings/biological_process.rb +21 -0
- data/lib/bel_parser/language/version1_0/value_encodings/complex_abundance.rb +21 -0
- data/lib/bel_parser/language/version1_0/value_encodings/gene_abundance.rb +21 -0
- data/lib/bel_parser/language/version1_0/value_encodings/micro_rna_abundance.rb +21 -0
- data/lib/bel_parser/language/version1_0/value_encodings/pathology.rb +21 -0
- data/lib/bel_parser/language/version1_0/value_encodings/protein_abundance.rb +21 -0
- data/lib/bel_parser/language/version1_0/value_encodings/rna_abundance.rb +21 -0
- data/lib/bel_parser/language/version2_0.rb +20 -0
- data/lib/bel_parser/language/version2_0/functions/abundance.rb +161 -0
- data/lib/bel_parser/language/version2_0/functions/activity.rb +118 -0
- data/lib/bel_parser/language/version2_0/functions/biological_process.rb +84 -0
- data/lib/bel_parser/language/version2_0/functions/cell_secretion.rb +83 -0
- data/lib/bel_parser/language/version2_0/functions/cell_surface_expression.rb +83 -0
- data/lib/bel_parser/language/version2_0/functions/complex_abundance.rb +190 -0
- data/lib/bel_parser/language/version2_0/functions/composite_abundance.rb +81 -0
- data/lib/bel_parser/language/version2_0/functions/degradation.rb +83 -0
- data/lib/bel_parser/language/version2_0/functions/fragment.rb +116 -0
- data/lib/bel_parser/language/version2_0/functions/from_location.rb +85 -0
- data/lib/bel_parser/language/version2_0/functions/fusion.rb +203 -0
- data/lib/bel_parser/language/version2_0/functions/gene_abundance.rb +192 -0
- data/lib/bel_parser/language/version2_0/functions/list.rb +114 -0
- data/lib/bel_parser/language/version2_0/functions/location.rb +83 -0
- data/lib/bel_parser/language/version2_0/functions/micro_rna_abundance.rb +163 -0
- data/lib/bel_parser/language/version2_0/functions/molecular_activity.rb +86 -0
- data/lib/bel_parser/language/version2_0/functions/pathology.rb +83 -0
- data/lib/bel_parser/language/version2_0/functions/products.rb +79 -0
- data/lib/bel_parser/language/version2_0/functions/protein_abundance.rb +270 -0
- data/lib/bel_parser/language/version2_0/functions/protein_modification.rb +172 -0
- data/lib/bel_parser/language/version2_0/functions/reactants.rb +79 -0
- data/lib/bel_parser/language/version2_0/functions/reaction.rb +86 -0
- data/lib/bel_parser/language/version2_0/functions/rna_abundance.rb +192 -0
- data/lib/bel_parser/language/version2_0/functions/to_location.rb +84 -0
- data/lib/bel_parser/language/version2_0/functions/translocation.rb +91 -0
- data/lib/bel_parser/language/version2_0/functions/variant.rb +80 -0
- data/lib/bel_parser/language/version2_0/relationships/acts_in.rb +61 -0
- data/lib/bel_parser/language/version2_0/relationships/analogous.rb +45 -0
- data/lib/bel_parser/language/version2_0/relationships/association.rb +42 -0
- data/lib/bel_parser/language/version2_0/relationships/biomarker_for.rb +46 -0
- data/lib/bel_parser/language/version2_0/relationships/causes_no_change.rb +50 -0
- data/lib/bel_parser/language/version2_0/relationships/decreases.rb +63 -0
- data/lib/bel_parser/language/version2_0/relationships/directly_decreases.rb +56 -0
- data/lib/bel_parser/language/version2_0/relationships/directly_increases.rb +56 -0
- data/lib/bel_parser/language/version2_0/relationships/has_component.rb +62 -0
- data/lib/bel_parser/language/version2_0/relationships/has_components.rb +61 -0
- data/lib/bel_parser/language/version2_0/relationships/has_member.rb +48 -0
- data/lib/bel_parser/language/version2_0/relationships/has_members.rb +57 -0
- data/lib/bel_parser/language/version2_0/relationships/has_modification.rb +54 -0
- data/lib/bel_parser/language/version2_0/relationships/has_product.rb +60 -0
- data/lib/bel_parser/language/version2_0/relationships/has_variant.rb +54 -0
- data/lib/bel_parser/language/version2_0/relationships/includes.rb +59 -0
- data/lib/bel_parser/language/version2_0/relationships/increases.rb +63 -0
- data/lib/bel_parser/language/version2_0/relationships/is_a.rb +48 -0
- data/lib/bel_parser/language/version2_0/relationships/negative_correlation.rb +50 -0
- data/lib/bel_parser/language/version2_0/relationships/orthologous.rb +48 -0
- data/lib/bel_parser/language/version2_0/relationships/positive_correlation.rb +46 -0
- data/lib/bel_parser/language/version2_0/relationships/prognostic_biomarker_for.rb +48 -0
- data/lib/bel_parser/language/version2_0/relationships/rate_limiting_step_of.rb +53 -0
- data/lib/bel_parser/language/version2_0/relationships/reactant_in.rb +60 -0
- data/lib/bel_parser/language/version2_0/relationships/regulates.rb +51 -0
- data/lib/bel_parser/language/version2_0/relationships/sub_process_of.rb +55 -0
- data/lib/bel_parser/language/version2_0/relationships/transcribed_to.rb +53 -0
- data/lib/bel_parser/language/version2_0/relationships/translated_to.rb +54 -0
- data/lib/bel_parser/language/version2_0/relationships/translocates.rb +57 -0
- data/lib/bel_parser/language/version2_0/return_types/abundance.rb +20 -0
- data/lib/bel_parser/language/version2_0/return_types/activity.rb +20 -0
- data/lib/bel_parser/language/version2_0/return_types/any.rb +74 -0
- data/lib/bel_parser/language/version2_0/return_types/biological_process.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/complex_abundance.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/fragment.rb +20 -0
- data/lib/bel_parser/language/version2_0/return_types/from_location.rb +20 -0
- data/lib/bel_parser/language/version2_0/return_types/fusion.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/gene_abundance.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/list.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/location.rb +20 -0
- data/lib/bel_parser/language/version2_0/return_types/micro_rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/molecular_activity.rb +20 -0
- data/lib/bel_parser/language/version2_0/return_types/pathology.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/products.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/protein_abundance.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/protein_modification.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/reactants.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version2_0/return_types/to_location.rb +20 -0
- data/lib/bel_parser/language/version2_0/return_types/variant.rb +20 -0
- data/lib/bel_parser/language/version2_0/value_encodings/abundance.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/activity.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/any.rb +74 -0
- data/lib/bel_parser/language/version2_0/value_encodings/biological_process.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/complex_abundance.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/gene_abundance.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/location.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/micro_rna_abundance.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/pathology.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/protein_abundance.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/protein_modification.rb +21 -0
- data/lib/bel_parser/language/version2_0/value_encodings/rna_abundance.rb +21 -0
- data/lib/bel_parser/mixin/line_continuator.rb +15 -0
- data/lib/bel_parser/mixin/line_mapping.rb +14 -0
- data/lib/bel_parser/parsers/ast/node.rb +987 -0
- data/lib/bel_parser/parsers/ast/sexp.rb +8 -0
- data/lib/bel_parser/parsers/bel_script.rb +5 -0
- data/lib/bel_parser/parsers/bel_script/define_annotation.rb +5920 -0
- data/lib/bel_parser/parsers/bel_script/define_annotation.rl +141 -0
- data/lib/bel_parser/parsers/bel_script/define_namespace.rb +1780 -0
- data/lib/bel_parser/parsers/bel_script/define_namespace.rl +121 -0
- data/lib/bel_parser/parsers/bel_script/set.rb +5008 -0
- data/lib/bel_parser/parsers/bel_script/set.rl +116 -0
- data/lib/bel_parser/parsers/bel_script/set_document.rb +7722 -0
- data/lib/bel_parser/parsers/bel_script/set_document.rl +97 -0
- data/lib/bel_parser/parsers/bel_script/unset.rb +706 -0
- data/lib/bel_parser/parsers/bel_script/unset.rl +95 -0
- data/lib/bel_parser/parsers/common.rb +5 -0
- data/lib/bel_parser/parsers/common/blank_line.rb +211 -0
- data/lib/bel_parser/parsers/common/blank_line.rl +81 -0
- data/lib/bel_parser/parsers/common/comment_line.rb +245 -0
- data/lib/bel_parser/parsers/common/comment_line.rl +97 -0
- data/lib/bel_parser/parsers/common/common.rb +7 -0
- data/lib/bel_parser/parsers/common/common.rl +13 -0
- data/lib/bel_parser/parsers/common/identifier.rb +289 -0
- data/lib/bel_parser/parsers/common/identifier.rl +106 -0
- data/lib/bel_parser/parsers/common/list.rb +2388 -0
- data/lib/bel_parser/parsers/common/list.rl +146 -0
- data/lib/bel_parser/parsers/common/string.rb +271 -0
- data/lib/bel_parser/parsers/common/string.rl +107 -0
- data/lib/bel_parser/parsers/expression.rb +7 -0
- data/lib/bel_parser/parsers/expression/comment.rb +239 -0
- data/lib/bel_parser/parsers/expression/comment.rl +97 -0
- data/lib/bel_parser/parsers/expression/nested_statement.rb +17802 -0
- data/lib/bel_parser/parsers/expression/nested_statement.rl +141 -0
- data/lib/bel_parser/parsers/expression/observed_term.rb +7291 -0
- data/lib/bel_parser/parsers/expression/observed_term.rl +92 -0
- data/lib/bel_parser/parsers/expression/parameter.rb +1506 -0
- data/lib/bel_parser/parsers/expression/parameter.rl +97 -0
- data/lib/bel_parser/parsers/expression/relationship.rb +254 -0
- data/lib/bel_parser/parsers/expression/relationship.rl +98 -0
- data/lib/bel_parser/parsers/expression/simple_statement.rb +10475 -0
- data/lib/bel_parser/parsers/expression/simple_statement.rl +112 -0
- data/lib/bel_parser/parsers/expression/term.rb +3989 -0
- data/lib/bel_parser/parsers/expression/term.rl +157 -0
- data/lib/bel_parser/parsers/line_parser.rb +92 -0
- data/lib/bel_parser/parsers/mixin/buffer.rb +10 -0
- data/lib/bel_parser/parsers/nonblocking_io_wrapper.rb +50 -0
- data/lib/bel_parser/parsers/serializer.rb +205 -0
- data/lib/bel_parser/quoting.rb +177 -0
- data/lib/bel_parser/resource/concept.rb +56 -0
- data/lib/bel_parser/resource/concept_scheme.rb +35 -0
- data/lib/bel_parser/resource/dataset.rb +34 -0
- data/lib/bel_parser/resource/eager_reader.rb +89 -0
- data/lib/bel_parser/resource/eager_sparql_reader.rb +51 -0
- data/lib/bel_parser/resource/file_resource.rb +21 -0
- data/lib/bel_parser/resource/file_resource_value.rb +24 -0
- data/lib/bel_parser/resource/jena_tdb_reader.rb +246 -0
- data/lib/bel_parser/resource/lru_cache.rb +111 -0
- data/lib/bel_parser/resource/lru_reader.rb +34 -0
- data/lib/bel_parser/resource/reader.rb +18 -0
- data/lib/bel_parser/resource/resource_url_reader.rb +181 -0
- data/lib/bel_parser/resource/sparql_reader.rb +179 -0
- data/lib/bel_parser/resource/value.rb +31 -0
- data/lib/bel_parser/script.rb +8 -0
- data/lib/bel_parser/script/filter.rb +35 -0
- data/lib/bel_parser/script/first_node.rb +21 -0
- data/lib/bel_parser/script/keywords.rb +32 -0
- data/lib/bel_parser/script/nanopub_mapper.rb +182 -0
- data/lib/bel_parser/script/parser.rb +51 -0
- data/lib/bel_parser/script/state/annotation_definition.rb +62 -0
- data/lib/bel_parser/script/state/bel_version.rb +36 -0
- data/lib/bel_parser/script/state/document_property.rb +29 -0
- data/lib/bel_parser/script/state/namespace_definition.rb +32 -0
- data/lib/bel_parser/script/state/set.rb +82 -0
- data/lib/bel_parser/script/state/unset.rb +46 -0
- data/lib/bel_parser/script/state_aggregator.rb +49 -0
- data/lib/bel_parser/script/state_function.rb +10 -0
- data/lib/bel_parser/script/syntax/expression_validation.rb +46 -0
- data/lib/bel_parser/script/syntax/invalid_regex_pattern.rb +49 -0
- data/lib/bel_parser/script/syntax/undefined_annotation.rb +61 -0
- data/lib/bel_parser/script/syntax/undefined_annotation_value.rb +84 -0
- data/lib/bel_parser/script/syntax/unresolvable_namespace.rb +54 -0
- data/lib/bel_parser/script/syntax/unsupported_bel_version.rb +59 -0
- data/lib/bel_parser/script/validator.rb +65 -0
- data/lib/bel_parser/vendor/ast.rb +17 -0
- data/lib/bel_parser/vendor/ast/node.rb +254 -0
- data/lib/bel_parser/vendor/ast/processor.rb +12 -0
- data/lib/bel_parser/vendor/ast/processor/mixin.rb +282 -0
- data/lib/bel_parser/vendor/ast/sexp.rb +30 -0
- metadata +390 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
module BELParser
|
2
|
+
module Language
|
3
|
+
# CovalentProteinModification defines a controlled vocabulary of
|
4
|
+
# post-translational protein modifications.
|
5
|
+
#
|
6
|
+
# see https://en.wikipedia.org/wiki/Post-translational_modification
|
7
|
+
module CovalentProteinModification
|
8
|
+
Acetylation = [:Acetylation, :A].freeze
|
9
|
+
Farnesylation = [:Farnesylation, :F].freeze
|
10
|
+
Glycosylation = [:Glycosylation, :G].freeze
|
11
|
+
Hydroxylation = [:Hydroxylation, :H].freeze
|
12
|
+
Methylation = [:Methylation, :M].freeze
|
13
|
+
Phosphorylation = [:Phosphorylation, :P].freeze
|
14
|
+
Ribosylation = [:Ribosylation, :R].freeze
|
15
|
+
Sumoylation = [:Sumoylation, :S].freeze
|
16
|
+
Ubiquitination = [:Ubiquitination, :U].freeze
|
17
|
+
|
18
|
+
# Determines if +sym+ represents a covalent protein modification.
|
19
|
+
#
|
20
|
+
# @param [#to_sym] sym covalent protein modification code
|
21
|
+
# @return [Boolean] +true+ if +sym+ code is included in supported
|
22
|
+
# covalent protein modifications; +false+ if not supported
|
23
|
+
def self.includes?(sym)
|
24
|
+
@hash.key?(sym.to_sym)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Gets all supported covalent protein modification.
|
28
|
+
def self.names
|
29
|
+
@names
|
30
|
+
end
|
31
|
+
|
32
|
+
# Gets all supported covalent protein modification (i.e. name, 1-Letter).
|
33
|
+
def self.values
|
34
|
+
@values
|
35
|
+
end
|
36
|
+
|
37
|
+
unless defined? @hash
|
38
|
+
@hash = {}
|
39
|
+
constants.map(&method(:const_get)).each do |values|
|
40
|
+
@hash.update(
|
41
|
+
Hash[values.map { |v| [v, values.first] }]
|
42
|
+
)
|
43
|
+
end
|
44
|
+
@hash.freeze
|
45
|
+
end
|
46
|
+
|
47
|
+
unless defined? @names
|
48
|
+
@names = constants.map(&method(:const_get)).map(&:first).sort.freeze
|
49
|
+
end
|
50
|
+
|
51
|
+
unless defined? @values
|
52
|
+
@values = constants.map(&method(:const_get)).map(&:to_a).flatten.freeze
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require_relative 'syntax'
|
2
|
+
require_relative 'semantics'
|
3
|
+
require_relative 'apply_namespace_encoding'
|
4
|
+
|
5
|
+
module BELParser
|
6
|
+
module Language
|
7
|
+
# ExpressionValidator validates the syntax and semantics of BEL expressions
|
8
|
+
# when supplied a {BELParser::Language::Specification} and Hash of
|
9
|
+
# namespaces.
|
10
|
+
class ExpressionValidator
|
11
|
+
def initialize(spec, namespaces, resource_reader)
|
12
|
+
@spec = spec
|
13
|
+
@namespaces = namespaces || {}
|
14
|
+
@syntax_functions = Syntax.syntax_functions
|
15
|
+
@semantics_functions = Semantics.semantics_functions
|
16
|
+
@transform =
|
17
|
+
ApplyNamespaceEncoding.new(@spec, @namespaces, resource_reader)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Validate the syntax and semantics of
|
21
|
+
# {BELParser::Parsers::AST::Node expression_node}.
|
22
|
+
#
|
23
|
+
# @param [BELParser::Parsers::AST::Node] expression_node to validate
|
24
|
+
# @return [BELParser::Language::Syntax::SyntaxResult] syntax results
|
25
|
+
def validate(expression_node)
|
26
|
+
@transform.process(expression_node)
|
27
|
+
results = syntax(expression_node)
|
28
|
+
results << Syntax::Valid.new(expression_node, @spec) if results.empty?
|
29
|
+
results.concat(semantics(expression_node))
|
30
|
+
results
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def syntax(expression_node)
|
36
|
+
expression_node.traverse.flat_map do |node|
|
37
|
+
@syntax_functions.map { |func| func.map(node, @spec, @namespaces) }
|
38
|
+
end.compact
|
39
|
+
end
|
40
|
+
|
41
|
+
def semantics(expression_node)
|
42
|
+
semantic_results =
|
43
|
+
expression_node.traverse.flat_map do |node|
|
44
|
+
@semantics_functions.flat_map { |func| func.map(node, @spec, @namespaces) }
|
45
|
+
end.compact
|
46
|
+
sigmap_results, other_results =
|
47
|
+
semantic_results.partition do |result|
|
48
|
+
result.is_a?(Semantics::SignatureMappingSuccess) ||
|
49
|
+
result.is_a?(Semantics::SignatureMappingWarning)
|
50
|
+
end
|
51
|
+
expression_node
|
52
|
+
.traverse
|
53
|
+
.select do |node|
|
54
|
+
node.is_a?(BELParser::Parsers::AST::Term)
|
55
|
+
end
|
56
|
+
.map do |term_node|
|
57
|
+
sigmap_term =
|
58
|
+
sigmap_results
|
59
|
+
.select { |res| res.expression_node == term_node }
|
60
|
+
unless sigmap_term.any?(&:success?)
|
61
|
+
other_results.concat(sigmap_term)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
other_results
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module BELParser
|
2
|
+
module Language
|
3
|
+
# Function allows you to describe the type of BEL Term.
|
4
|
+
#
|
5
|
+
# BEL Terms are composed of BEL Functions and entity definitions
|
6
|
+
# referenced using BEL Namespace identifiers. Each BEL Term represents
|
7
|
+
# either an abundance of a biological entity, the abundance of human AKT1
|
8
|
+
# for example, or a biological process such as cardiomyopathy.
|
9
|
+
module Function
|
10
|
+
def short
|
11
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
12
|
+
end
|
13
|
+
|
14
|
+
def long
|
15
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
16
|
+
end
|
17
|
+
|
18
|
+
def return_type
|
19
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
20
|
+
end
|
21
|
+
|
22
|
+
def description
|
23
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
24
|
+
end
|
25
|
+
|
26
|
+
def signatures
|
27
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
28
|
+
end
|
29
|
+
|
30
|
+
# Indicates whether this function is deprecated. Override in your
|
31
|
+
# function to mark as deprecated.
|
32
|
+
#
|
33
|
+
# @return [Boolean] false
|
34
|
+
def deprecated?
|
35
|
+
false
|
36
|
+
end
|
37
|
+
|
38
|
+
def ===(other)
|
39
|
+
return false if other.nil?
|
40
|
+
short == other || long == other
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_sym(form = :short)
|
44
|
+
value = _form_value(form)
|
45
|
+
return nil unless value
|
46
|
+
value.to_s
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_s(form = :short)
|
50
|
+
value = _form_value(form)
|
51
|
+
return nil unless value
|
52
|
+
value.to_s
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def _form_value(form = :short)
|
58
|
+
case form
|
59
|
+
when :short
|
60
|
+
short
|
61
|
+
when :long
|
62
|
+
long
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
module BELParser
|
2
|
+
module Language
|
3
|
+
# Relationship allows you to describe the type of BEL Relationship.
|
4
|
+
#
|
5
|
+
# BEL Relationships represent an interaction between a subject and object
|
6
|
+
# in the BEL expression.
|
7
|
+
module Relationship
|
8
|
+
def short
|
9
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
10
|
+
end
|
11
|
+
|
12
|
+
def long
|
13
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
14
|
+
end
|
15
|
+
|
16
|
+
def description
|
17
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
18
|
+
end
|
19
|
+
|
20
|
+
# Indicates whether this relationship is deprecated. Override in your
|
21
|
+
# relationship to mark as deprecated.
|
22
|
+
#
|
23
|
+
# @return [Boolean] false
|
24
|
+
def deprecated?
|
25
|
+
false
|
26
|
+
end
|
27
|
+
|
28
|
+
def causal?
|
29
|
+
false
|
30
|
+
end
|
31
|
+
|
32
|
+
def correlative?
|
33
|
+
false
|
34
|
+
end
|
35
|
+
|
36
|
+
def decreasing?
|
37
|
+
false
|
38
|
+
end
|
39
|
+
|
40
|
+
def direct?
|
41
|
+
false
|
42
|
+
end
|
43
|
+
|
44
|
+
def directed?
|
45
|
+
false
|
46
|
+
end
|
47
|
+
|
48
|
+
def genomic?
|
49
|
+
false
|
50
|
+
end
|
51
|
+
|
52
|
+
def increasing?
|
53
|
+
false
|
54
|
+
end
|
55
|
+
|
56
|
+
def indirect?
|
57
|
+
false
|
58
|
+
end
|
59
|
+
|
60
|
+
def injected?
|
61
|
+
false
|
62
|
+
end
|
63
|
+
|
64
|
+
def listable?
|
65
|
+
false
|
66
|
+
end
|
67
|
+
|
68
|
+
def self?
|
69
|
+
false
|
70
|
+
end
|
71
|
+
|
72
|
+
def ==(other)
|
73
|
+
return true if equal?(other)
|
74
|
+
return false if other.nil?
|
75
|
+
short == other || long == other
|
76
|
+
end
|
77
|
+
|
78
|
+
def to_sym(form = :short)
|
79
|
+
value = _form_value(form)
|
80
|
+
return nil unless value
|
81
|
+
value.to_s
|
82
|
+
end
|
83
|
+
|
84
|
+
def to_s(form = :short)
|
85
|
+
value = _form_value(form)
|
86
|
+
return nil unless value
|
87
|
+
value.to_s
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def _form_value(form = :short)
|
93
|
+
case form
|
94
|
+
when :short
|
95
|
+
short
|
96
|
+
when :long
|
97
|
+
long
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative 'semantics_match'
|
2
|
+
require_relative 'semantics_ast'
|
3
|
+
require_relative 'semantics_result'
|
4
|
+
require_relative 'semantics_warning'
|
5
|
+
require_relative 'semantics_function'
|
6
|
+
|
7
|
+
module BELParser
|
8
|
+
module Language
|
9
|
+
# Semantics module aggregates the generic {SemanticsFunction}
|
10
|
+
# implementations that apply to all
|
11
|
+
# {BELParser::Language::Specification BEL specifications}.
|
12
|
+
module Semantics
|
13
|
+
def self.semantics_functions
|
14
|
+
constants.collect do |symbol|
|
15
|
+
const = const_get(symbol)
|
16
|
+
const if
|
17
|
+
const.respond_to?(:include?) &&
|
18
|
+
const.include?(SemanticsFunction)
|
19
|
+
end.compact
|
20
|
+
end
|
21
|
+
|
22
|
+
# Valid defines a {SemanticsResult} that indicates successful semantic
|
23
|
+
# validation.
|
24
|
+
class Valid < SemanticsResult
|
25
|
+
def msg
|
26
|
+
'Semantics are valid.'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Require all semantics functions.
|
34
|
+
Dir[
|
35
|
+
File.join(
|
36
|
+
File.dirname(File.expand_path(__FILE__)),
|
37
|
+
'semantics', '*.rb')
|
38
|
+
].each do |path|
|
39
|
+
require_relative "semantics/#{File.basename(path)}"
|
40
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Semantics
|
6
|
+
# DeeplyNestedStatement implements a {SemanticsFunction} that maps a
|
7
|
+
# {BELParser::Parsers::AST::NestedStatement} to {SemanticsWarning} if
|
8
|
+
# the number of nested statements exceeds
|
9
|
+
# {DeeplyNestedStatement::NESTING_THRESHOLD}.
|
10
|
+
#
|
11
|
+
# @see DeeplyNestedStatement::NESTING_THRESHOLD
|
12
|
+
class DeeplyNestedStatement
|
13
|
+
include SemanticsFunction
|
14
|
+
|
15
|
+
# Represents how many nested statments must be exceeded before a
|
16
|
+
# {SemanticsWarning} results.
|
17
|
+
NESTING_THRESHOLD = 1
|
18
|
+
|
19
|
+
private_class_method :new
|
20
|
+
|
21
|
+
def self.map(node, spec, _namespaces)
|
22
|
+
return nil unless node.is_a?(BELParser::Parsers::AST::NestedStatement)
|
23
|
+
|
24
|
+
nested_number = count_nested_statements(node)
|
25
|
+
DeeplyNestedStatementWarning.new(
|
26
|
+
node,
|
27
|
+
spec,
|
28
|
+
NESTING_THRESHOLD,
|
29
|
+
nested_number) if nested_number > NESTING_THRESHOLD
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.count_nested_statements(node)
|
33
|
+
node
|
34
|
+
.traverse
|
35
|
+
.select { |n| n.is_a?(BELParser::Parsers::AST::Object) }
|
36
|
+
.reduce(0) do |sum, object|
|
37
|
+
sum += 1 if object.statement?
|
38
|
+
sum
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# DeeplyNestedStatementWarning defines a {SemanticsWarning} that
|
44
|
+
# indicates the nested statement threshold was exceeded.
|
45
|
+
#
|
46
|
+
# @see DeeplyNestedStatement::NESTING_THRESHOLD
|
47
|
+
class DeeplyNestedStatementWarning < SemanticsWarning
|
48
|
+
attr_reader :nested_threshold, :nested_number
|
49
|
+
|
50
|
+
def initialize(stmt_node, spec, nested_threshold, nested_number)
|
51
|
+
super(stmt_node, spec)
|
52
|
+
@nested_number = nested_number
|
53
|
+
@nested_threshold = nested_threshold
|
54
|
+
end
|
55
|
+
|
56
|
+
def to_s
|
57
|
+
<<-MSG.gsub(/ {12}/, '').delete("\n")
|
58
|
+
Statement contains more than #{nested_threshold} nested statements
|
59
|
+
(#{nested_number} nested statements).
|
60
|
+
MSG
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Semantics
|
6
|
+
# FunctionDeprecation implements a {SemanticsFunction} that maps a
|
7
|
+
# {BELParser::Parsers::AST::Function} to a {SemanticsWarning} if the
|
8
|
+
# referenced function is deprecated for the
|
9
|
+
# {BELParser::Language::Specification}.
|
10
|
+
class FunctionDeprecation
|
11
|
+
include SemanticsFunction
|
12
|
+
|
13
|
+
private_class_method :new
|
14
|
+
|
15
|
+
def self.map(node, spec, _namespaces)
|
16
|
+
return nil unless node.is_a?(BELParser::Parsers::AST::Function)
|
17
|
+
|
18
|
+
function_name = node.identifier.string_literal
|
19
|
+
func = spec.function(function_name.to_sym)
|
20
|
+
return nil unless func
|
21
|
+
|
22
|
+
FunctionDeprecationWarning.new(node, spec, func) if func.deprecated?
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Represents a {SemanticsWarning} when a
|
27
|
+
# {BELParser::Parsers::AST::Function} references a deprecated function
|
28
|
+
# for the {BELParser::Language::Specification}.
|
29
|
+
class FunctionDeprecationWarning < SemanticsWarning
|
30
|
+
attr_reader :deprecated_function
|
31
|
+
|
32
|
+
def initialize(function_node, spec, deprecated_function)
|
33
|
+
super(function_node, spec)
|
34
|
+
@deprecated_function = deprecated_function
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_s
|
38
|
+
%(Function "#{deprecated_function}" is deprecated.)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|