bel 0.6.0 → 0.7.0
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 +4 -4
 - data/CHANGELOG.md +11 -0
 - data/README.md +3 -3
 - data/bel.gemspec +1 -0
 - data/bin/bel +91 -24
 - data/bin/bel2rdf.rb +24 -2
 - data/lib/bel/examples/remap-file-example.yml +50 -0
 - data/lib/bel/quoting.rb +0 -2
 - data/lib/bel/translator/plugins/bel_script/bel_citation_serialization.rb +8 -2
 - data/lib/bel/translator/plugins/rdf/config/default_prefixes.yml +6 -0
 - data/lib/bel/translator/plugins/rdf/monkey_patch.rb +53 -18
 - data/lib/bel/translator/plugins/rdf/translator.rb +27 -1
 - data/lib/bel/translator/plugins/xbel/xbel_yielder.rb +1 -0
 - data/lib/bel/version.rb +1 -1
 - metadata +4 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: f60c8d511672752ce1913092b9c8f11bce1afcf7
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 7af3edc1edfb6d481168297a4799af8c7c9e0128
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ea8b5f5950c41e93faae0dc4e22868e6234703bfbd8721f278653b4eb47e62815a034b5baa1d74f08908c80cd335aeeb91f3e6394fbdccfcf2ad9ba7f4ca93bc
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f10f81d5c54a55d2c359c30b62af642de45ff3b479db9b81f096def42c881abd76271efe5b00dfbbfec862805fea34111ffb22634a6a337703076eba729008eb
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -3,6 +3,14 @@ All notable changes to bel.rb will be documented in this file. The curated log b 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            This project adheres to [Semantic Versioning](http://semver.org/).
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
      
 6 
     | 
    
         
            +
            ## [0.7.0][0.7.0] - 2016-04-12
         
     | 
| 
      
 7 
     | 
    
         
            +
            ### Fixed
         
     | 
| 
      
 8 
     | 
    
         
            +
            - RDF translation allows for RDF prefixes to be used. Default RDF prefixes are provided ([Issue #69][69]).
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            ### Added
         
     | 
| 
      
 11 
     | 
    
         
            +
            - Annotation and Namespace definitions can now be remapped using a YAML file ([Issue #92][92]).
         
     | 
| 
      
 12 
     | 
    
         
            +
            - An example remap file can be obtained from the command `bel remapfile` ([Issue #92][92]).
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       6 
14 
     | 
    
         
             
            ## [0.6.0][0.6.0] - 2016-03-15
         
     | 
| 
       7 
15 
     | 
    
         
             
            ### Fixed
         
     | 
| 
       8 
16 
     | 
    
         
             
            - Serialization of BEL Script / XBEL can produce incorrect annotation and namespaces references ([Issue #111][111]).
         
     | 
| 
         @@ -91,6 +99,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). 
     | 
|
| 
       91 
99 
     | 
    
         
             
            ### Added
         
     | 
| 
       92 
100 
     | 
    
         
             
            - Development gem dependencies (i.e. byebug, pry, pry-byebug) for debugging.
         
     | 
| 
       93 
101 
     | 
    
         | 
| 
      
 102 
     | 
    
         
            +
            [0.7.0]:    https://github.com/OpenBEL/bel.rb/compare/0.6.0...0.7.0
         
     | 
| 
       94 
103 
     | 
    
         
             
            [0.6.0]:    https://github.com/OpenBEL/bel.rb/compare/0.5.0...0.6.0
         
     | 
| 
       95 
104 
     | 
    
         
             
            [0.5.0]:    https://github.com/OpenBEL/bel.rb/compare/0.4.2...0.5.0
         
     | 
| 
       96 
105 
     | 
    
         
             
            [0.4.2]:    https://github.com/OpenBEL/bel.rb/compare/0.4.1...0.4.2
         
     | 
| 
         @@ -108,12 +117,14 @@ This project adheres to [Semantic Versioning](http://semver.org/). 
     | 
|
| 
       108 
117 
     | 
    
         
             
            [64]:       https://github.com/OpenBEL/bel.rb/issues/64
         
     | 
| 
       109 
118 
     | 
    
         
             
            [66]:       https://github.com/OpenBEL/bel.rb/issues/66
         
     | 
| 
       110 
119 
     | 
    
         
             
            [68]:       https://github.com/OpenBEL/bel.rb/issues/68
         
     | 
| 
      
 120 
     | 
    
         
            +
            [69]:       https://github.com/OpenBEL/bel.rb/issues/69
         
     | 
| 
       111 
121 
     | 
    
         
             
            [71]:       https://github.com/OpenBEL/bel.rb/issues/71
         
     | 
| 
       112 
122 
     | 
    
         
             
            [82]:       https://github.com/OpenBEL/bel.rb/issues/82
         
     | 
| 
       113 
123 
     | 
    
         
             
            [85]:       https://github.com/OpenBEL/bel.rb/issues/85
         
     | 
| 
       114 
124 
     | 
    
         
             
            [86]:       https://github.com/OpenBEL/bel.rb/pull/86
         
     | 
| 
       115 
125 
     | 
    
         
             
            [90]:       https://github.com/OpenBEL/bel.rb/issues/90
         
     | 
| 
       116 
126 
     | 
    
         
             
            [91]:       https://github.com/OpenBEL/bel.rb/issues/91
         
     | 
| 
      
 127 
     | 
    
         
            +
            [92]:       https://github.com/OpenBEL/bel.rb/issues/92
         
     | 
| 
       117 
128 
     | 
    
         
             
            [93]:       https://github.com/OpenBEL/bel.rb/issues/93
         
     | 
| 
       118 
129 
     | 
    
         
             
            [94]:       https://github.com/OpenBEL/bel.rb/issues/94
         
     | 
| 
       119 
130 
     | 
    
         
             
            [95]:       https://github.com/OpenBEL/bel.rb/issues/95
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -71,7 +71,6 @@ the root of the bel.rb tree: 
     | 
|
| 
       71 
71 
     | 
    
         
             
                export BR_ISOLATE="yes"
         
     | 
| 
       72 
72 
     | 
    
         
             
            ```
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
74 
     | 
    
         
             
            ## branches
         
     | 
| 
       76 
75 
     | 
    
         | 
| 
       77 
76 
     | 
    
         
             
            - master branch
         
     | 
| 
         @@ -108,10 +107,12 @@ the root of the bel.rb tree: 
     | 
|
| 
       108 
107 
     | 
    
         
             
                  translate
         
     | 
| 
       109 
108 
     | 
    
         
             
                  upgrade
         
     | 
| 
       110 
109 
     | 
    
         
             
                  plugins
         
     | 
| 
      
 110 
     | 
    
         
            +
                  generate
         
     | 
| 
      
 111 
     | 
    
         
            +
                  remapfile
         
     | 
| 
       111 
112 
     | 
    
         | 
| 
       112 
113 
     | 
    
         | 
| 
       113 
114 
     | 
    
         
             
                bel
         
     | 
| 
       114 
     | 
    
         
            -
                Copyright (C)  
     | 
| 
      
 115 
     | 
    
         
            +
                Copyright (C) 2016 OpenBEL
         
     | 
| 
       115 
116 
     | 
    
         
             
                Apache License, Version 2.0, January 2004
         
     | 
| 
       116 
117 
     | 
    
         
             
                http://www.apache.org/licenses/
         
     | 
| 
       117 
118 
     | 
    
         | 
| 
         @@ -121,7 +122,6 @@ the root of the bel.rb tree: 
     | 
|
| 
       121 
122 
     | 
    
         
             
                  -h, --help       Show this message
         
     | 
| 
       122 
123 
     | 
    
         
             
            ```
         
     | 
| 
       123 
124 
     | 
    
         | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
       125 
125 
     | 
    
         
             
            **bel2rdf.rb**: Converts BEL to RDF.
         
     | 
| 
       126 
126 
     | 
    
         | 
| 
       127 
127 
     | 
    
         
             
            ```bash
         
     | 
    
        data/bel.gemspec
    CHANGED
    
    
    
        data/bin/bel
    CHANGED
    
    | 
         @@ -7,7 +7,7 @@ require 'bel/vendor/trollop' 
     | 
|
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            VERSION_BANNER = <<-VERSION
         
     | 
| 
       9 
9 
     | 
    
         
             
            bel #{BEL::VERSION}
         
     | 
| 
       10 
     | 
    
         
            -
            Copyright (C)  
     | 
| 
      
 10 
     | 
    
         
            +
            Copyright (C) #{Time.now.year} OpenBEL
         
     | 
| 
       11 
11 
     | 
    
         
             
            Apache License, Version 2.0, January 2004
         
     | 
| 
       12 
12 
     | 
    
         
             
            http://www.apache.org/licenses/
         
     | 
| 
       13 
13 
     | 
    
         
             
            VERSION
         
     | 
| 
         @@ -64,27 +64,41 @@ Subcommands: 
     | 
|
| 
       64 
64 
     | 
    
         
             
                        synopsis "Converts BEL to RDF."
         
     | 
| 
       65 
65 
     | 
    
         
             
                        usage    "[OPTIONS]... bel2rdf [OPTIONS]"
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                        opt      :bel, 
     | 
| 
       68 
     | 
    
         
            -
                                 :type 
     | 
| 
       69 
     | 
    
         
            -
                                 :long 
     | 
| 
       70 
     | 
    
         
            -
                                 :short 
     | 
| 
       71 
     | 
    
         
            -
                                 :default 
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                        opt      :format, 
     | 
| 
       74 
     | 
    
         
            -
                                 :type 
     | 
| 
       75 
     | 
    
         
            -
                                 :long 
     | 
| 
       76 
     | 
    
         
            -
                                 :short 
     | 
| 
       77 
     | 
    
         
            -
                                 :default 
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                        opt      :schema, 
     | 
| 
       80 
     | 
    
         
            -
                                 :long 
     | 
| 
       81 
     | 
    
         
            -
                                 :short 
     | 
| 
       82 
     | 
    
         
            -
                                 :default 
     | 
| 
      
 67 
     | 
    
         
            +
                        opt      :bel,                 'The BEL script to parse and output (Defaults to STDIN).',
         
     | 
| 
      
 68 
     | 
    
         
            +
                                 :type              => String,
         
     | 
| 
      
 69 
     | 
    
         
            +
                                 :long              => :bel,
         
     | 
| 
      
 70 
     | 
    
         
            +
                                 :short             => :b,
         
     | 
| 
      
 71 
     | 
    
         
            +
                                 :default           => nil
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                        opt      :format,              'The RDF format to output.',
         
     | 
| 
      
 74 
     | 
    
         
            +
                                 :type              => String,
         
     | 
| 
      
 75 
     | 
    
         
            +
                                 :long              => :format,
         
     | 
| 
      
 76 
     | 
    
         
            +
                                 :short             => :f,
         
     | 
| 
      
 77 
     | 
    
         
            +
                                 :default           => 'ntriples'
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                        opt      :schema,              'Includes the BEL RDFS schema in RDF output.',
         
     | 
| 
      
 80 
     | 
    
         
            +
                                 :long              => :schema,
         
     | 
| 
      
 81 
     | 
    
         
            +
                                 :short             => :s,
         
     | 
| 
      
 82 
     | 
    
         
            +
                                 :default           => false
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                        opt      :'rdf-prefix-file',   "A YAML file mapping prefix containing key/value pairs. The key is an RDF prefix to use in the RDF output; the value is the RDF URI for that prefix. For example, belv: 'http://www.openbel.org/vocabulary/'",
         
     | 
| 
      
 85 
     | 
    
         
            +
                                 :type              => String,
         
     | 
| 
      
 86 
     | 
    
         
            +
                                 :long              => :'rdf-prefix-file',
         
     | 
| 
      
 87 
     | 
    
         
            +
                                 :short             => :p,
         
     | 
| 
      
 88 
     | 
    
         
            +
                                 :default           => nil
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                        opt      :'remap-file',        'A YAML file that remaps annotation and namespace definitions. Run "bel remapfile" to get an example of the YAML format.',
         
     | 
| 
      
 91 
     | 
    
         
            +
                                 :type              => String,
         
     | 
| 
      
 92 
     | 
    
         
            +
                                 :long              => :'remap-file',
         
     | 
| 
      
 93 
     | 
    
         
            +
                                 :short             => :r,
         
     | 
| 
      
 94 
     | 
    
         
            +
                                 :default           => nil
         
     | 
| 
       83 
95 
     | 
    
         
             
                      end
         
     | 
| 
       84 
96 
     | 
    
         | 
| 
       85 
     | 
    
         
            -
                    ARGV.concat(['--bel', 
     | 
| 
       86 
     | 
    
         
            -
                    ARGV.concat(['--format', 
     | 
| 
       87 
     | 
    
         
            -
                    ARGV.concat(['--schema', 
     | 
| 
      
 97 
     | 
    
         
            +
                    ARGV.concat(['--bel',             parsed_options[:bel]])               if parsed_options[:bel]
         
     | 
| 
      
 98 
     | 
    
         
            +
                    ARGV.concat(['--format',          parsed_options[:format]])            if parsed_options[:format]
         
     | 
| 
      
 99 
     | 
    
         
            +
                    ARGV.concat(['--schema',          parsed_options[:schema]])            if parsed_options[:schema]
         
     | 
| 
      
 100 
     | 
    
         
            +
                    ARGV.concat(['--rdf-prefix-file', parsed_options[:'rdf-prefix-file']]) if parsed_options[:'rdf-prefix-file']
         
     | 
| 
      
 101 
     | 
    
         
            +
                    ARGV.concat(['--remap-file',      parsed_options[:'remap-file']])      if parsed_options[:'remap-file']
         
     | 
| 
       88 
102 
     | 
    
         | 
| 
       89 
103 
     | 
    
         
             
                    require_relative 'bel2rdf'
         
     | 
| 
       90 
104 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -234,7 +248,32 @@ Subcommands: 
     | 
|
| 
       234 
248 
     | 
    
         
             
                    parsed_options =
         
     | 
| 
       235 
249 
     | 
    
         
             
                      Trollop::options do
         
     | 
| 
       236 
250 
     | 
    
         
             
                        synopsis "Translates BEL evidence between formats using translator plugins."
         
     | 
| 
       237 
     | 
    
         
            -
                        usage     
     | 
| 
      
 251 
     | 
    
         
            +
                        usage    <<-DOC.gsub(/^ {14}/, '')
         
     | 
| 
      
 252 
     | 
    
         
            +
                          [OPTIONS]... translate [OPTIONS] FROM_TRANSLATOR TO_TRANSLATOR
         
     | 
| 
      
 253 
     | 
    
         
            +
             
     | 
| 
      
 254 
     | 
    
         
            +
                          From options:
         
     | 
| 
      
 255 
     | 
    
         
            +
                            None
         
     | 
| 
      
 256 
     | 
    
         
            +
                          To options:
         
     | 
| 
      
 257 
     | 
    
         
            +
                            streaming=true|false
         
     | 
| 
      
 258 
     | 
    
         
            +
                              Set to "true" to enable streaming writes for translators that support it.
         
     | 
| 
      
 259 
     | 
    
         
            +
                              Set to "false" to disable streaming.
         
     | 
| 
      
 260 
     | 
    
         
            +
                            serialization=discrete|topdown|citation [BEL Script translator]
         
     | 
| 
      
 261 
     | 
    
         
            +
                              Set to "discrete" to render each statement with its annotations.
         
     | 
| 
      
 262 
     | 
    
         
            +
                              Set to "topdown" to set/unset annotations as needed.
         
     | 
| 
      
 263 
     | 
    
         
            +
                              Set to "citation" to use statement groups for each citation.
         
     | 
| 
      
 264 
     | 
    
         
            +
                            write_schema=true|false
         
     | 
| 
      
 265 
     | 
    
         
            +
                              Set to "true" to write RDFS schema for RDF-based translators.
         
     | 
| 
      
 266 
     | 
    
         
            +
                              Set to "false" to omit RDFS schema for RDF-based translators.
         
     | 
| 
      
 267 
     | 
    
         
            +
                            void_dataset_uri=URI
         
     | 
| 
      
 268 
     | 
    
         
            +
                              The VoID dataset URI to use for the dataset of an RDF-based translation.
         
     | 
| 
      
 269 
     | 
    
         
            +
                            rdf_prefix_file=FILE
         
     | 
| 
      
 270 
     | 
    
         
            +
                              A YAML file mapping prefix containing key/value pairs. The key is an
         
     | 
| 
      
 271 
     | 
    
         
            +
                              RDF prefix to use in the RDF output; the value is the RDF URI for that
         
     | 
| 
      
 272 
     | 
    
         
            +
                              prefix. For example, belv: 'http://www.openbel.org/vocabulary/'.
         
     | 
| 
      
 273 
     | 
    
         
            +
                            remap_file=FILE
         
     | 
| 
      
 274 
     | 
    
         
            +
                              A YAML file that remaps annotation and namespace definitions.
         
     | 
| 
      
 275 
     | 
    
         
            +
                              Run "bel remapfile" to get an example of the YAML format.
         
     | 
| 
      
 276 
     | 
    
         
            +
                        DOC
         
     | 
| 
       238 
277 
     | 
    
         | 
| 
       239 
278 
     | 
    
         
             
                        opt      :'input-file', 'The file containing evidence data to translate. If not specified the default is to read from STDIN.',
         
     | 
| 
       240 
279 
     | 
    
         
             
                                 :type    => String,
         
     | 
| 
         @@ -297,8 +336,10 @@ Subcommands: 
     | 
|
| 
       297 
336 
     | 
    
         
             
                      Trollop::educate
         
     | 
| 
       298 
337 
     | 
    
         
             
                    end
         
     | 
| 
       299 
338 
     | 
    
         | 
| 
       300 
     | 
    
         
            -
                     
     | 
| 
       301 
     | 
    
         
            -
                     
     | 
| 
      
 339 
     | 
    
         
            +
                    # XXX Merge conflicts.
         
     | 
| 
      
 340 
     | 
    
         
            +
                    options = {}.
         
     | 
| 
      
 341 
     | 
    
         
            +
                      merge(map_kv_options(parsed_options, :'from-option')).
         
     | 
| 
      
 342 
     | 
    
         
            +
                      merge(map_kv_options(parsed_options, :'to-option'))
         
     | 
| 
       302 
343 
     | 
    
         | 
| 
       303 
344 
     | 
    
         
             
                    begin
         
     | 
| 
       304 
345 
     | 
    
         
             
                      BEL.translate(
         
     | 
| 
         @@ -306,7 +347,7 @@ Subcommands: 
     | 
|
| 
       306 
347 
     | 
    
         
             
                        from_format,
         
     | 
| 
       307 
348 
     | 
    
         
             
                        to_format,
         
     | 
| 
       308 
349 
     | 
    
         
             
                        $stdout,
         
     | 
| 
       309 
     | 
    
         
            -
                         
     | 
| 
      
 350 
     | 
    
         
            +
                        options
         
     | 
| 
       310 
351 
     | 
    
         
             
                      )
         
     | 
| 
       311 
352 
     | 
    
         
             
                    ensure
         
     | 
| 
       312 
353 
     | 
    
         
             
                      $stdout.close
         
     | 
| 
         @@ -490,6 +531,32 @@ Subcommands: 
     | 
|
| 
       490 
531 
     | 
    
         
             
                    translator.write(random_data, $stdout)
         
     | 
| 
       491 
532 
     | 
    
         
             
                  end
         
     | 
| 
       492 
533 
     | 
    
         
             
                end
         
     | 
| 
      
 534 
     | 
    
         
            +
             
     | 
| 
      
 535 
     | 
    
         
            +
                class RemapfileCommand
         
     | 
| 
      
 536 
     | 
    
         
            +
             
     | 
| 
      
 537 
     | 
    
         
            +
                  def initialize(global_options)
         
     | 
| 
      
 538 
     | 
    
         
            +
                    @global_options = global_options
         
     | 
| 
      
 539 
     | 
    
         
            +
                  end
         
     | 
| 
      
 540 
     | 
    
         
            +
             
     | 
| 
      
 541 
     | 
    
         
            +
                  def run
         
     | 
| 
      
 542 
     | 
    
         
            +
                    options = Trollop::options do
         
     | 
| 
      
 543 
     | 
    
         
            +
                      synopsis "Writes an example resource remap YAML file."
         
     | 
| 
      
 544 
     | 
    
         
            +
                      usage    "[OPTIONS]... remapfile [OPTIONS]"
         
     | 
| 
      
 545 
     | 
    
         
            +
                    end
         
     | 
| 
      
 546 
     | 
    
         
            +
             
     | 
| 
      
 547 
     | 
    
         
            +
                    example_file_path =
         
     | 
| 
      
 548 
     | 
    
         
            +
                      File.join(
         
     | 
| 
      
 549 
     | 
    
         
            +
                        File.expand_path(File.dirname(__FILE__)),
         
     | 
| 
      
 550 
     | 
    
         
            +
                        '..',
         
     | 
| 
      
 551 
     | 
    
         
            +
                        'lib',
         
     | 
| 
      
 552 
     | 
    
         
            +
                        'bel',
         
     | 
| 
      
 553 
     | 
    
         
            +
                        'examples',
         
     | 
| 
      
 554 
     | 
    
         
            +
                        'remap-file-example.yml')
         
     | 
| 
      
 555 
     | 
    
         
            +
                    File.open(example_file_path) do |f|
         
     | 
| 
      
 556 
     | 
    
         
            +
                      $stdout.write(f.read)
         
     | 
| 
      
 557 
     | 
    
         
            +
                    end
         
     | 
| 
      
 558 
     | 
    
         
            +
                  end
         
     | 
| 
      
 559 
     | 
    
         
            +
                end
         
     | 
| 
       493 
560 
     | 
    
         
             
              end
         
     | 
| 
       494 
561 
     | 
    
         
             
            end
         
     | 
| 
       495 
562 
     | 
    
         | 
    
        data/bin/bel2rdf.rb
    CHANGED
    
    | 
         @@ -46,15 +46,35 @@ OptionParser.new do |opts| 
     | 
|
| 
       46 
46 
     | 
    
         
             
                options[:format] = format.downcase
         
     | 
| 
       47 
47 
     | 
    
         
             
              end
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              opts.on('-p', '--rdf-prefix-file FILE', "A YAML file mapping prefix containing key/value pairs. The key is an RDF prefix to use in the RDF output; the value is the RDF URI for that prefix. For example, belv: 'http://www.openbel.org/vocabulary/'.") do |prefix_file|
         
     | 
| 
      
 51 
     | 
    
         
            +
                options[:rdf_prefix_file] = prefix_file
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
       49 
54 
     | 
    
         
             
              opts.on('-s', '--[no-]schema', 'Write BEL RDF schema? The default is to include the schema in the output.') do |schema|
         
     | 
| 
       50 
55 
     | 
    
         
             
                options[:schema] = schema
         
     | 
| 
       51 
56 
     | 
    
         
             
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              opts.on('-r', '--remap-file FILE', 'A YAML file that remaps annotation and namespace definitions. Run "bel remapfile" to get an example of the YAML format.') do |remap_file|
         
     | 
| 
      
 59 
     | 
    
         
            +
                options[:remap_file] = remap_file
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
       52 
61 
     | 
    
         
             
            end.parse!
         
     | 
| 
       53 
62 
     | 
    
         | 
| 
       54 
63 
     | 
    
         
             
            if options[:bel] and not File.exists? options[:bel]
         
     | 
| 
       55 
64 
     | 
    
         
             
              $stderr.puts "No file for bel, #{options[:bel]}"
         
     | 
| 
       56 
65 
     | 
    
         
             
              exit 1
         
     | 
| 
       57 
66 
     | 
    
         
             
            end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            if options[:rdf_prefix_file] and not File.exists? options[:rdf_prefix_file]
         
     | 
| 
      
 69 
     | 
    
         
            +
              $stderr.puts "No file for rdf_prefix_file, #{options[:rdf_prefix_file]}"
         
     | 
| 
      
 70 
     | 
    
         
            +
              exit 1
         
     | 
| 
      
 71 
     | 
    
         
            +
            end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            if options[:remap_file] and not File.exist? options[:remap_file]
         
     | 
| 
      
 74 
     | 
    
         
            +
              $stderr.puts "No file for remap_file, #{options[:remap_file]}"
         
     | 
| 
      
 75 
     | 
    
         
            +
              exit 1
         
     | 
| 
      
 76 
     | 
    
         
            +
            end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
       58 
78 
     | 
    
         
             
            unless RDF_TRANSLATORS.include? options[:format]
         
     | 
| 
       59 
79 
     | 
    
         
             
              $stderr.puts "Format must be one of: #{RDF_TRANSLATORS.join(', ')}"
         
     | 
| 
       60 
80 
     | 
    
         
             
              exit 1
         
     | 
| 
         @@ -77,7 +97,7 @@ end 
     | 
|
| 
       77 
97 
     | 
    
         
             
            # read bel content
         
     | 
| 
       78 
98 
     | 
    
         
             
            input_io =
         
     | 
| 
       79 
99 
     | 
    
         
             
              if options[:bel]
         
     | 
| 
       80 
     | 
    
         
            -
                File.open(options[:bel], : 
     | 
| 
      
 100 
     | 
    
         
            +
                File.open(options[:bel], external_encoding: 'UTF-8')
         
     | 
| 
       81 
101 
     | 
    
         
             
              else
         
     | 
| 
       82 
102 
     | 
    
         
             
                $stdin
         
     | 
| 
       83 
103 
     | 
    
         
             
              end
         
     | 
| 
         @@ -87,7 +107,9 @@ validate_translator!(options[:format]) 
     | 
|
| 
       87 
107 
     | 
    
         
             
            begin
         
     | 
| 
       88 
108 
     | 
    
         
             
              BEL.translate(input_io, :bel, options[:format], $stdout,
         
     | 
| 
       89 
109 
     | 
    
         
             
                {
         
     | 
| 
       90 
     | 
    
         
            -
                  : 
     | 
| 
      
 110 
     | 
    
         
            +
                  write_schema:    options[:schema],
         
     | 
| 
      
 111 
     | 
    
         
            +
                  rdf_prefix_file: options[:rdf_prefix_file],
         
     | 
| 
      
 112 
     | 
    
         
            +
                  remap_file:      options[:remap_file]
         
     | 
| 
       91 
113 
     | 
    
         
             
                }
         
     | 
| 
       92 
114 
     | 
    
         
             
              )
         
     | 
| 
       93 
115 
     | 
    
         
             
            ensure
         
     | 
| 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            namespaces:
         
     | 
| 
      
 2 
     | 
    
         
            +
              - remap:
         
     | 
| 
      
 3 
     | 
    
         
            +
                  from:
         
     | 
| 
      
 4 
     | 
    
         
            +
                    prefix:  "CHEBI"
         
     | 
| 
      
 5 
     | 
    
         
            +
                    url:     "http://resource.belframework.org/belframework/20131211/namespace/chebi.belns"
         
     | 
| 
      
 6 
     | 
    
         
            +
                  to:
         
     | 
| 
      
 7 
     | 
    
         
            +
                    prefix:  "HGNC"
         
     | 
| 
      
 8 
     | 
    
         
            +
                    url:     "http://resource.belframework.org/belframework/20150611/namespace/hgnc-human-genes.belns"
         
     | 
| 
      
 9 
     | 
    
         
            +
                    rdf_uri: "http://identifiers.org/hgnc/"
         
     | 
| 
      
 10 
     | 
    
         
            +
              - remap:
         
     | 
| 
      
 11 
     | 
    
         
            +
                  from:
         
     | 
| 
      
 12 
     | 
    
         
            +
                    prefix:  "EGID"
         
     | 
| 
      
 13 
     | 
    
         
            +
                    url:     "http://resource.belframework.org/belframework/20150611/namespace/entrez-gene-ids.belns"
         
     | 
| 
      
 14 
     | 
    
         
            +
                  to:
         
     | 
| 
      
 15 
     | 
    
         
            +
                    prefix:  "EGID"
         
     | 
| 
      
 16 
     | 
    
         
            +
                    url:     "http://resource.belframework.org/belframework/20150611/namespace/entrez-gene-ids.belns"
         
     | 
| 
      
 17 
     | 
    
         
            +
                    rdf_uri: "http://identifiers.org/ncbigene/"
         
     | 
| 
      
 18 
     | 
    
         
            +
              - remap:
         
     | 
| 
      
 19 
     | 
    
         
            +
                  from:
         
     | 
| 
      
 20 
     | 
    
         
            +
                    prefix:  "MESHD"
         
     | 
| 
      
 21 
     | 
    
         
            +
                    url:     "http://resource.belframework.org/belframework/20131211/namespace/mesh-diseases.belns"
         
     | 
| 
      
 22 
     | 
    
         
            +
                  to:
         
     | 
| 
      
 23 
     | 
    
         
            +
                    prefix:  "MESHD"
         
     | 
| 
      
 24 
     | 
    
         
            +
                    url:     "http://resource.belframework.org/belframework/20131211/namespace/mesh-diseases.belns"
         
     | 
| 
      
 25 
     | 
    
         
            +
                    rdf_uri: "http://identifiers.org/meshd/"
         
     | 
| 
      
 26 
     | 
    
         
            +
            annotations:
         
     | 
| 
      
 27 
     | 
    
         
            +
              - remap:
         
     | 
| 
      
 28 
     | 
    
         
            +
                  from:
         
     | 
| 
      
 29 
     | 
    
         
            +
                    keyword:  "Anatomy"
         
     | 
| 
      
 30 
     | 
    
         
            +
                    type:     "url"
         
     | 
| 
      
 31 
     | 
    
         
            +
                    domain:   "http://resource.belframework.org/belframework/20131211/annotation/anatomy.belanno"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  to:
         
     | 
| 
      
 33 
     | 
    
         
            +
                    keyword:  "Anatomy"
         
     | 
| 
      
 34 
     | 
    
         
            +
                    type:     "url"
         
     | 
| 
      
 35 
     | 
    
         
            +
                    domain:   "http://resource.belframework.org/belframework/20131211/annotation/anatomy.belanno"
         
     | 
| 
      
 36 
     | 
    
         
            +
                    rdf_uri:  "http://identifiers.org/anatomy/"
         
     | 
| 
      
 37 
     | 
    
         
            +
              - remap:
         
     | 
| 
      
 38 
     | 
    
         
            +
                  from:
         
     | 
| 
      
 39 
     | 
    
         
            +
                    keyword:  "TextLocation"
         
     | 
| 
      
 40 
     | 
    
         
            +
                    type:     "list"
         
     | 
| 
      
 41 
     | 
    
         
            +
                    domain:
         
     | 
| 
      
 42 
     | 
    
         
            +
                      - Abstract
         
     | 
| 
      
 43 
     | 
    
         
            +
                      - Results
         
     | 
| 
      
 44 
     | 
    
         
            +
                      - Legend
         
     | 
| 
      
 45 
     | 
    
         
            +
                      - Review
         
     | 
| 
      
 46 
     | 
    
         
            +
                  to:
         
     | 
| 
      
 47 
     | 
    
         
            +
                    keyword: "TextLocation"
         
     | 
| 
      
 48 
     | 
    
         
            +
                    type:    "pattern"
         
     | 
| 
      
 49 
     | 
    
         
            +
                    domain:  "Value[0-9]+"
         
     | 
| 
      
 50 
     | 
    
         
            +
                    rdf_uri:  "http://identifiers.org/text-location/"
         
     | 
    
        data/lib/bel/quoting.rb
    CHANGED
    
    
| 
         @@ -42,14 +42,20 @@ module BEL::Translator::Plugins::BelScript::BelCitationSerialization 
     | 
|
| 
       42 
42 
     | 
    
         
             
                current_annotations[:Citation] = citation if citation
         
     | 
| 
       43 
43 
     | 
    
         
             
                current_annotations[:Evidence] = summary_text if summary_text
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
      
 45 
     | 
    
         
            +
                if !evidence.citation.id || evidence.citation.id.empty?
         
     | 
| 
      
 46 
     | 
    
         
            +
                  citation_id = quote('')
         
     | 
| 
      
 47 
     | 
    
         
            +
                else
         
     | 
| 
      
 48 
     | 
    
         
            +
                  citation_id = quote_if_needed(evidence.citation.id)
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
       45 
51 
     | 
    
         
             
                # Reset cumulative annotations if new citation.
         
     | 
| 
       46 
52 
     | 
    
         
             
                if cumulative_citation == nil
         
     | 
| 
       47 
     | 
    
         
            -
                  bel << %Q{SET STATEMENT_GROUP = #{ 
     | 
| 
      
 53 
     | 
    
         
            +
                  bel << %Q{SET STATEMENT_GROUP = #{citation_id}\n}
         
     | 
| 
       48 
54 
     | 
    
         
             
                  cumulative_annotations.clear
         
     | 
| 
       49 
55 
     | 
    
         
             
                elsif evidence.citation != cumulative_citation
         
     | 
| 
       50 
56 
     | 
    
         
             
                  bel << %Q{UNSET STATEMENT_GROUP\n}
         
     | 
| 
       51 
57 
     | 
    
         
             
                  bel << "\n\n"
         
     | 
| 
       52 
     | 
    
         
            -
                  bel << %Q{SET STATEMENT_GROUP = #{ 
     | 
| 
      
 58 
     | 
    
         
            +
                  bel << %Q{SET STATEMENT_GROUP = #{citation_id}\n}
         
     | 
| 
       53 
59 
     | 
    
         
             
                  cumulative_annotations.clear
         
     | 
| 
       54 
60 
     | 
    
         
             
                end
         
     | 
| 
       55 
61 
     | 
    
         | 
| 
         @@ -12,7 +12,9 @@ module BELRDF 
     | 
|
| 
       12 
12 
     | 
    
         
             
                end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                def to_rdf_vocabulary
         
     | 
| 
       15 
     | 
    
         
            -
                   
     | 
| 
      
 15 
     | 
    
         
            +
                  uri = @rdf_uri
         
     | 
| 
      
 16 
     | 
    
         
            +
                  uri << '/' unless uri.end_with?('/')
         
     | 
| 
      
 17 
     | 
    
         
            +
                  ::RDF::Vocabulary.new(uri)
         
     | 
| 
       16 
18 
     | 
    
         
             
                end
         
     | 
| 
       17 
19 
     | 
    
         
             
              end
         
     | 
| 
       18 
20 
     | 
    
         | 
| 
         @@ -33,11 +35,27 @@ module BELRDF 
     | 
|
| 
       33 
35 
     | 
    
         
             
                  @ns.to_rdf_vocabulary[URI::encode(@value)]
         
     | 
| 
       34 
36 
     | 
    
         
             
                end
         
     | 
| 
       35 
37 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
                def to_rdf(graph_name = nil)
         
     | 
| 
      
 38 
     | 
    
         
            +
                def to_rdf(graph_name = nil, remap = nil)
         
     | 
| 
       37 
39 
     | 
    
         
             
                  # resolve encoding to make rdf:type assertions
         
     | 
| 
       38 
40 
     | 
    
         
             
                  if !@enc && @ns.is_a?(BEL::Namespace::NamespaceDefinition)
         
     | 
| 
       39 
41 
     | 
    
         
             
                    @enc = @ns[@value].enc
         
     | 
| 
       40 
42 
     | 
    
         
             
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  # update namespace resource
         
     | 
| 
      
 45 
     | 
    
         
            +
                  if remap && remap['namespaces']
         
     | 
| 
      
 46 
     | 
    
         
            +
                    ro_ind = remap['namespaces'].index { |mapping|
         
     | 
| 
      
 47 
     | 
    
         
            +
                      mapping['remap'] && mapping['remap'].is_a?(Hash) &&
         
     | 
| 
      
 48 
     | 
    
         
            +
                      mapping['remap']['from'] && mapping['remap']['from'].is_a?(Hash) &&
         
     | 
| 
      
 49 
     | 
    
         
            +
                      mapping['remap']['from']['prefix'] == @ns.prefix.to_s &&
         
     | 
| 
      
 50 
     | 
    
         
            +
                      mapping['remap']['from']['url'] == @ns.url
         
     | 
| 
      
 51 
     | 
    
         
            +
                    }
         
     | 
| 
      
 52 
     | 
    
         
            +
                    if ro_ind
         
     | 
| 
      
 53 
     | 
    
         
            +
                      @ns.prefix = remap['namespaces'][ro_ind]['remap']['to']['prefix']
         
     | 
| 
      
 54 
     | 
    
         
            +
                      @ns.url = remap['namespaces'][ro_ind]['remap']['to']['url']
         
     | 
| 
      
 55 
     | 
    
         
            +
                      @ns.rdf_uri = remap['namespaces'][ro_ind]['remap']['to']['rdf_uri']
         
     | 
| 
      
 56 
     | 
    
         
            +
                    end
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
       41 
59 
     | 
    
         
             
                  uri = to_uri
         
     | 
| 
       42 
60 
     | 
    
         
             
                  encodings = ['A'].concat(@enc.to_s.each_char.to_a).uniq
         
     | 
| 
       43 
61 
     | 
    
         
             
                  encodings.map! { |enc| concept_statement(enc, uri, graph_name)}
         
     | 
| 
         @@ -94,7 +112,7 @@ module BELRDF 
     | 
|
| 
       94 
112 
     | 
    
         
             
                  end
         
     | 
| 
       95 
113 
     | 
    
         
             
                end
         
     | 
| 
       96 
114 
     | 
    
         | 
| 
       97 
     | 
    
         
            -
                def to_rdf(graph_name = nil)
         
     | 
| 
      
 115 
     | 
    
         
            +
                def to_rdf(graph_name = nil, remap = nil)
         
     | 
| 
       98 
116 
     | 
    
         
             
                  uri = to_uri
         
     | 
| 
       99 
117 
     | 
    
         
             
                  statements = []
         
     | 
| 
       100 
118 
     | 
    
         | 
| 
         @@ -133,14 +151,14 @@ module BELRDF 
     | 
|
| 
       133 
151 
     | 
    
         
             
                      end
         
     | 
| 
       134 
152 
     | 
    
         
             
                      # link root protein abundance as hasChild
         
     | 
| 
       135 
153 
     | 
    
         
             
                      root_param = @arguments.find{|x| x.is_a? ::BEL::Model::Parameter}
         
     | 
| 
       136 
     | 
    
         
            -
                      (root_id, root_statements) = ::BEL::Model::Term.new(:p, [root_param]).to_rdf(graph_name)
         
     | 
| 
      
 154 
     | 
    
         
            +
                      (root_id, root_statements) = ::BEL::Model::Term.new(:p, [root_param]).to_rdf(graph_name, remap)
         
     | 
| 
       137 
155 
     | 
    
         
             
                      statements << ::RDF::Statement.new(uri, BELRDF::BELV.hasChild, root_id, :graph_name => graph_name)
         
     | 
| 
       138 
156 
     | 
    
         
             
                      statements.concat(root_statements)
         
     | 
| 
       139 
157 
     | 
    
         
             
                      return [uri, statements]
         
     | 
| 
       140 
158 
     | 
    
         
             
                    elsif @arguments.find{|x| x.is_a? ::BEL::Model::Term and BELRDF::PROTEIN_VARIANT.include? x.fx}
         
     | 
| 
       141 
159 
     | 
    
         
             
                      # link root protein abundance as hasChild
         
     | 
| 
       142 
160 
     | 
    
         
             
                      root_param = @arguments.find{|x| x.is_a? ::BEL::Model::Parameter}
         
     | 
| 
       143 
     | 
    
         
            -
                      (root_id, root_statements) = ::BEL::Model::Term.new(:p, [root_param]).to_rdf(graph_name)
         
     | 
| 
      
 161 
     | 
    
         
            +
                      (root_id, root_statements) = ::BEL::Model::Term.new(:p, [root_param]).to_rdf(graph_name, remap)
         
     | 
| 
       144 
162 
     | 
    
         
             
                      statements << ::RDF::Statement.new(uri, BELRDF::BELV.hasChild, root_id, :graph_name => graph_name)
         
     | 
| 
       145 
163 
     | 
    
         
             
                      statements.concat(root_statements)
         
     | 
| 
       146 
164 
     | 
    
         
             
                      return [uri, statements]
         
     | 
| 
         @@ -151,14 +169,14 @@ module BELRDF 
     | 
|
| 
       151 
169 
     | 
    
         
             
                  @arguments.find_all{ |x|
         
     | 
| 
       152 
170 
     | 
    
         
             
                    x.is_a? ::BEL::Model::Parameter and x.ns != nil
         
     | 
| 
       153 
171 
     | 
    
         
             
                  }.each do |param|
         
     | 
| 
       154 
     | 
    
         
            -
                    param_uri, encoding_statements = param.to_rdf(graph_name)
         
     | 
| 
      
 172 
     | 
    
         
            +
                    param_uri, encoding_statements = param.to_rdf(graph_name, remap)
         
     | 
| 
       155 
173 
     | 
    
         
             
                    statements.concat(encoding_statements)
         
     | 
| 
       156 
174 
     | 
    
         
             
                    statements << ::RDF::Statement.new(uri, BELRDF::BELV.hasConcept, param_uri, :graph_name => graph_name)
         
     | 
| 
       157 
175 
     | 
    
         
             
                  end
         
     | 
| 
       158 
176 
     | 
    
         | 
| 
       159 
177 
     | 
    
         
             
                  # BELRDF::BELV.hasChild]
         
     | 
| 
       160 
178 
     | 
    
         
             
                  @arguments.find_all{|x| x.is_a? ::BEL::Model::Term}.each do |child|
         
     | 
| 
       161 
     | 
    
         
            -
                    (child_id, child_statements) = child.to_rdf(graph_name)
         
     | 
| 
      
 179 
     | 
    
         
            +
                    (child_id, child_statements) = child.to_rdf(graph_name, remap)
         
     | 
| 
       162 
180 
     | 
    
         
             
                    statements << ::RDF::Statement.new(uri, BELRDF::BELV.hasChild, child_id, :graph_name => graph_name)
         
     | 
| 
       163 
181 
     | 
    
         
             
                    statements.concat(child_statements)
         
     | 
| 
       164 
182 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -205,20 +223,20 @@ module BELRDF 
     | 
|
| 
       205 
223 
     | 
    
         
             
                  end
         
     | 
| 
       206 
224 
     | 
    
         
             
                end
         
     | 
| 
       207 
225 
     | 
    
         | 
| 
       208 
     | 
    
         
            -
                def to_rdf(graph_name = nil)
         
     | 
| 
      
 226 
     | 
    
         
            +
                def to_rdf(graph_name = nil, remap = nil)
         
     | 
| 
       209 
227 
     | 
    
         
             
                  uri        = to_uri
         
     | 
| 
       210 
228 
     | 
    
         
             
                  statements = []
         
     | 
| 
       211 
229 
     | 
    
         | 
| 
       212 
230 
     | 
    
         
             
                  case
         
     | 
| 
       213 
231 
     | 
    
         
             
                  when subject_only?
         
     | 
| 
       214 
     | 
    
         
            -
                    (sub_uri, sub_statements) = @subject.to_rdf(graph_name)
         
     | 
| 
      
 232 
     | 
    
         
            +
                    (sub_uri, sub_statements) = @subject.to_rdf(graph_name, remap)
         
     | 
| 
       215 
233 
     | 
    
         
             
                    statements << ::RDF::Statement(uri, BELRDF::BELV.hasSubject, sub_uri, :graph_name => graph_name)
         
     | 
| 
       216 
234 
     | 
    
         
             
                    statements.concat(sub_statements)
         
     | 
| 
       217 
235 
     | 
    
         
             
                  when simple?
         
     | 
| 
       218 
     | 
    
         
            -
                    (sub_uri, sub_statements) = @subject.to_rdf(graph_name)
         
     | 
| 
      
 236 
     | 
    
         
            +
                    (sub_uri, sub_statements) = @subject.to_rdf(graph_name, remap)
         
     | 
| 
       219 
237 
     | 
    
         
             
                    statements.concat(sub_statements)
         
     | 
| 
       220 
238 
     | 
    
         | 
| 
       221 
     | 
    
         
            -
                    (obj_uri, obj_statements) = @object.to_rdf(graph_name)
         
     | 
| 
      
 239 
     | 
    
         
            +
                    (obj_uri, obj_statements) = @object.to_rdf(graph_name, remap)
         
     | 
| 
       222 
240 
     | 
    
         
             
                    statements.concat(obj_statements)
         
     | 
| 
       223 
241 
     | 
    
         | 
| 
       224 
242 
     | 
    
         
             
                    rel = BELRDF::RELATIONSHIP_TYPE[@relationship.to_s]
         
     | 
| 
         @@ -226,9 +244,9 @@ module BELRDF 
     | 
|
| 
       226 
244 
     | 
    
         
             
                    statements << ::RDF::Statement(uri, BELRDF::BELV.hasObject, obj_uri,   :graph_name => graph_name)
         
     | 
| 
       227 
245 
     | 
    
         
             
                    statements << ::RDF::Statement(uri, BELRDF::BELV.hasRelationship, rel, :graph_name => graph_name)
         
     | 
| 
       228 
246 
     | 
    
         
             
                  when nested?
         
     | 
| 
       229 
     | 
    
         
            -
                    (sub_uri, sub_statements) = @subject.to_rdf(graph_name)
         
     | 
| 
       230 
     | 
    
         
            -
                    (nsub_uri, nsub_statements) = @object.subject.to_rdf(graph_name)
         
     | 
| 
       231 
     | 
    
         
            -
                    (nobj_uri, nobj_statements) = @object.object.to_rdf(graph_name)
         
     | 
| 
      
 247 
     | 
    
         
            +
                    (sub_uri, sub_statements) = @subject.to_rdf(graph_name, remap)
         
     | 
| 
      
 248 
     | 
    
         
            +
                    (nsub_uri, nsub_statements) = @object.subject.to_rdf(graph_name, remap)
         
     | 
| 
      
 249 
     | 
    
         
            +
                    (nobj_uri, nobj_statements) = @object.object.to_rdf(graph_name, remap)
         
     | 
| 
       232 
250 
     | 
    
         
             
                    statements.concat(sub_statements)
         
     | 
| 
       233 
251 
     | 
    
         
             
                    statements.concat(nsub_statements)
         
     | 
| 
       234 
252 
     | 
    
         
             
                    statements.concat(nobj_statements)
         
     | 
| 
         @@ -278,8 +296,25 @@ module BELRDF 
     | 
|
| 
       278 
296 
     | 
    
         
             
                  @annotations.each do |_, anno|
         
     | 
| 
       279 
297 
     | 
    
         
             
                    name = anno.name.gsub('"', '')
         
     | 
| 
       280 
298 
     | 
    
         | 
| 
       281 
     | 
    
         
            -
                     
     | 
| 
       282 
     | 
    
         
            -
             
     | 
| 
      
 299 
     | 
    
         
            +
                    # update annotations resource
         
     | 
| 
      
 300 
     | 
    
         
            +
                    anno_rdf_uri = nil
         
     | 
| 
      
 301 
     | 
    
         
            +
                    if remap && remap['annotations']
         
     | 
| 
      
 302 
     | 
    
         
            +
                      ro_ind = remap['annotations'].index { |mapping|
         
     | 
| 
      
 303 
     | 
    
         
            +
                        mapping['remap'] && mapping['remap'].is_a?(Hash) &&
         
     | 
| 
      
 304 
     | 
    
         
            +
                        mapping['remap']['from'] && mapping['remap']['from'].is_a?(Hash) &&
         
     | 
| 
      
 305 
     | 
    
         
            +
                        mapping['remap']['from']['keyword'] == name && (mapping['remap']['from']['type'] == 'url' ||
         
     | 
| 
      
 306 
     | 
    
         
            +
                        mapping['remap']['from']['type'] == 'list' &&
         
     | 
| 
      
 307 
     | 
    
         
            +
                        mapping['remap']['from']['domain'] && mapping['remap']['from']['domain'].is_a?(Array) &&
         
     | 
| 
      
 308 
     | 
    
         
            +
                        mapping['remap']['from']['domain'].include?(anno.value))
         
     | 
| 
      
 309 
     | 
    
         
            +
                      }
         
     | 
| 
      
 310 
     | 
    
         
            +
                      if ro_ind
         
     | 
| 
      
 311 
     | 
    
         
            +
                        anno_rdf_uri = remap['annotations'][ro_ind]['remap']['to']['rdf_uri']
         
     | 
| 
      
 312 
     | 
    
         
            +
                        anno_rdf_uri << '/' unless anno_rdf_uri.end_with?('/')
         
     | 
| 
      
 313 
     | 
    
         
            +
                      end
         
     | 
| 
      
 314 
     | 
    
         
            +
                    end
         
     | 
| 
      
 315 
     | 
    
         
            +
             
     | 
| 
      
 316 
     | 
    
         
            +
                    if anno_rdf_uri or BELRDF::const_defined? name
         
     | 
| 
      
 317 
     | 
    
         
            +
                      annotation_scheme = anno_rdf_uri ? anno_rdf_uri : BELRDF::const_get(name)
         
     | 
| 
       283 
318 
     | 
    
         
             
                      [anno.value].flatten.map{|x| x.gsub('"', '')}.each do |val|
         
     | 
| 
       284 
319 
     | 
    
         
             
                        value_uri = BELRDF::RDF::URI(URI.encode(annotation_scheme + val.to_s))
         
     | 
| 
       285 
320 
     | 
    
         
             
                        statements << ::RDF::Statement.new(evidence, BELRDF::BELV.hasAnnotation, value_uri, :graph_name => graph_name)
         
     | 
| 
         @@ -307,7 +342,7 @@ module BELRDF 
     | 
|
| 
       307 
342 
     | 
    
         
             
                  BELRDF::BELE[BELRDF.generate_uuid]
         
     | 
| 
       308 
343 
     | 
    
         
             
                end
         
     | 
| 
       309 
344 
     | 
    
         | 
| 
       310 
     | 
    
         
            -
                def to_rdf
         
     | 
| 
      
 345 
     | 
    
         
            +
                def to_rdf(remap = nil)
         
     | 
| 
       311 
346 
     | 
    
         
             
                  uri                       = to_uri
         
     | 
| 
       312 
347 
     | 
    
         | 
| 
       313 
348 
     | 
    
         
             
                  # parse BEL statement if necessary
         
     | 
| 
         @@ -316,7 +351,7 @@ module BELRDF 
     | 
|
| 
       316 
351 
     | 
    
         
             
                  end
         
     | 
| 
       317 
352 
     | 
    
         | 
| 
       318 
353 
     | 
    
         
             
                  # convert BEL statement to RDF
         
     | 
| 
       319 
     | 
    
         
            -
                  statement_uri, statements = bel_statement.to_rdf(uri)
         
     | 
| 
      
 354 
     | 
    
         
            +
                  statement_uri, statements = bel_statement.to_rdf(uri, remap)
         
     | 
| 
       320 
355 
     | 
    
         | 
| 
       321 
356 
     | 
    
         
             
                  statements << ::RDF::Statement.new(uri,           BELRDF::RDF.type,          BELRDF::BELV.Evidence, :graph_name => uri)
         
     | 
| 
       322 
357 
     | 
    
         
             
                  statements << ::RDF::Statement.new(statement_uri, BELRDF::BELV.hasEvidence,  uri,                     :graph_name => uri)
         
     | 
| 
         @@ -1,4 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'rdf'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'pathname'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'yaml'
         
     | 
| 
       2 
4 
     | 
    
         | 
| 
       3 
5 
     | 
    
         
             
            require_relative 'uuid'
         
     | 
| 
       4 
6 
     | 
    
         
             
            require_relative 'bel_schema'
         
     | 
| 
         @@ -55,6 +57,11 @@ module BELRDF 
     | 
|
| 
       55 
57 
     | 
    
         | 
| 
       56 
58 
     | 
    
         
             
                  wrote_dataset = false
         
     | 
| 
       57 
59 
     | 
    
         | 
| 
      
 60 
     | 
    
         
            +
                  # read remap file
         
     | 
| 
      
 61 
     | 
    
         
            +
                  if options[:remap_file]
         
     | 
| 
      
 62 
     | 
    
         
            +
                    remap = YAML::load_file(options[:remap_file])
         
     | 
| 
      
 63 
     | 
    
         
            +
                  end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
       58 
65 
     | 
    
         
             
                  rdf_statement_enum = Enumerator.new do |yielder|
         
     | 
| 
       59 
66 
     | 
    
         
             
                    # enumerate BEL schema
         
     | 
| 
       60 
67 
     | 
    
         
             
                    @rdf_schema.each do |schema_statement|
         
     | 
| 
         @@ -73,7 +80,7 @@ module BELRDF 
     | 
|
| 
       73 
80 
     | 
    
         
             
                        wrote_dataset = true
         
     | 
| 
       74 
81 
     | 
    
         
             
                      end
         
     | 
| 
       75 
82 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
                      evidence_uri, statements = evidence.to_rdf
         
     | 
| 
      
 83 
     | 
    
         
            +
                      evidence_uri, statements = evidence.to_rdf(remap)
         
     | 
| 
       77 
84 
     | 
    
         
             
                      statements.each do |statement|
         
     | 
| 
       78 
85 
     | 
    
         
             
                        yielder << statement
         
     | 
| 
       79 
86 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -94,6 +101,12 @@ module BELRDF 
     | 
|
| 
       94 
101 
     | 
    
         
             
                    :stream => true
         
     | 
| 
       95 
102 
     | 
    
         
             
                  )
         
     | 
| 
       96 
103 
     | 
    
         | 
| 
      
 104 
     | 
    
         
            +
                  # load RDF prefixes
         
     | 
| 
      
 105 
     | 
    
         
            +
                  prefixes = load_prefixes(options)
         
     | 
| 
      
 106 
     | 
    
         
            +
                  prefixes.each do |prefix, uri|
         
     | 
| 
      
 107 
     | 
    
         
            +
                    rdf_writer.prefix prefix.to_sym, RDF::URI(uri)
         
     | 
| 
      
 108 
     | 
    
         
            +
                  end
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
       97 
110 
     | 
    
         
             
                  rdf_writer.write_prologue
         
     | 
| 
       98 
111 
     | 
    
         
             
                  rdf_statement_enum.each do |statement|
         
     | 
| 
       99 
112 
     | 
    
         
             
                    rdf_writer << statement
         
     | 
| 
         @@ -103,5 +116,18 @@ module BELRDF 
     | 
|
| 
       103 
116 
     | 
    
         | 
| 
       104 
117 
     | 
    
         
             
                  io
         
     | 
| 
       105 
118 
     | 
    
         
             
                end
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
                def load_prefixes(options)
         
     | 
| 
      
 121 
     | 
    
         
            +
                  prefix_file = options[:rdf_prefix_file] || default_prefix_file
         
     | 
| 
      
 122 
     | 
    
         
            +
                  YAML::load_file(prefix_file)
         
     | 
| 
      
 123 
     | 
    
         
            +
                end
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
                def default_prefix_file
         
     | 
| 
      
 126 
     | 
    
         
            +
                  File.join(
         
     | 
| 
      
 127 
     | 
    
         
            +
                    File.expand_path(File.dirname(__FILE__)),
         
     | 
| 
      
 128 
     | 
    
         
            +
                    'config',
         
     | 
| 
      
 129 
     | 
    
         
            +
                    'default_prefixes.yml'
         
     | 
| 
      
 130 
     | 
    
         
            +
                  )
         
     | 
| 
      
 131 
     | 
    
         
            +
                end
         
     | 
| 
       106 
132 
     | 
    
         
             
              end
         
     | 
| 
       107 
133 
     | 
    
         
             
            end
         
     | 
| 
         @@ -11,6 +11,7 @@ module BEL::Translator::Plugins 
     | 
|
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                  def initialize(data, options = {})
         
     | 
| 
       13 
13 
     | 
    
         
             
                    @data                     = data
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @streaming                = options.fetch(:streaming, false)
         
     | 
| 
       14 
15 
     | 
    
         
             
                    @annotation_reference_map = options.fetch(:annotation_reference_map, nil)
         
     | 
| 
       15 
16 
     | 
    
         
             
                    @namespace_reference_map  = options.fetch(:namespace_reference_map, nil)
         
     | 
| 
       16 
17 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/bel/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bel
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.7.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Anthony Bargnesi
         
     | 
| 
         @@ -11,7 +11,7 @@ authors: 
     | 
|
| 
       11 
11 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       13 
13 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       14 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 14 
     | 
    
         
            +
            date: 2016-04-12 00:00:00.000000000 Z
         
     | 
| 
       15 
15 
     | 
    
         
             
            dependencies:
         
     | 
| 
       16 
16 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       17 
17 
     | 
    
         
             
              name: ffi
         
     | 
| 
         @@ -94,6 +94,7 @@ files: 
     | 
|
| 
       94 
94 
     | 
    
         
             
            - lib/bel/evidence_model/streaming_evidence_combiner.rb
         
     | 
| 
       95 
95 
     | 
    
         
             
            - lib/bel/evidence_model/summary_text.rb
         
     | 
| 
       96 
96 
     | 
    
         
             
            - lib/bel/evidence_model/util.rb
         
     | 
| 
      
 97 
     | 
    
         
            +
            - lib/bel/examples/remap-file-example.yml
         
     | 
| 
       97 
98 
     | 
    
         
             
            - lib/bel/gen.rb
         
     | 
| 
       98 
99 
     | 
    
         
             
            - lib/bel/gen/annotation.rb
         
     | 
| 
       99 
100 
     | 
    
         
             
            - lib/bel/gen/citation.rb
         
     | 
| 
         @@ -172,6 +173,7 @@ files: 
     | 
|
| 
       172 
173 
     | 
    
         
             
            - lib/bel/translator/plugins/nquads.rb
         
     | 
| 
       173 
174 
     | 
    
         
             
            - lib/bel/translator/plugins/ntriples.rb
         
     | 
| 
       174 
175 
     | 
    
         
             
            - lib/bel/translator/plugins/rdf/bel_schema.rb
         
     | 
| 
      
 176 
     | 
    
         
            +
            - lib/bel/translator/plugins/rdf/config/default_prefixes.yml
         
     | 
| 
       175 
177 
     | 
    
         
             
            - lib/bel/translator/plugins/rdf/graph_translator.rb
         
     | 
| 
       176 
178 
     | 
    
         
             
            - lib/bel/translator/plugins/rdf/monkey_patch.rb
         
     | 
| 
       177 
179 
     | 
    
         
             
            - lib/bel/translator/plugins/rdf/reader.rb
         
     |