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