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,38 @@
|
|
1
|
+
require_relative 'syntax_function'
|
2
|
+
require_relative 'syntax_error'
|
3
|
+
require_relative 'syntax_warning'
|
4
|
+
|
5
|
+
module BELParser
|
6
|
+
module Language
|
7
|
+
# Syntax module aggregates the generic {SyntaxFunction}
|
8
|
+
# implementations that apply to all
|
9
|
+
# {BELParser::Language::Specification BEL specifications}.
|
10
|
+
module Syntax
|
11
|
+
def self.syntax_functions
|
12
|
+
constants.collect do |symbol|
|
13
|
+
const = const_get(symbol)
|
14
|
+
const if
|
15
|
+
const.respond_to?(:include?) &&
|
16
|
+
const.include?(SyntaxFunction)
|
17
|
+
end.compact
|
18
|
+
end
|
19
|
+
|
20
|
+
# Valid defines a {SyntaxResult} that indicates successful syntax
|
21
|
+
# validation.
|
22
|
+
class Valid < SyntaxResult
|
23
|
+
def msg
|
24
|
+
'Syntax is valid.'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Require all generic syntax functions.
|
32
|
+
Dir[
|
33
|
+
File.join(
|
34
|
+
File.dirname(File.expand_path(__FILE__)),
|
35
|
+
'syntax', '*.rb')
|
36
|
+
].each do |path|
|
37
|
+
require_relative "syntax/#{File.basename(path)}"
|
38
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Syntax
|
6
|
+
# InvalidFunction represents a syntax error with invalid function name
|
7
|
+
# according to a BEL specification.
|
8
|
+
class InvalidFunction
|
9
|
+
include SyntaxFunction
|
10
|
+
|
11
|
+
private_class_method :new
|
12
|
+
|
13
|
+
def self.map(func_node, spec, _namespaces)
|
14
|
+
return nil unless func_node.is_a?(BELParser::Parsers::AST::Function)
|
15
|
+
|
16
|
+
function_name = func_node.identifier.string_literal
|
17
|
+
unless spec.function(function_name.to_sym)
|
18
|
+
InvalidFunctionSyntaxError.new(func_node, spec, function_name)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# InvalidFunctionSyntaxError indicates a function name was invalid.
|
24
|
+
class InvalidFunctionSyntaxError < SyntaxError
|
25
|
+
# Gets the invalid function literal.
|
26
|
+
attr_reader :invalid_function
|
27
|
+
|
28
|
+
def initialize(function, spec, invalid_function)
|
29
|
+
super(function, spec)
|
30
|
+
@invalid_function = invalid_function
|
31
|
+
end
|
32
|
+
|
33
|
+
def msg
|
34
|
+
%(Invalid function "#{invalid_function}".)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Syntax
|
6
|
+
# InvalidRelationship represents a syntax error with invalid
|
7
|
+
# relationship according to a BEL specification.
|
8
|
+
class InvalidRelationship
|
9
|
+
include SyntaxFunction
|
10
|
+
|
11
|
+
private_class_method :new
|
12
|
+
|
13
|
+
def self.map(stmt_node, spec, _namespaces)
|
14
|
+
return nil unless stmt_node.is_a?(BELParser::Parsers::AST::Statement)
|
15
|
+
|
16
|
+
rel_name = stmt_node.relationship.string_literal
|
17
|
+
return nil if rel_name.nil?
|
18
|
+
|
19
|
+
unless spec.relationship(rel_name.to_sym)
|
20
|
+
InvalidRelationshipSyntaxError.new(stmt_node, spec, rel_name)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# InvalidRelationshipSyntaxError indicates a relationship was invalid.
|
26
|
+
class InvalidRelationshipSyntaxError < SyntaxError
|
27
|
+
# Gets the relationship literal that was invalid according to a
|
28
|
+
# BEL specification.
|
29
|
+
attr_reader :relationship
|
30
|
+
|
31
|
+
def initialize(stmt_node, spec, relationship)
|
32
|
+
super(stmt_node, spec)
|
33
|
+
@relationship = relationship
|
34
|
+
end
|
35
|
+
|
36
|
+
def msg
|
37
|
+
%(Invalid relationship "#{relationship}".)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Syntax
|
6
|
+
# Undefined namespace finds parameter prefixes that reference an
|
7
|
+
# undefined namespace.
|
8
|
+
class UndefinedNamespace
|
9
|
+
include SyntaxFunction
|
10
|
+
|
11
|
+
private_class_method :new
|
12
|
+
|
13
|
+
def self.map(prefix_node, spec, namespaces)
|
14
|
+
return nil unless prefix_node.is_a?(BELParser::Parsers::AST::Prefix)
|
15
|
+
|
16
|
+
prefix_identifier = prefix_node.identifier
|
17
|
+
return nil if prefix_identifier.nil?
|
18
|
+
|
19
|
+
prefix = prefix_identifier.string_literal
|
20
|
+
unless namespaces[prefix]
|
21
|
+
UndefinedNamespaceError.new(prefix_node, spec, prefix, namespaces)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# UndefinedNamespaceError indicates a parameter prefix is referencing
|
27
|
+
# an undefined namespace.
|
28
|
+
class UndefinedNamespaceError < SyntaxError
|
29
|
+
# Gets the invalid prefix.
|
30
|
+
attr_reader :invalid_prefix
|
31
|
+
# Gets the defined namespaces.
|
32
|
+
attr_reader :defined_namespaces
|
33
|
+
|
34
|
+
def initialize(prefix_node, spec, invalid_prefix, defined_namespaces)
|
35
|
+
super(prefix_node, spec)
|
36
|
+
@invalid_prefix = invalid_prefix
|
37
|
+
@defined_namespaces = defined_namespaces.dup
|
38
|
+
end
|
39
|
+
|
40
|
+
def msg
|
41
|
+
<<-MSG.gsub(/ {10}/, '')
|
42
|
+
Undefined namespace "#{invalid_prefix}".
|
43
|
+
Defined namespaces are: #{defined_namespaces.keys.join(', ')}
|
44
|
+
MSG
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
require 'bel_parser/quoting'
|
3
|
+
|
4
|
+
module BELParser
|
5
|
+
module Language
|
6
|
+
module Syntax
|
7
|
+
# Undefined namespace value finds values that are missing from their
|
8
|
+
# purported namespaces.
|
9
|
+
class UndefinedNamespaceValue
|
10
|
+
extend BELParser::Quoting
|
11
|
+
include SyntaxFunction
|
12
|
+
|
13
|
+
private_class_method :new
|
14
|
+
|
15
|
+
def self.map(value_node, spec, namespaces)
|
16
|
+
return nil unless value_node.is_a?(BELParser::Parsers::AST::Value)
|
17
|
+
return nil unless value_node.namespace
|
18
|
+
|
19
|
+
unless value_node.namespace_value
|
20
|
+
value = unquote(value_node.children[0].string_literal)
|
21
|
+
UndefinedNamespaceValueWarning.new(value_node, spec, value)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# UndefinedNamespaceValueWarning indicates a value is missing from a
|
27
|
+
# namespace.
|
28
|
+
class UndefinedNamespaceValueWarning < SyntaxWarning
|
29
|
+
# Gets the undefined value.
|
30
|
+
attr_reader :undefined_value
|
31
|
+
|
32
|
+
def initialize(value_node, spec, value)
|
33
|
+
super(value_node, spec)
|
34
|
+
@value = value
|
35
|
+
end
|
36
|
+
|
37
|
+
def msg
|
38
|
+
prefix = @expression_node.prefix
|
39
|
+
%(Undefined namespace value "#@value" for namespace "#{prefix}".)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'syntax_result'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Syntax
|
6
|
+
# SyntaxError defines a {SyntaxResult} that should be regarded as an
|
7
|
+
# error with the expression.
|
8
|
+
class SyntaxError < SyntaxResult
|
9
|
+
def initialize(expression_node, specification)
|
10
|
+
super(expression_node, specification)
|
11
|
+
end
|
12
|
+
|
13
|
+
# @abstract Subclass and override {#msg} to provide the message.
|
14
|
+
def msg
|
15
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
16
|
+
end
|
17
|
+
|
18
|
+
def success?
|
19
|
+
false
|
20
|
+
end
|
21
|
+
|
22
|
+
def failure?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
"Error: #{msg}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module BELParser
|
2
|
+
module Language
|
3
|
+
module Syntax
|
4
|
+
# SyntaxFunction provides a {#map} function that maps a
|
5
|
+
# {BELParser::Parsers::AST::Node} to one or more
|
6
|
+
# {SyntaxResult syntax results}.
|
7
|
+
module SyntaxFunction
|
8
|
+
# @abstract Include {SyntaxFunction} and override {#map} to check
|
9
|
+
# expression syntax.
|
10
|
+
def self.map(_expression_ast, _spec, _namespaces)
|
11
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module BELParser
|
2
|
+
module Language
|
3
|
+
module Syntax
|
4
|
+
# SyntaxResult represents the result of running a {SyntaxFunction}.
|
5
|
+
class SyntaxResult
|
6
|
+
attr_reader :expression_node, :specification
|
7
|
+
|
8
|
+
def initialize(expression_node, specification)
|
9
|
+
@expression_node = expression_node
|
10
|
+
@specification = specification
|
11
|
+
end
|
12
|
+
|
13
|
+
def success?
|
14
|
+
true
|
15
|
+
end
|
16
|
+
|
17
|
+
def failure?
|
18
|
+
false
|
19
|
+
end
|
20
|
+
|
21
|
+
# @abstract Subclass and override {#msg} to provide the message.
|
22
|
+
def msg
|
23
|
+
raise NotImplementedError, "#{__method__} is not implemented."
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
"Info: #{msg}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative 'syntax_result'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Syntax
|
6
|
+
# SyntaxWarning defines a {SyntaxResult} that should be regarded as an
|
7
|
+
# warning with the expression.
|
8
|
+
class SyntaxWarning < SyntaxResult
|
9
|
+
def initialize(expression_node, specification)
|
10
|
+
super(expression_node, specification)
|
11
|
+
end
|
12
|
+
|
13
|
+
def success?
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
def failure?
|
18
|
+
true
|
19
|
+
end
|
20
|
+
|
21
|
+
def to_s
|
22
|
+
"Warning: #{msg}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative 'function'
|
2
|
+
require_relative 'specification'
|
3
|
+
require_relative 'base_specification'
|
4
|
+
|
5
|
+
module BELParser
|
6
|
+
module Language
|
7
|
+
module Version1_0
|
8
|
+
# Version1_0 specification defines the BEL 1.0 specification.
|
9
|
+
class Specification < BaseSpecification
|
10
|
+
BaseSpecification.load_version_path('version1_0')
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
@version = '1.0'.freeze
|
14
|
+
load_language_constants(Version1_0)
|
15
|
+
freeze
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../function'
|
3
|
+
require_relative '../../signature'
|
4
|
+
require_relative '../../semantics'
|
5
|
+
|
6
|
+
module BELParser
|
7
|
+
module Language
|
8
|
+
module Version1_0
|
9
|
+
module Functions
|
10
|
+
# Abundance: Denotes the abundance of an entity
|
11
|
+
class Abundance
|
12
|
+
extend Function
|
13
|
+
|
14
|
+
SHORT = :a
|
15
|
+
LONG = :abundance
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1_0::ReturnTypes::Abundance
|
17
|
+
A_ENC = Version1_0::ValueEncodings::Abundance
|
18
|
+
DESCRIPTION = 'Denotes the abundance of an entity'.freeze
|
19
|
+
|
20
|
+
def self.short
|
21
|
+
SHORT
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.long
|
25
|
+
LONG
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.return_type
|
29
|
+
RETURN_TYPE
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.description
|
33
|
+
DESCRIPTION
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.signatures
|
37
|
+
SIGNATURES
|
38
|
+
end
|
39
|
+
|
40
|
+
module Signatures
|
41
|
+
# AbundanceSignature
|
42
|
+
class AbundanceSignature
|
43
|
+
extend BELParser::Language::Signature
|
44
|
+
|
45
|
+
private_class_method :new
|
46
|
+
|
47
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
48
|
+
term(
|
49
|
+
function(
|
50
|
+
identifier(
|
51
|
+
function_of(Abundance))),
|
52
|
+
argument(
|
53
|
+
parameter(
|
54
|
+
prefix(
|
55
|
+
has_namespace,
|
56
|
+
namespace_of(:*)),
|
57
|
+
value(
|
58
|
+
has_encoding,
|
59
|
+
encoding_of(A_ENC)))))
|
60
|
+
end
|
61
|
+
private_constant :AST
|
62
|
+
|
63
|
+
STRING_FORM = 'abundance(E:abundance)abundance'.freeze
|
64
|
+
private_constant :STRING_FORM
|
65
|
+
|
66
|
+
def self.semantic_ast
|
67
|
+
AST
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.string_form
|
71
|
+
STRING_FORM
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
SIGNATURES = Signatures.constants.map do |const|
|
77
|
+
Signatures.const_get(const)
|
78
|
+
end.freeze
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require_relative '../../version1_0'
|
2
|
+
require_relative '../../function'
|
3
|
+
require_relative '../../signature'
|
4
|
+
require_relative '../../semantics'
|
5
|
+
|
6
|
+
module BELParser
|
7
|
+
module Language
|
8
|
+
module Version1_0
|
9
|
+
module Functions
|
10
|
+
# BiologicalProcess: Denotes a process or population of events
|
11
|
+
class BiologicalProcess
|
12
|
+
extend Function
|
13
|
+
|
14
|
+
SHORT = :bp
|
15
|
+
LONG = :biologicalProcess
|
16
|
+
RETURN_TYPE = BELParser::Language::Version1_0::ReturnTypes::BiologicalProcess
|
17
|
+
B_ENC = Version1_0::ValueEncodings::BiologicalProcess
|
18
|
+
DESCRIPTION = 'Denotes a process or population of events'.freeze
|
19
|
+
|
20
|
+
def self.short
|
21
|
+
SHORT
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.long
|
25
|
+
LONG
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.return_type
|
29
|
+
RETURN_TYPE
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.description
|
33
|
+
DESCRIPTION
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.signatures
|
37
|
+
SIGNATURES
|
38
|
+
end
|
39
|
+
|
40
|
+
module Signatures
|
41
|
+
# BiologicalProcessSignature
|
42
|
+
class BiologicalProcessSignature
|
43
|
+
extend BELParser::Language::Signature
|
44
|
+
|
45
|
+
private_class_method :new
|
46
|
+
|
47
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
48
|
+
term(
|
49
|
+
function(
|
50
|
+
identifier(
|
51
|
+
function_of(BiologicalProcess))),
|
52
|
+
argument(
|
53
|
+
parameter(
|
54
|
+
prefix(
|
55
|
+
has_namespace,
|
56
|
+
namespace_of(:*)),
|
57
|
+
value(
|
58
|
+
has_encoding,
|
59
|
+
encoding_of(B_ENC)))))
|
60
|
+
end
|
61
|
+
private_constant :AST
|
62
|
+
|
63
|
+
STRING_FORM = 'biologicalProcess(E:biologicalProcess)biologicalProcess'.freeze
|
64
|
+
private_constant :STRING_FORM
|
65
|
+
|
66
|
+
def self.semantic_ast
|
67
|
+
AST
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.string_form
|
71
|
+
STRING_FORM
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
SIGNATURES = Signatures.constants.map do |const|
|
77
|
+
Signatures.const_get(const)
|
78
|
+
end.freeze
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|