rdf2json 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5b7bc9157133dd33407d3807be8d4e2ae8361424
4
+ data.tar.gz: 4f22bddd6f50b8708d289f6699eaee564d7a0afe
5
+ SHA512:
6
+ metadata.gz: 4c0697837463e626dfc077ba4a0cd27ee7240fe6c3fcfdde29a3708edbf83689901e25f92ae266a8fe9a840fe34f6839c4363502b647fe207ef0fa2042908bb0
7
+ data.tar.gz: ece185939cd4925b52632ca346653486905b91f185852845e5081dab6ca670de61df858795c2cbad5683bd2ebfaac23f845842185ac323412966ab8afb918b91
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.travis.yml ADDED
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.1
7
+
8
+ # - rbx-19mode
9
+ # - 1.8.7
10
+ # - jruby-18mode # JRuby in 1.8 mode
11
+ # - rbx-18mode
12
+
13
+ # uncomment this line if your project needs to run something other than `rake`:
14
+ # script: bundle exec rspec spec
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+ gem "rdf", ">= 1.1.3"
6
+ gem "json-ld", ">= 1.1.3"
7
+
8
+ # Add dependencies to develop your gem here.
9
+ # Include everything needed to run rake, tests, features, etc.
10
+ group :development do
11
+ gem "shoulda", ">= 0"
12
+ gem "simplecov", ">= 0"
13
+ gem "jeweler", "~> 1.8.4"
14
+ gem "bundler", ">= 1.0.21"
15
+ gem "rdoc", "~> 3.12"
16
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2014 Joachim Baran
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # rdf2json
2
+
3
+ [![Build Status](https://secure.travis-ci.org/joejimbo/rdf2json.png)](http://travis-ci.org/joejimbo/rdf2json)
4
+
5
+ Reads RDF N-Triple/N-Quads that are sorted by subject and
6
+ append a JSON/JSON-LD document per line in a designated
7
+ output file.
8
+
9
+ Usage: `rdf2json [options] --input filename.nt --output filename.json`
10
+
11
+ #### Required options
12
+
13
+ * `-i`, `--input FILE`: Input file for the conversion; either RDF N-Triples or N-Quads.
14
+ * `-o`, `--output FILE`: Output file to which JSON-LD/JSON is appended.
15
+
16
+ #### Options
17
+
18
+ * `-m`, `--minimize`: Minimize JSON-LD to plain (semantically untyped) JSON.
19
+ * `-n`, `--namespace [NAMESPACE]`: Alternative name for JSON-LD's "@id" key; replaces it; turns on `--minimize`
20
+ * `-p`, `--prefix [PREFIX]`: Prefix that should be removed from keys; requires `--minimize`.
21
+ * `-t`, `--triples`: Input file is in RDF N-Triples format.
22
+ * `-q`, `--quads`: Input file is in RDF N-Quads format.
23
+
24
+ #### Common options
25
+
26
+ * `-h`, `--help`: Show this message.
27
+
28
+ ## Installation
29
+
30
+ ```sh
31
+ gem install rdf2json
32
+ ```
33
+
34
+ ## Project home page
35
+
36
+ Information on the source tree, documentation, examples, issues and
37
+ how to contribute, see
38
+
39
+ http://github.com/joejimbo/rdf2json
40
+
41
+ The BioRuby community is on IRC server: irc.freenode.org, channel: #bioruby.
42
+
43
+ ## Biogems.info
44
+
45
+ This Biogem is published at (http://biogems.info/index.html#bio-rdf2json)
46
+
47
+ ## Copyright
48
+
49
+ Copyright (c) 2014 Joachim Baran. See LICENSE.txt for further details.
50
+
data/README.rdoc ADDED
@@ -0,0 +1,48 @@
1
+ = bio-rdf2json
2
+
3
+ {<img
4
+ src="https://secure.travis-ci.org/joejimbo/bioruby-rdf2json.png"
5
+ />}[http://travis-ci.org/#!/joejimbo/bioruby-rdf2json]
6
+
7
+ Full description goes here
8
+
9
+ Note: this software is under active development!
10
+
11
+ == Installation
12
+
13
+ gem install bio-rdf2json
14
+
15
+ == Usage
16
+
17
+ == Developers
18
+
19
+ To use the library
20
+
21
+ require 'bio-rdf2json'
22
+
23
+ The API doc is online. For more code examples see also the test files in
24
+ the source tree.
25
+
26
+ == Project home page
27
+
28
+ Information on the source tree, documentation, issues and how to contribute, see
29
+
30
+ http://github.com/joejimbo/bioruby-rdf2json
31
+
32
+ The BioRuby community is on IRC server: irc.freenode.org, channel: #bioruby.
33
+
34
+ == Cite
35
+
36
+ If you use this software, please cite one of
37
+
38
+ * [BioRuby: bioinformatics software for the Ruby programming language](http://dx.doi.org/10.1093/bioinformatics/btq475)
39
+ * [Biogem: an effective tool-based approach for scaling up open source software development in bioinformatics](http://dx.doi.org/10.1093/bioinformatics/bts080)
40
+
41
+ == Biogems.info
42
+
43
+ This Biogem is published at http://biogems.info/index.html#bio-rdf2json
44
+
45
+ == Copyright
46
+
47
+ Copyright (c) 2014 Joachim Baran. See LICENSE.txt for further details.
48
+
data/Rakefile ADDED
@@ -0,0 +1,52 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
17
+ gem.name = "rdf2json"
18
+ gem.homepage = "http://github.com/joejimbo/rdf2json"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{RDF N-Triples and N-Quads to JSON-LD or JSON converter.}
21
+ gem.description = %Q{Converts RDF N-Triples and N-Quads files to either JSON-LD or JSON. Supports minimization of long URIs to shorter descriptive key names.}
22
+ gem.email = 'joachim.baran@gmail.com'
23
+ gem.authors = [ 'Joachim Baran' ]
24
+ gem.executable = 'rdf2json'
25
+ # dependencies defined in Gemfile
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+ require 'rake/testtask'
30
+ Rake::TestTask.new(:test) do |test|
31
+ test.libs << 'lib' << 'test'
32
+ test.pattern = 'test/**/test_*.rb'
33
+ test.verbose = true
34
+ end
35
+
36
+ desc "Code coverage detail"
37
+ task :simplecov do
38
+ ENV['COVERAGE'] = "true"
39
+ Rake::Task['test'].execute
40
+ end
41
+
42
+ task :default => :test
43
+
44
+ require 'rdoc/task'
45
+ Rake::RDocTask.new do |rdoc|
46
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
47
+
48
+ rdoc.rdoc_dir = 'rdoc'
49
+ rdoc.title = "rdf2json #{version}"
50
+ rdoc.rdoc_files.include('README*')
51
+ rdoc.rdoc_files.include('lib/**/*.rb')
52
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
data/bin/rdf2json ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdf2json'
4
+
5
+ RDF2JSON::cli
6
+
data/lib/rdf2json.rb ADDED
@@ -0,0 +1,3 @@
1
+
2
+ require 'rdf2json/rdf2json.rb'
3
+
@@ -0,0 +1,226 @@
1
+
2
+ require 'rdf'
3
+ require 'rdf/ntriples'
4
+ require 'rdf/nquads'
5
+ require 'json/ld'
6
+ require 'optparse'
7
+
8
+ module RDF2JSON
9
+
10
+ def self.cli
11
+ options = {}
12
+
13
+ parser = OptionParser.new { |opts|
14
+ opts.banner = 'Usage: rdf2json [options] --input filename.nt --output filename.json'
15
+
16
+ opts.separator ''
17
+ opts.separator 'Description: Reads RDF N-Triple/N-Quads that are sorted by subject and'
18
+ opts.separator ' append a JSON/JSON-LD document per line in a designated'
19
+ opts.separator ' output file.'
20
+ opts.separator ''
21
+ opts.separator 'Required:'
22
+
23
+ opts.on('-i', '--input FILE', 'Input file for the conversion; either RDF N-Triples or N-Quads.') { |file|
24
+ options[:input] = file
25
+ }
26
+ opts.on('-o', '--output FILE', 'Output file to which JSON-LD/JSON is appended.') { |file|
27
+ options[:output] = file
28
+ }
29
+
30
+ opts.separator ''
31
+ opts.separator 'Options:'
32
+
33
+ opts.on('-m', '--minimize', 'Minimize JSON-LD to plain (semantically untyped) JSON.') { |minimize|
34
+ options[:minimize] = true
35
+ }
36
+ opts.on('-n', '--namespace [NAMESPACE]', 'Alternative name for JSON-LD\'s "@id" key; replaces it; turns on --minimize') { |namespace|
37
+ options[:minimize] = true
38
+ options[:namespace] = namespace
39
+ }
40
+ opts.on('-p', '--prefix [PREFIX]', 'Prefix that should be removed from keys; requires --minimize.') { |prefix|
41
+ options[:prefix] = prefix
42
+ }
43
+ opts.on('-t', '--triples', 'Input file is in RDF N-Triples format.') { |triples|
44
+ options[:ntriples] = true
45
+ }
46
+ opts.on('-q', '--quads', 'Input file is in RDF N-Quads format.') { |quads|
47
+ options[:nquads] = true
48
+ }
49
+
50
+ opts.separator ''
51
+ opts.separator 'Common options:'
52
+
53
+ opts.on_tail('-h', '--help', 'Show this message.') { |help|
54
+ puts opts
55
+ exit
56
+ }
57
+ }
58
+
59
+ begin
60
+ parser.parse!
61
+ rescue
62
+ puts parser
63
+ exit 1
64
+ end
65
+
66
+ unless options.has_key?(:input) and options.has_key?(:output) then
67
+ puts 'Error: Requires --input and --output parameters.'
68
+ puts ''
69
+ puts parser
70
+ exit 2
71
+ end
72
+
73
+ if options.has_key?(:ntriples) and options.has_key?(:nquads) then
74
+ puts 'Error: both --triples and --quads parameters were used.'
75
+ puts ' Only one of the parameters may be provided for explicitly'
76
+ puts ' setting the input fileformat.'
77
+ puts ''
78
+ puts parser
79
+ exit 3
80
+ end
81
+
82
+ extension = File.extname(options[:input])
83
+ if options.has_key?(:ntriples) then
84
+ input_format = :ntriples
85
+ elsif options.has_key?(:nquads) then
86
+ input_format = :nquads
87
+ elsif extension == '.nt' then
88
+ input_format = :ntriples
89
+ elsif extension == '.nq' then
90
+ input_format = :nquads
91
+ else
92
+ puts 'Error: Cannot determine input file format by filename extension.'
93
+ puts ' Recognized fileformat extensions are .nt and .nq for N-Triples'
94
+ puts ' and N-Quads respectively. Use --triples or --quads options to'
95
+ puts ' explicitly set the input fileformat (ignores filename extension'
96
+ puts ' when one of those options is given.'
97
+ puts ''
98
+ puts parser
99
+ exit 4
100
+ end
101
+
102
+ output_format = :jsonld
103
+ output_format = :json if options[:minimize]
104
+
105
+ unless File.exist?(options[:input]) then
106
+ puts 'Error: Input file (--input parameter) does not seem to exist.'
107
+ puts ''
108
+ puts parser
109
+ exit 6
110
+ end
111
+
112
+ begin
113
+ # Why instantiate a Converter instance here? Well, for implementing parallelization later:
114
+ Converter.new(options[:input], options[:output], input_format, output_format, options[:namespace], options[:prefix]).convert
115
+ rescue Interrupt
116
+ # The user hit Ctrl-C, which is okay and does not need error reporting.
117
+ exit 0
118
+ end
119
+ end
120
+
121
+ class Converter
122
+
123
+ def initialize(input_filename, output_filename, input_format, output_format, namespace, prefix)
124
+ @input_file = File.open(input_filename, 'r')
125
+ @output_file = File.open(output_filename, 'a')
126
+ @input_format = input_format
127
+ @output_format = output_format
128
+ @namespace = namespace
129
+ @prefix = prefix
130
+ end
131
+
132
+ def convert
133
+ no_of_lines = 0
134
+ no_of_statements = 0
135
+ read_errors = 0
136
+ last_subject = nil
137
+ subject_block = ''
138
+
139
+ @input_file.each_line { |line|
140
+ no_of_lines += 1
141
+ line.chomp!
142
+
143
+ subject = "#{line.sub(/>.*/, '')}>"
144
+
145
+ if subject == last_subject then
146
+ subject_block << line
147
+ else
148
+ stats = write_graph(subject_block)
149
+ no_of_statements += stats[:no_of_statements]
150
+ read_errors += stats[:read_errors]
151
+ subject_block = ''
152
+ end
153
+
154
+ last_subject = subject
155
+ }
156
+
157
+ stats = write_graph(subject_block)
158
+ no_of_statements += stats[:no_of_statements]
159
+ read_errors += stats[:read_errors]
160
+
161
+ puts "Total number of lines read : #{no_of_lines}"
162
+ puts "Statement read errors (N-Quads or N-Triples) : #{read_errors}"
163
+ puts "JSON/JSON-LD documents output : #{no_of_statements}"
164
+ end
165
+
166
+ def minify(jsonld_hash)
167
+ jsonld_hash.keys.each { |key|
168
+ if key == '@type' then
169
+ jsonld_hash.delete(key)
170
+ elsif @prefix and key.match(@prefix) then
171
+ shortened_key = key.sub(@prefix, '')
172
+ jsonld_hash[shortened_key] = jsonld_hash.delete(key)
173
+ key = shortened_key
174
+ end
175
+
176
+ if jsonld_hash[key].instance_of?(Array) then
177
+ jsonld_hash[key].each_index { |index|
178
+ if jsonld_hash[key][index].has_key?('@value') then
179
+ jsonld_hash[key][index] = jsonld_hash[key][index]['@value']
180
+ elsif jsonld_hash[key][index].has_key?('@id') then
181
+ jsonld_hash[key][index] = jsonld_hash[key][index]['@id']
182
+ end
183
+ }
184
+ elsif jsonld_hash[key].instance_of?(Hash) then
185
+ minify(jsonld_hash[key])
186
+ end
187
+ }
188
+ end
189
+
190
+ def write_graph(block)
191
+ return { :read_errors => 0, :no_of_statements => 0 } unless block and not block.empty?
192
+
193
+ block.gsub!("\\'", "'")
194
+
195
+ read_errors = 0
196
+ no_of_statements = 0
197
+ graph = RDF::Graph.new
198
+ RDF::Reader.for(@input_format).new(block) { |reader|
199
+ begin
200
+ reader.each_statement { |statement|
201
+ no_of_statements += 1
202
+ graph.insert(statement)
203
+ }
204
+ rescue RDF::ReaderError
205
+ read_errors += 1
206
+ end
207
+ }
208
+
209
+ JSON::LD::API::fromRdf(graph) { |document|
210
+ document.each{ |entity|
211
+ # Parsed JSON-LD representation:
212
+ entity = JSON.parse(entity.to_json)
213
+
214
+ entity[@namespace] = entity.delete('@id') if @namespace
215
+ minify(entity) if @output_format == :json
216
+
217
+ @output_file.puts entity.to_json
218
+ }
219
+ }
220
+
221
+ return { :read_errors => read_errors, :no_of_statements => no_of_statements }
222
+ end
223
+
224
+ end
225
+
226
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,34 @@
1
+ require 'simplecov'
2
+
3
+ module SimpleCov::Configuration
4
+ def clean_filters
5
+ @filters = []
6
+ end
7
+ end
8
+
9
+ SimpleCov.configure do
10
+ clean_filters
11
+ load_adapter 'test_frameworks'
12
+ end
13
+
14
+ ENV["COVERAGE"] && SimpleCov.start do
15
+ add_filter "/.rvm/"
16
+ end
17
+ require 'rubygems'
18
+ require 'bundler'
19
+ begin
20
+ Bundler.setup(:default, :development)
21
+ rescue Bundler::BundlerError => e
22
+ $stderr.puts e.message
23
+ $stderr.puts "Run `bundle install` to install missing gems"
24
+ exit e.status_code
25
+ end
26
+ require 'test/unit'
27
+ require 'shoulda'
28
+
29
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
30
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
31
+ require 'bio-rdf2json'
32
+
33
+ class Test::Unit::TestCase
34
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class TestBioRdf2json < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rdf2json
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Joachim Baran
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rdf
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: json-ld
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: shoulda
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: jeweler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 1.8.4
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 1.8.4
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.21
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.21
97
+ - !ruby/object:Gem::Dependency
98
+ name: rdoc
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '3.12'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '3.12'
111
+ description: Converts RDF N-Triples and N-Quads files to either JSON-LD or JSON. Supports
112
+ minimization of long URIs to shorter descriptive key names.
113
+ email: joachim.baran@gmail.com
114
+ executables:
115
+ - rdf2json
116
+ extensions: []
117
+ extra_rdoc_files:
118
+ - LICENSE.txt
119
+ - README.md
120
+ - README.rdoc
121
+ files:
122
+ - .document
123
+ - .travis.yml
124
+ - Gemfile
125
+ - LICENSE.txt
126
+ - README.md
127
+ - README.rdoc
128
+ - Rakefile
129
+ - VERSION
130
+ - lib/rdf2json.rb
131
+ - lib/rdf2json/rdf2json.rb
132
+ - test/helper.rb
133
+ - test/test_bio-rdf2json.rb
134
+ - bin/rdf2json
135
+ homepage: http://github.com/joejimbo/rdf2json
136
+ licenses:
137
+ - MIT
138
+ metadata: {}
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - '>='
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubyforge_project:
155
+ rubygems_version: 2.0.3
156
+ signing_key:
157
+ specification_version: 4
158
+ summary: RDF N-Triples and N-Quads to JSON-LD or JSON converter.
159
+ test_files: []