bel_parser 1.0.0.alpha.27-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|