Sha256: 0d18217e4f64c2b3cb8970385d4930259e8d01ad6e7c830382a54d546ea6e86d

Contents?: true

Size: 1.47 KB

Versions: 15

Compression:

Stored size: 1.47 KB

Contents

#!/usr/bin/env ruby
# bel_rdfschema: Dump RDF schema for BEL.
# usage: bel_rdfschema --format [ntriples | nquads | turtle]

require 'bel'
require 'optparse'
require 'set'
require 'open-uri'

options = {
  format: 'ntriples'
}
OptionParser.new do |opts|
  opts.banner = '''Dumps RDF schema for BEL.
Usage: bel_rdfschema'''

  opts.on('-f', '--format FORMAT', 'RDF file format.') do |format|
    options[:format] = format.downcase
  end
end.parse!

unless ['ntriples', 'nquads', 'turtle'].include? options[:format]
  $stderr.puts "Format was not one of: ntriples, nquads, or turtle"
  exit 1
end

class Serializer
  attr_reader :writer

  def initialize(stream, format)
    rdf_writer = find_writer(format)
    @writer = rdf_writer.new($stdout, {
        :stream => stream
      }
    )
  end

  def <<(trpl)
    @writer.write_statement(RDF::Statement(*trpl))
  end

  def done
    @writer.write_epilogue
  end

  private

  def find_writer(format)
    case format
      when 'nquads'
        BEL::RDF::RDF::NQuads::Writer
      when 'turtle'
        begin
          require 'rdf/turtle'
          BEL::RDF::RDF::Turtle::Writer
        rescue LoadError
          $stderr.puts """Turtle format not supported.
Install the 'rdf-turtle' gem."""
          raise
        end
      when 'ntriples'
        BEL::RDF::RDF::NTriples::Writer
    end
  end
end

@rdf_writer = ::Serializer.new(true, options[:format])
BEL::RDF::vocabulary_rdf.each do |trpl|
  @rdf_writer << trpl
end
# vim: ts=2 sw=2:
# encoding: utf-8

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
bel-0.3.0.beta5-x64-mingw32 bin/bel_rdfschema
bel-0.3.0.beta5-x86-mingw32 bin/bel_rdfschema
bel-0.3.0.beta5 bin/bel_rdfschema
bel-0.3.0.beta4-x86-mingw32 bin/bel_rdfschema
bel-0.3.0.beta4-x64-mingw32 bin/bel_rdfschema
bel-0.3.0.beta4 bin/bel_rdfschema
bel-0.3.0.beta3-x64-mingw32 bin/bel_rdfschema
bel-0.3.0.beta3-x86-mingw32 bin/bel_rdfschema
bel-0.3.0.beta3 bin/bel_rdfschema
bel-0.3.0.beta2-x64-mingw32 bin/bel_rdfschema
bel-0.3.0.beta2-x86-mingw32 bin/bel_rdfschema
bel-0.3.0.beta2 bin/bel_rdfschema
bel-0.3.0.beta1-x64-mingw32 bin/bel_rdfschema
bel-0.3.0.beta1-x86-mingw32 bin/bel_rdfschema
bel-0.3.0.beta1 bin/bel_rdfschema