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
|
+
module BEL::Translator::Plugins
|
2
|
+
# BELScript plugs a translator for BEL Script into bel.rb.
|
3
|
+
# Supports multiple BEL specifications by using the
|
4
|
+
# {BELParser::Language::ExpressionValidator expression validator}.
|
5
|
+
module BelScript
|
6
|
+
ID = :bel_script
|
7
|
+
NAME = 'BEL Script Translator'
|
8
|
+
DESCRIPTION = 'A translator that reads/writes BEL nanopubs to BEL Script.'
|
9
|
+
MEDIA_TYPES = %i(application/bel)
|
10
|
+
EXTENSIONS = %i(bel)
|
11
|
+
|
12
|
+
def self.create_translator(options = {})
|
13
|
+
require 'bel'
|
14
|
+
require_relative 'bel_script/translator'
|
15
|
+
BelScriptTranslator.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.id
|
19
|
+
ID
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.name
|
23
|
+
NAME
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.description
|
27
|
+
DESCRIPTION
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.media_types
|
31
|
+
MEDIA_TYPES
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.file_extensions
|
35
|
+
EXTENSIONS
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require_relative 'nanopub_serialization.rb'
|
2
|
+
|
3
|
+
# BEL Script nanopub serialization that groups nanopub by citation scoped to
|
4
|
+
# individual statement groups (i.e. BEL Script's +SET STATEMENT_GROUP+ and
|
5
|
+
# +UNSET STATEMENT_GROUP+).
|
6
|
+
#
|
7
|
+
# @example Citation serialization for a group of nanopub
|
8
|
+
# SET STATEMENT_GROUP = 12857727
|
9
|
+
# SET Citation = {"PubMed", "Journal...", "12857727", "2003-08-11", "", ""}
|
10
|
+
# SET Support = "USF1 and USF2 bound the IGF2R promoter in vitro, ..."
|
11
|
+
# SET CellLine = "MCF 10A"
|
12
|
+
# SET TextLocation = Abstract
|
13
|
+
# complex(p(HGNC:USF1),g(HGNC:IGF2R))
|
14
|
+
#
|
15
|
+
# complex(p(HGNC:USF2),g(HGNC:IGF2R))
|
16
|
+
#
|
17
|
+
# tscript(p(HGNC:USF2)) directlyIncreases r(HGNC:IGF2R)
|
18
|
+
#
|
19
|
+
# tscript(p(HGNC:USF1)) causesNoChange r(HGNC:IGF2R)
|
20
|
+
#
|
21
|
+
# SET Support = "c-Myc was present on the CDK4 promoter to the ..."
|
22
|
+
# complex(p(HGNC:MYC),g(HGNC:CDK4))
|
23
|
+
# UNSET STATEMENT_GROUP
|
24
|
+
module BEL::Translator::Plugins::BelScript::BelCitationSerialization
|
25
|
+
include BEL::Translator::Plugins::BelScript::NanopubSerialization
|
26
|
+
|
27
|
+
# Serialize the {BEL::Nanopub::Nanopub nanopub} to a BEL Script string.
|
28
|
+
#
|
29
|
+
# Includes +SET AnnotationName+ and +UNSET AnnotationName+ where needed in
|
30
|
+
# order to remove duplicating annotations.
|
31
|
+
#
|
32
|
+
# @param [BEL::Nanopub::Nanopub] nanopub the nanopub to serialize
|
33
|
+
# @return [String] the BEL Script string
|
34
|
+
def to_bel(nanopub)
|
35
|
+
bel = ''
|
36
|
+
|
37
|
+
citation = citation_value(nanopub)
|
38
|
+
support = support_value(nanopub)
|
39
|
+
annotations = annotation_values(nanopub)
|
40
|
+
|
41
|
+
current_annotations = {}.merge(annotations)
|
42
|
+
current_annotations[:Citation] = citation if citation
|
43
|
+
current_annotations[:Support] = support if support
|
44
|
+
|
45
|
+
if !nanopub.citation.id || nanopub.citation.id.empty?
|
46
|
+
citation_id = quote('')
|
47
|
+
else
|
48
|
+
citation_id = quote_if_needed(nanopub.citation.id)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Reset cumulative annotations if new citation.
|
52
|
+
if cumulative_citation == nil
|
53
|
+
bel << %Q{SET STATEMENT_GROUP = #{citation_id}\n}
|
54
|
+
cumulative_annotations.clear
|
55
|
+
elsif nanopub.citation != cumulative_citation
|
56
|
+
bel << %Q{UNSET STATEMENT_GROUP\n}
|
57
|
+
bel << "\n\n"
|
58
|
+
bel << %Q{SET STATEMENT_GROUP = #{citation_id}\n}
|
59
|
+
cumulative_annotations.clear
|
60
|
+
end
|
61
|
+
|
62
|
+
# Hang on to the last citation.
|
63
|
+
self.cumulative_citation = nanopub.citation
|
64
|
+
|
65
|
+
# UNSET unused annotations from previous nanopub.
|
66
|
+
(cumulative_annotations.keys - current_annotations.keys).each do |unset_key|
|
67
|
+
bel << "UNSET #{unset_key}\n"
|
68
|
+
cumulative_annotations.delete(unset_key)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Remove annotation if key/value was SET by a previous nanopub.
|
72
|
+
Hash[
|
73
|
+
cumulative_annotations.to_a & current_annotations.to_a
|
74
|
+
].each do |same_k, _|
|
75
|
+
current_annotations.delete(same_k)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Retain the current nanopub's annotation in cumulative set.
|
79
|
+
cumulative_annotations.merge!(current_annotations)
|
80
|
+
|
81
|
+
# SET Citation
|
82
|
+
citation = current_annotations.delete(:Citation)
|
83
|
+
if citation
|
84
|
+
bel << "SET Citation = {#{citation}}\n"
|
85
|
+
end
|
86
|
+
|
87
|
+
# SET Support
|
88
|
+
support = current_annotations.delete(:Support)
|
89
|
+
if support
|
90
|
+
bel << %Q{SET Support = "#{support}"\n}
|
91
|
+
end
|
92
|
+
|
93
|
+
# SET new or modified annotations
|
94
|
+
current_annotations.sort.each do |(name, value)|
|
95
|
+
bel << "SET #{name} = #{value}\n"
|
96
|
+
end
|
97
|
+
|
98
|
+
# Assert BEL statement
|
99
|
+
bel << "#{nanopub.bel_statement}\n"
|
100
|
+
|
101
|
+
# Separate nanopub by new line.
|
102
|
+
bel << "\n"
|
103
|
+
|
104
|
+
bel
|
105
|
+
end
|
106
|
+
|
107
|
+
private
|
108
|
+
|
109
|
+
# The cumulative citation that is active for the current nanopub. This is
|
110
|
+
# tracked in order to decide when to begin a new statement group.
|
111
|
+
attr_accessor :cumulative_citation
|
112
|
+
|
113
|
+
# Returns the cumulative +Hash+ of annotations. This *state* is used to keep
|
114
|
+
# track of the active, scoped annotations as nanopub is serialized.
|
115
|
+
def cumulative_annotations
|
116
|
+
@cumulative_annotations ||= {}
|
117
|
+
end
|
118
|
+
|
119
|
+
# Return BEL Script syntax that should completes the BEL Script document.
|
120
|
+
# For Citation serialization we will always end with the unset of a
|
121
|
+
# statement group.
|
122
|
+
def epilogue
|
123
|
+
%Q{UNSET STATEMENT_GROUP\n}
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require_relative 'nanopub_serialization'
|
2
|
+
|
3
|
+
# BEL Script nanopub serialization that writes each nanopub with their full
|
4
|
+
# set of annotations (i.e. includes all `SET` and necessary `UNSET` records).
|
5
|
+
# This style is more readable because it groups all set annotations near the
|
6
|
+
# BEL statement.
|
7
|
+
#
|
8
|
+
# @example Discrete serialization for a group of nanopub
|
9
|
+
# SET Citation = {"PubMed", "Journal...", "12857727", "2003-08-11", "", ""}
|
10
|
+
# SET Support = "USF1 and USF2 bound the IGF2R promoter in vitro, ..."
|
11
|
+
# SET CellLine = "MCF 10A"
|
12
|
+
# SET TextLocation = Abstract
|
13
|
+
# complex(p(HGNC:USF1),g(HGNC:IGF2R))
|
14
|
+
#
|
15
|
+
# SET Citation = {"PubMed", "Journal...", "12857727", "2003-08-11", "", ""}
|
16
|
+
# SET Support = "USF1 and USF2 bound the IGF2R promoter in vitro, ..."
|
17
|
+
# SET CellLine = "MCF 10A"
|
18
|
+
# SET TextLocation = Abstract
|
19
|
+
# complex(p(HGNC:USF2),g(HGNC:IGF2R))
|
20
|
+
#
|
21
|
+
# SET Citation = {"PubMed", "Journal...", "12857727", "2003-08-11", "", ""}
|
22
|
+
# SET Support = "USF1 and USF2 bound the IGF2R promoter in vitro, ..."
|
23
|
+
# SET CellLine = "MCF 10A"
|
24
|
+
# SET TextLocation = Abstract
|
25
|
+
# tscript(p(HGNC:USF2)) directlyIncreases r(HGNC:IGF2R)
|
26
|
+
#
|
27
|
+
# SET Citation = {"PubMed", "Journal...", "12857727", "2003-08-11", "", ""}
|
28
|
+
# SET Support = "USF1 and USF2 bound the IGF2R promoter in vitro, ..."
|
29
|
+
# SET CellLine = "MCF 10A"
|
30
|
+
# SET TextLocation = Abstract
|
31
|
+
# tscript(p(HGNC:USF1)) causesNoChange r(HGNC:IGF2R)
|
32
|
+
#
|
33
|
+
# SET Citation = {"PubMed", "Journal...", "12857727", "2003-08-11", "", ""}
|
34
|
+
# SET Support = "c-Myc was present on the CDK4 promoter to the ..."
|
35
|
+
# SET CellLine = "MCF 10A"
|
36
|
+
# SET TextLocation = Abstract
|
37
|
+
# complex(p(HGNC:MYC),g(HGNC:CDK4))
|
38
|
+
#
|
39
|
+
# UNSET CellLine
|
40
|
+
module BEL::Translator::Plugins::BelScript::BelDiscreteSerialization
|
41
|
+
include BEL::Translator::Plugins::BelScript::NanopubSerialization
|
42
|
+
|
43
|
+
# Serialize the {BEL::Nanopub::Nanopub nanopub} to a BEL Script string.
|
44
|
+
# Includes all necessary +SET AnnotationName+ and +UNSET AnnotationName+
|
45
|
+
# records around the BEL statement.
|
46
|
+
#
|
47
|
+
# @param [BEL::Nanopub::Nanopub] nanopub the nanopub to serialize
|
48
|
+
# @return [String] the BEL Script string
|
49
|
+
def to_bel(nanopub)
|
50
|
+
bel = ''
|
51
|
+
|
52
|
+
citation = citation_value(nanopub)
|
53
|
+
support = support_value(nanopub)
|
54
|
+
annotations = annotation_values(nanopub)
|
55
|
+
|
56
|
+
current_annotations = {}.merge(annotations)
|
57
|
+
current_annotations[:Citation] = citation if citation
|
58
|
+
current_annotations[:Support] = support if support
|
59
|
+
|
60
|
+
# UNSET unused annotations from previous nanopub.
|
61
|
+
(cumulative_annotations.keys - current_annotations.keys).each do |unset_key|
|
62
|
+
bel << "UNSET #{unset_key}\n"
|
63
|
+
cumulative_annotations.delete(unset_key)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Retain the current nanopub's annotation in cumulative set.
|
67
|
+
cumulative_annotations.merge!(current_annotations)
|
68
|
+
|
69
|
+
# SET Citation
|
70
|
+
citation = current_annotations.delete(:Citation)
|
71
|
+
if citation
|
72
|
+
bel << "SET Citation = {#{citation}}\n"
|
73
|
+
end
|
74
|
+
|
75
|
+
# SET Support
|
76
|
+
support = current_annotations.delete(:Support)
|
77
|
+
if support
|
78
|
+
bel << %Q{SET Support = "#{support}"\n}
|
79
|
+
end
|
80
|
+
|
81
|
+
# SET new or modified annotations
|
82
|
+
current_annotations.sort.each do |(name, value)|
|
83
|
+
bel << "SET #{name} = #{value}\n"
|
84
|
+
end
|
85
|
+
|
86
|
+
# Assert BEL statement
|
87
|
+
bel << "#{nanopub.bel_statement}\n"
|
88
|
+
|
89
|
+
# Separate nanopub by new line.
|
90
|
+
bel << "\n"
|
91
|
+
|
92
|
+
bel
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
# Returns the cumulative +Hash+ of annotations. This *state* is used to keep
|
98
|
+
# track of the active, scoped annotations as nanopub is serialized.
|
99
|
+
def cumulative_annotations
|
100
|
+
@cumulative_annotations ||= {}
|
101
|
+
end
|
102
|
+
|
103
|
+
# Return BEL Script syntax that completes the BEL Script document.
|
104
|
+
# The empty string is returned since no ending syntax is necessary when
|
105
|
+
# serializing each nanopub discretely.
|
106
|
+
def epilogue
|
107
|
+
""
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require_relative 'nanopub_serialization.rb'
|
2
|
+
|
3
|
+
# BEL Script nanopub serialization that writes nanopubs sequentially while
|
4
|
+
# including only the necessary unsetting of annotations (i.e. BEL Script's
|
5
|
+
# +UNSET AnnotationName+ syntax).
|
6
|
+
#
|
7
|
+
# @example Top-down serialization for a group of nanopubs
|
8
|
+
# SET Citation = {"PubMed", "Journal...", "12857727", "2003-08-11", "", ""}
|
9
|
+
# SET Support = "USF1 and USF2 bound the IGF2R promoter in vitro, ..."
|
10
|
+
# SET CellLine = "MCF 10A"
|
11
|
+
# SET TextLocation = Abstract
|
12
|
+
# complex(p(HGNC:USF1),g(HGNC:IGF2R))
|
13
|
+
#
|
14
|
+
# complex(p(HGNC:USF2),g(HGNC:IGF2R))
|
15
|
+
#
|
16
|
+
# tscript(p(HGNC:USF2)) directlyIncreases r(HGNC:IGF2R)
|
17
|
+
#
|
18
|
+
# tscript(p(HGNC:USF1)) causesNoChange r(HGNC:IGF2R)
|
19
|
+
#
|
20
|
+
# SET Support = "c-Myc was present on the CDK4 promoter to the ..."
|
21
|
+
# complex(p(HGNC:MYC),g(HGNC:CDK4))
|
22
|
+
#
|
23
|
+
# UNSET CellLine
|
24
|
+
module BEL::Translator::Plugins::BelScript::BelTopDownSerialization
|
25
|
+
include BEL::Translator::Plugins::BelScript::NanopubSerialization
|
26
|
+
|
27
|
+
# Serialize the {BEL::Nanopub::Nanopub nanopub} to a BEL Script string.
|
28
|
+
# Includes all necessary +SET AnnotationName+ and +UNSET AnnotationName+
|
29
|
+
# records within the scope of a citation's statement group.
|
30
|
+
#
|
31
|
+
# @param [BEL::Nanopub::Nanopub] nanopub the nanopub to serialize
|
32
|
+
# @return [String] the BEL Script string
|
33
|
+
def to_bel(nanopub)
|
34
|
+
bel = ''
|
35
|
+
|
36
|
+
citation = citation_value(nanopub)
|
37
|
+
support = support_value(nanopub)
|
38
|
+
annotations = annotation_values(nanopub)
|
39
|
+
|
40
|
+
current_annotations = {}.merge(annotations)
|
41
|
+
current_annotations[:Citation] = citation if citation
|
42
|
+
current_annotations[:Support] = support if support
|
43
|
+
|
44
|
+
# UNSET unused annotations from previous nanopub.
|
45
|
+
(cumulative_annotations.keys - current_annotations.keys).each do |unset_key|
|
46
|
+
bel << "UNSET #{unset_key}\n"
|
47
|
+
cumulative_annotations.delete(unset_key)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Remove annotation if key/value was SET by a previous nanopub.
|
51
|
+
Hash[
|
52
|
+
cumulative_annotations.to_a & current_annotations.to_a
|
53
|
+
].each do |same_k, _|
|
54
|
+
current_annotations.delete(same_k)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Retain the current nanopub's annotation in cumulative set.
|
58
|
+
cumulative_annotations.merge!(current_annotations)
|
59
|
+
|
60
|
+
# SET Citation
|
61
|
+
citation = current_annotations.delete(:Citation)
|
62
|
+
if citation
|
63
|
+
bel << "SET Citation = {#{citation}}\n"
|
64
|
+
end
|
65
|
+
|
66
|
+
# SET Support
|
67
|
+
support = current_annotations.delete(:Support)
|
68
|
+
if support
|
69
|
+
bel << %Q{SET Support = "#{support}"\n}
|
70
|
+
end
|
71
|
+
|
72
|
+
# SET new or modified annotations
|
73
|
+
current_annotations.sort.each do |(name, value)|
|
74
|
+
bel << "SET #{name} = #{value}\n"
|
75
|
+
end
|
76
|
+
|
77
|
+
# Assert BEL statement
|
78
|
+
bel << "#{nanopub.bel_statement}\n"
|
79
|
+
|
80
|
+
# Separate nanopub by new line.
|
81
|
+
bel << "\n"
|
82
|
+
|
83
|
+
bel
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
# Returns the cumulative +Hash+ of annotations. This *state* is used to keep
|
89
|
+
# track of the active, scoped annotations as nanopub is serialized.
|
90
|
+
def cumulative_annotations
|
91
|
+
@cumulative_annotations ||= {}
|
92
|
+
end
|
93
|
+
|
94
|
+
# Return BEL Script syntax that completes the BEL Script document.
|
95
|
+
# The empty string is returned since no ending syntax is necessary when
|
96
|
+
# serializing in a top-down manner.
|
97
|
+
def epilogue
|
98
|
+
""
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'bel/quoting'
|
2
|
+
|
3
|
+
# Serializing of common {BEL::Nanopub::Nanopub nanopub} components to BEL
|
4
|
+
# Script syntax.
|
5
|
+
#
|
6
|
+
# @abstract
|
7
|
+
module BEL::Translator::Plugins::BelScript::NanopubSerialization
|
8
|
+
include BEL::Quoting
|
9
|
+
|
10
|
+
# Serialize the {BEL::Nanopub::Nanopub nanopub} to a BEL Script string.
|
11
|
+
#
|
12
|
+
# @param [BEL::Nanopub::Nanopub] nanopub the nanopub to serialize
|
13
|
+
# @return [String] the BEL Script string
|
14
|
+
# @abstract Include and override {#to_bel} to implement serialization
|
15
|
+
# {BEL::Nanopub::Nanopub nanopub} to BEL Script
|
16
|
+
def to_bel(nanopub)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Return BEL Script syntax that completes the BEL Script document.
|
20
|
+
#
|
21
|
+
# @abstract
|
22
|
+
def epilogue
|
23
|
+
raise NotImplementedError.new("#{self.class}#epilogue")
|
24
|
+
end
|
25
|
+
|
26
|
+
protected
|
27
|
+
|
28
|
+
def citation_value(nanopub)
|
29
|
+
citation = nanopub.citation
|
30
|
+
|
31
|
+
return nil unless citation && citation.valid?
|
32
|
+
|
33
|
+
values = citation.to_a
|
34
|
+
values.map! { |v|
|
35
|
+
v ||= ""
|
36
|
+
if v.respond_to?(:each)
|
37
|
+
%Q{"#{v.join('|')}"}
|
38
|
+
else
|
39
|
+
%Q{"#{v}"}
|
40
|
+
end
|
41
|
+
}
|
42
|
+
values.join(', ')
|
43
|
+
end
|
44
|
+
|
45
|
+
def support_value(nanopub)
|
46
|
+
support = nanopub.support
|
47
|
+
|
48
|
+
return nil unless support && support.value
|
49
|
+
|
50
|
+
value = support.value
|
51
|
+
value.gsub!("\n", "")
|
52
|
+
value.gsub!('"', %Q{\\"})
|
53
|
+
value
|
54
|
+
end
|
55
|
+
|
56
|
+
def annotation_values(nanopub)
|
57
|
+
experiment_context = nanopub.experiment_context
|
58
|
+
|
59
|
+
return {} unless experiment_context
|
60
|
+
|
61
|
+
Hash[
|
62
|
+
experiment_context.
|
63
|
+
sort_by { |obj| obj[:name].to_sym }.
|
64
|
+
map { |obj|
|
65
|
+
name = obj[:name].to_sym
|
66
|
+
value = obj[:value]
|
67
|
+
|
68
|
+
value_s =
|
69
|
+
if value.respond_to? :map
|
70
|
+
"{#{value.map { |v| quote(v) }.join(', ')}}"
|
71
|
+
else
|
72
|
+
quote(value)
|
73
|
+
end
|
74
|
+
|
75
|
+
[name, value_s]
|
76
|
+
}
|
77
|
+
]
|
78
|
+
end
|
79
|
+
end
|