41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/ttl2html.rb', line 41
def load_turtle(file)
STDERR.puts "loading #{file}..."
count = 0
if file.end_with?(".gz")
io = Zlib::GzipReader.open(file)
else
io = File.open(file)
end
RDF::Format.for(:turtle).reader.new(io) do |reader|
reader.statements.each do |statement|
s = statement.subject
v = statement.predicate
o = statement.object
count += 1
@data[s.to_s] ||= {}
@data[s.to_s][v.to_s] ||= []
if o.is_a? RDF::URI or o.is_a? RDF::Node
@data[s.to_s][v.to_s] << o.to_s
@data_inverse[o.to_s] ||= {}
@data_inverse[o.to_s][v.to_s] ||= []
@data_inverse[o.to_s][v.to_s] << s.to_s
else
@data[s.to_s][v.to_s] << o
end
end
@prefix.merge! reader.prefixes
end
STDERR.puts "#{count} triples. #{@data.size} subjects."
@data
end
|