class PubliSci::Writers::Base

Public Instance Methods

codes(input, data_set = nil, select = :label) click to toggle source
# File lib/publisci/writers/base.rb, line 64
def codes(input, data_set = nil, select = :label)
  repo = handle_input(input)

  if data_set
    codes = execute_from_file("codes.rq",repo,:graph,{"?dataSet"=>"<#{data_set}>"}).to_h
  else
    codes = execute_from_file("codes.rq",repo,:graph).to_h
  end
  codes.map{|c| c.values.map(&:to_s)}.inject({}){|h,el|
    (h[el.first]||=[]) << el.last; h
  }
end
dataSet(input, select = :label) click to toggle source
# File lib/publisci/writers/base.rb, line 58
def dataSet(input, select = :label)
  repo = handle_input(input)

  execute_from_file("dataset.rq",repo,:graph).to_h.first[select].to_s
end
dimensions(input, data_set=nil, select=:label) click to toggle source
# File lib/publisci/writers/base.rb, line 22
def dimensions(input, data_set=nil, select=:label)
  repo = handle_input(input)

  if data_set
    dims = execute_from_file("dimensions.rq",repo,:graph,{"?dataSet"=>"<#{data_set}>"})
  else
    dims = execute_from_file("dimensions.rq",repo,:graph)
  end

  dims.to_h.map{|d| d[select].to_s}
end
handle_input(input) click to toggle source
# File lib/publisci/writers/base.rb, line 8
def handle_input(input)
  if input.is_a? String
    if File.exist? input
      RDF::Repository.load(input)
    else
      raise "UnkownStringInput: #{input}"
    end
  elsif input.is_a? RDF::Repository
    input
  else
    raise "UnkownInput: #{input}, #{input.class}"
  end
end
measures(input, data_set=nil, select=:label) click to toggle source
# File lib/publisci/writers/base.rb, line 34
def measures(input, data_set=nil, select=:label)
  repo = handle_input(input)

  if data_set
    meas = execute_from_file("measures.rq",repo,:graph,{"?dataSet"=>"<#{data_set}>"})
  else
    meas = execute_from_file("measures.rq",repo,:graph)
  end

  meas.to_h.map{|d| d[select].to_s}
end
observations(input, data_set = nil, shorten_url = true) click to toggle source
# File lib/publisci/writers/base.rb, line 46
def observations(input, data_set = nil, shorten_url = true)
  repo = handle_input(input)

  if data_set
    obs = execute_from_file("observations.rq",repo,:graph,{"?dataSet"=>"<#{data_set}>"})
  else
    obs = execute_from_file("observations.rq",repo,:graph)
  end

  observation_hash(obs,shorten_url)
end
repo_to_ruby(repo,select_dataset=nil, shorten_url=true) click to toggle source
# File lib/publisci/writers/base.rb, line 83
def repo_to_ruby(repo,select_dataset=nil, shorten_url=true)
  select_dataset = dataSet(repo,:dataset) unless select_dataset
  dims = dimensions(repo,select_dataset)
  meas = measures(repo,select_dataset)
  codes = codes(repo,select_dataset)
  data = observations(repo,select_dataset,shorten_url)
  {measures: meas, dimensions: dims, coded_dimensions: codes, data: data}
end
turtle_to_ruby(turtle_file, select_dataset=nil, shorten_url=true) click to toggle source
# File lib/publisci/writers/base.rb, line 77
def turtle_to_ruby(turtle_file, select_dataset=nil, shorten_url=true)
  repo = RDF::Repository.load(turtle_file)

  repo_to_ruby(repo,select_dataset,shorten_url)
end