rdf-raptor 1.99.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README +1 -1
- data/VERSION +1 -1
- data/lib/rdf/raptor/ffi.rb +38 -9
- data/lib/rdf/raptor/ffi/v2.rb +2 -1
- data/lib/rdf/raptor/ffi/v2/serializer.rb +4 -2
- data/lib/rdf/raptor/ntriples.rb +5 -0
- data/lib/rdf/raptor/rdfa.rb +22 -1
- data/lib/rdf/raptor/rdfxml.rb +4 -0
- data/lib/rdf/raptor/turtle.rb +31 -0
- data/lib/rdf/raptor/version.rb +1 -1
- metadata +32 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f524bedbbad075002013ef85da611107b1fbc9c
|
4
|
+
data.tar.gz: c6588defdb51badb022569508b072cc6e16e1482
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0253224a82c7202453af159b3fba9941791a4647a5314bdbbe6e5a6eb7ba325a61ddc8e7420d03de46eb2f1998ae833fd35bbd3314833f30acbb4b19723618e9
|
7
|
+
data.tar.gz: 0d5b7581ad861980985e47905d4470c2be745d4f644270a258443a07cb65656dcbae1ed0e8a758496bf29264e5131ef4a32bac9a2b1c2e5ea25a64bfb136c777
|
data/README
CHANGED
@@ -20,7 +20,7 @@ Features
|
|
20
20
|
* Serializes RDF statements into Graphviz format.
|
21
21
|
* Provides serialization format autodetection for RDF/XML, Turtle and RDFa.
|
22
22
|
* Compatible with any operating system supported by Raptor and Ruby.
|
23
|
-
* Compatible with MRI
|
23
|
+
* Compatible with MRI 2.x, REE, JRuby and Rubinius.
|
24
24
|
|
25
25
|
Examples
|
26
26
|
--------
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0
|
data/lib/rdf/raptor/ffi.rb
CHANGED
@@ -28,6 +28,8 @@ module RDF::Raptor
|
|
28
28
|
##
|
29
29
|
# FFI reader implementation.
|
30
30
|
class Reader < RDF::Reader
|
31
|
+
include RDF::Util::Logger
|
32
|
+
|
31
33
|
##
|
32
34
|
# Initializes the FFI reader instance.
|
33
35
|
#
|
@@ -54,12 +56,12 @@ module RDF::Raptor
|
|
54
56
|
|
55
57
|
ERROR_HANDLER = Proc.new do |user_data, locator, message|
|
56
58
|
line = V2.raptor_locator_line(locator)
|
57
|
-
|
59
|
+
log_error(message, lineno: line)
|
58
60
|
end
|
59
61
|
|
60
62
|
WARNING_HANDLER = Proc.new do |user_data, locator, message|
|
61
|
-
|
62
|
-
|
63
|
+
line = V2.raptor_locator_line(locator)
|
64
|
+
log_warn(message, lineno: line)
|
63
65
|
end
|
64
66
|
|
65
67
|
##
|
@@ -85,6 +87,10 @@ module RDF::Raptor
|
|
85
87
|
block.call(V2::Statement.new(statement, self).to_rdf)
|
86
88
|
end
|
87
89
|
end
|
90
|
+
|
91
|
+
if validate? && log_statistics[:error]
|
92
|
+
raise RDF::ReaderError, "Errors found during processing"
|
93
|
+
end
|
88
94
|
end
|
89
95
|
enum_for(:each_statement, options)
|
90
96
|
end
|
@@ -97,8 +103,8 @@ module RDF::Raptor
|
|
97
103
|
# @see RDF::Reader#each_triple
|
98
104
|
def each_triple(&block)
|
99
105
|
if block_given?
|
100
|
-
|
101
|
-
block.call(
|
106
|
+
each_statement do |statement|
|
107
|
+
block.call(*statement.to_triple)
|
102
108
|
end
|
103
109
|
end
|
104
110
|
enum_for(:each_triple)
|
@@ -139,6 +145,8 @@ module RDF::Raptor
|
|
139
145
|
##
|
140
146
|
# FFI writer implementation.
|
141
147
|
class Writer < RDF::Writer
|
148
|
+
include RDF::Util::Logger
|
149
|
+
|
142
150
|
##
|
143
151
|
# Initializes the FFI writer instance.
|
144
152
|
#
|
@@ -151,18 +159,18 @@ module RDF::Raptor
|
|
151
159
|
def initialize(output = $stdout, options = {}, &block)
|
152
160
|
@format = self.class.format.rapper_format
|
153
161
|
@serializer = V2::Serializer.new(@format)
|
154
|
-
|
155
|
-
|
162
|
+
@serializer.error_handler = ERROR_HANDLER
|
163
|
+
@serializer.warning_handler = WARNING_HANDLER
|
156
164
|
@serializer.start_to(output, options)
|
157
165
|
super
|
158
166
|
end
|
159
167
|
|
160
168
|
ERROR_HANDLER = Proc.new do |user_data, locator, message|
|
161
|
-
|
169
|
+
log_error(message)
|
162
170
|
end
|
163
171
|
|
164
172
|
WARNING_HANDLER = Proc.new do |user_data, locator, message|
|
165
|
-
|
173
|
+
log_warn(message)
|
166
174
|
end
|
167
175
|
|
168
176
|
##
|
@@ -171,6 +179,23 @@ module RDF::Raptor
|
|
171
179
|
# @return [V2::Serializer]
|
172
180
|
attr_reader :serializer
|
173
181
|
|
182
|
+
def self.serialize(value)
|
183
|
+
output = StringIO.new
|
184
|
+
writer = new(output)
|
185
|
+
case value
|
186
|
+
when nil then nil
|
187
|
+
when FalseClass then value.to_s
|
188
|
+
when RDF::Statement
|
189
|
+
writer.write_triple(statement.subject, statement.predicate, statement.object)
|
190
|
+
when RDF::Term
|
191
|
+
writer.write_term(value)
|
192
|
+
else
|
193
|
+
raise ArgumentError, "expected an RDF::Statement or RDF::Term, but got #{value.inspect}"
|
194
|
+
end
|
195
|
+
|
196
|
+
output.to_s
|
197
|
+
end
|
198
|
+
|
174
199
|
##
|
175
200
|
# @param [RDF::Resource] subject
|
176
201
|
# @param [RDF::URI] predicate
|
@@ -181,6 +206,10 @@ module RDF::Raptor
|
|
181
206
|
@serializer.serialize_triple(subject, predicate, object)
|
182
207
|
end
|
183
208
|
|
209
|
+
def write_term(value)
|
210
|
+
raise NotImplementedError
|
211
|
+
end
|
212
|
+
|
184
213
|
##
|
185
214
|
# @return [void]
|
186
215
|
# @see RDF::Writer#write_prologue
|
data/lib/rdf/raptor/ffi/v2.rb
CHANGED
@@ -28,6 +28,7 @@ module RDF::Raptor::FFI
|
|
28
28
|
# @see http://librdf.org/raptor/api/tutorial-initialising-finishing.html
|
29
29
|
typedef :pointer, :raptor_world
|
30
30
|
typedef :int, :raptor_version
|
31
|
+
typedef :pointer, :raptor_iostream
|
31
32
|
attach_function :raptor_new_world_internal, [:raptor_version], :raptor_world
|
32
33
|
attach_function :raptor_free_world, [], :void
|
33
34
|
attach_function :raptor_alloc_memory, [:size_t], :pointer
|
@@ -77,6 +78,7 @@ module RDF::Raptor::FFI
|
|
77
78
|
attach_function :raptor_new_term_from_literal, [:raptor_world, :literal, :datatype, :language], :raptor_term
|
78
79
|
attach_function :raptor_new_term_from_blank, [:raptor_world, :blank], :raptor_term
|
79
80
|
attach_function :raptor_free_term, [:raptor_term], :void
|
81
|
+
attach_function :raptor_term_ntriples_write, [:raptor_term, :raptor_iostream], :int
|
80
82
|
|
81
83
|
# @see http://librdf.org/raptor/api/raptor2-section-xml-namespace.html
|
82
84
|
typedef :pointer, :raptor_namespace
|
@@ -106,7 +108,6 @@ module RDF::Raptor::FFI
|
|
106
108
|
attach_function :raptor_free_parser, [:raptor_parser], :void
|
107
109
|
|
108
110
|
# @see http://librdf.org/raptor/api/raptor2-section-iostream.html
|
109
|
-
typedef :pointer, :raptor_iostream
|
110
111
|
attach_function :raptor_new_iostream_from_handler, [:raptor_world, :pointer, :pointer], :raptor_iostream
|
111
112
|
attach_function :raptor_new_iostream_to_filename, [:raptor_world, :string], :raptor_iostream
|
112
113
|
attach_function :raptor_new_iostream_to_sink, [:raptor_world], :raptor_iostream
|
@@ -7,6 +7,8 @@ module RDF::Raptor::FFI::V2
|
|
7
7
|
class Serializer < ::FFI::ManagedStruct
|
8
8
|
include RDF::Raptor::FFI
|
9
9
|
|
10
|
+
attr_reader :iostream
|
11
|
+
|
10
12
|
# Note this layout is private
|
11
13
|
layout :world, :pointer,
|
12
14
|
:locator, :pointer,
|
@@ -49,14 +51,14 @@ module RDF::Raptor::FFI::V2
|
|
49
51
|
# @param [Proc] handler
|
50
52
|
# @return [void]
|
51
53
|
def error_handler=(handler)
|
52
|
-
V2.raptor_serializer_set_error_handler(self, self, handler)
|
54
|
+
V2.raptor_serializer_set_error_handler(self, self, handler) if V2.respond_to?(:raptor_serializer_set_error_handler)
|
53
55
|
end
|
54
56
|
|
55
57
|
##
|
56
58
|
# @param [Proc] handler
|
57
59
|
# @return [void]
|
58
60
|
def warning_handler=(handler)
|
59
|
-
V2.raptor_serializer_set_warning_handler(self, self, handler)
|
61
|
+
V2.raptor_serializer_set_warning_handler(self, self, handler) if V2.respond_to?(:raptor_serializer_set_warning_handler)
|
60
62
|
end
|
61
63
|
|
62
64
|
##
|
data/lib/rdf/raptor/ntriples.rb
CHANGED
@@ -86,7 +86,12 @@ module RDF::Raptor
|
|
86
86
|
# end
|
87
87
|
#
|
88
88
|
class Writer < RDF::Raptor::Writer
|
89
|
+
include RDF::Raptor::FFI
|
89
90
|
format RDF::Raptor::NTriples::Format
|
91
|
+
|
92
|
+
def write_term(value)
|
93
|
+
V2.raptor_term_ntriples_write(value, @serializer.iostream)
|
94
|
+
end
|
90
95
|
end # Writer
|
91
96
|
end # NTriples
|
92
97
|
end # RDF::Raptor
|
data/lib/rdf/raptor/rdfa.rb
CHANGED
@@ -27,11 +27,32 @@ module RDF::Raptor
|
|
27
27
|
class Format < RDF::Format
|
28
28
|
extend RDF::Raptor::Format
|
29
29
|
|
30
|
-
content_type '
|
30
|
+
content_type 'text/html',
|
31
|
+
aliases: %w(application/xhtml+xml image/svg+xml),
|
32
|
+
extensions: [:html, :xhtml, :svg]
|
31
33
|
content_encoding 'utf-8'
|
32
34
|
rapper_format :rdfa
|
33
35
|
|
34
36
|
reader { RDF::Raptor::RDFa::Reader }
|
37
|
+
|
38
|
+
##
|
39
|
+
# Sample detection to see if it matches RDFa (not RDF/XML or Microdata)
|
40
|
+
#
|
41
|
+
# Use a text sample to detect the format of an input file. Sub-classes implement
|
42
|
+
# a matcher sufficient to detect probably format matches, including disambiguating
|
43
|
+
# between other similar formats.
|
44
|
+
#
|
45
|
+
# @param [String] sample Beginning several bytes (~ 1K) of input.
|
46
|
+
# @return [Boolean]
|
47
|
+
def self.detect(sample)
|
48
|
+
(sample.match(/<[^>]*(about|resource|prefix|typeof|property|vocab)\s*="[^>]*>/m) ||
|
49
|
+
sample.match(/<[^>]*DOCTYPE\s+html[^>]*>.*xmlns:/im)
|
50
|
+
) && !sample.match(/<(\w+:)?(RDF)/)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.symbols
|
54
|
+
[:rdfa, :lite, :html, :xhtml, :svg]
|
55
|
+
end
|
35
56
|
end # Format
|
36
57
|
|
37
58
|
##
|
data/lib/rdf/raptor/rdfxml.rb
CHANGED
data/lib/rdf/raptor/turtle.rb
CHANGED
@@ -40,6 +40,37 @@ module RDF::Raptor
|
|
40
40
|
|
41
41
|
reader { RDF::Raptor::Turtle::Reader }
|
42
42
|
writer { RDF::Raptor::Turtle::Writer }
|
43
|
+
|
44
|
+
##
|
45
|
+
# Sample detection to see if it matches Turtle (or N-Triples)
|
46
|
+
#
|
47
|
+
# Use a text sample to detect the format of an input file. Sub-classes implement
|
48
|
+
# a matcher sufficient to detect probably format matches, including disambiguating
|
49
|
+
# between other similar formats.
|
50
|
+
#
|
51
|
+
# @param [String] sample Beginning several bytes (~ 1K) of input.
|
52
|
+
# @return [Boolean]
|
53
|
+
def self.detect(sample)
|
54
|
+
!!sample.match(%r(
|
55
|
+
(?:@(base|prefix)) | # Turtle keywords
|
56
|
+
["']{3} | # STRING_LITERAL_LONG_SINGLE_QUOTE/2
|
57
|
+
"[^"]*"^^ | "[^"]*"@ | # Typed/Language literals
|
58
|
+
(?:
|
59
|
+
(?:\s*(?:(?:<[^>]*>) | (?:\w*:\w+) | (?:"[^"]*"))\s*[,;]) ||
|
60
|
+
(?:\s*(?:(?:<[^>]*>) | (?:\w*:\w+) | (?:"[^"]*"))){3}
|
61
|
+
)
|
62
|
+
)mx) && !(
|
63
|
+
sample.match(%r([{}])) || # TriG
|
64
|
+
sample.match(%r(@keywords|=>|\{)) || # N3
|
65
|
+
sample.match(%r(<(?:\/|html|rdf))i) || # HTML, RDF/XML
|
66
|
+
sample.match(%r(^(?:\s*<[^>]*>){4}.*\.\s*$)) || # N-Quads
|
67
|
+
sample.match(%r("@(context|subject|iri)")) # JSON-LD
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.symbols
|
72
|
+
[:turtle, :ttl]
|
73
|
+
end
|
43
74
|
end # Format
|
44
75
|
|
45
76
|
##
|
data/lib/rdf/raptor/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-raptor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
@@ -9,106 +9,106 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-04-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.9.
|
20
|
+
version: 1.9.10
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.9.
|
27
|
+
version: 1.9.10
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rdf
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '2.0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '2.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: yard
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.8
|
48
|
+
version: '0.8'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.8
|
55
|
+
version: '0.8'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rspec
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 2
|
62
|
+
version: '3.2'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 2
|
69
|
+
version: '3.2'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec-its
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - "
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
76
|
+
version: '1.2'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - "
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
83
|
+
version: '1.2'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: rdf-spec
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - "
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
90
|
+
version: '2.0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - "
|
95
|
+
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
97
|
+
version: '2.0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rake
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - "
|
102
|
+
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
104
|
+
version: '10.0'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - "
|
109
|
+
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
111
|
+
version: '10.0'
|
112
112
|
description: RDF.rb plugin for parsing/serializing NTriples, RDF/XML, Turtle and RDFa
|
113
113
|
data using the Raptor RDF Parser library.
|
114
114
|
email: public-rdf-ruby@w3.org
|
@@ -163,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: '2.0'
|
167
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
168
|
requirements:
|
169
169
|
- - ">="
|
@@ -172,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
172
|
requirements:
|
173
173
|
- libraptor2 (>= 2.0)
|
174
174
|
rubyforge_project: rdf
|
175
|
-
rubygems_version: 2.4.
|
175
|
+
rubygems_version: 2.4.8
|
176
176
|
signing_key:
|
177
177
|
specification_version: 4
|
178
178
|
summary: Raptor RDF Parser plugin for RDF.rb.
|