Я пытаюсь ввести в заблуждение график, соответствующий документации для рубинового RDF-драгоценного камня. (http://www.rubydoc.info/gems/rdf/RDF/Graph)Ошибка инициализации Graph.new с использованием ruby rdf.rb gem
документации приводится следующий пример:
graph = Graph.new("http://rubygems.org/")
Я пытался запустить эту точную команду, и я получаю ошибку (я не очень понимаю). (Обратите внимание, что я успешно загрузил график при использовании файла с моей локальной машины, поэтому я думаю, что есть некоторые проблемы с попыткой загрузить график из http-url.)
Я запускаю команду через интерфейс командной строки Gem Thor. Ниже находится исполняемый файл, а затем возвращается ошибка.
файл lbp
#!/usr/bin/env ruby
require 'rdf'
require 'rdf/rdfxml'
require 'rdf/ntriples'
require 'thor'
require 'pry'
class LbpCli < Thor
desc "hello", "say hello to NAME"
def hello(name)
puts "Hello #{name}!"
end
desc "init", "create projectifles dirs in current working directory"
def init(dir="projectfiles")
directories = ["#{dir}/Conf", "#{dir}/Textfiles", "#{dir}/citationlists"]
FileUtils.mkpath(directories)
end
desc "projecfile", "make projetfile from SCTA"
def projectfile
graph = RDF::Graph.new("http://rubygems.org")
end
end
LbpCli.start(ARGV)
projectfile является соответствующий метод. Ниже приведен запуск команды и возвращенная ошибка.
файл lbp
прогон методом projectfile
$ ./lbp projectfile
/Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/model/graph.rb:126:in `initialize': Can't apply context unless initialized with `data` supporting contexts (ArgumentError)
from ./lbp:28:in `new'
from ./lbp:28:in `projectfile'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
from ./lbp:45:in `<main>'
EDIT
, если я немного изменить конструкцию, явно создавая resource
так:
resource = RDF::Resource(RDF::URI.new("http://rdf.rubyforge.org/"))
graph = RDF::Graph.load(resource)
я получаю новую ошибку:
bin $ ./lbp projectfile
/Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/util/file.rb:66:in `open_file': uninitialized constant RDF::Util::File::OpenSSL (NameError)
from /Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/reader.rb:136:in `open'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/mixin/mutable.rb:43:in `load'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/model/graph.rb:81:in `block in load'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/model/graph.rb:131:in `call'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/model/graph.rb:131:in `initialize'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/model/graph.rb:80:in `new'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/rdf-1.1.7/lib/rdf/model/graph.rb:80:in `load'
from ./lbp:29:in `projectfile'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
from /Users/JCWitt/.rvm/gems/[email protected]/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
from ./lbp:47:in `<main>'