rdf 0.1.1 → 0.1.2
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.
- data/README +4 -4
- data/VERSION +1 -1
- data/lib/rdf.rb +1 -0
- data/lib/rdf/mixin/mutable.rb +1 -0
- data/lib/rdf/mixin/queryable.rb +9 -3
- data/lib/rdf/model/resource.rb +15 -2
- data/lib/rdf/model/statement.rb +8 -3
- data/lib/rdf/ntriples/format.rb +1 -1
- data/lib/rdf/ntriples/reader.rb +1 -1
- data/lib/rdf/reader.rb +1 -1
- data/lib/rdf/repository.rb +3 -3
- data/lib/rdf/version.rb +3 -3
- data/lib/rdf/writer.rb +12 -0
- metadata +3 -3
data/README
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
RDF.rb:
|
2
|
-
|
1
|
+
RDF.rb: Linked Data for Ruby
|
2
|
+
============================
|
3
3
|
|
4
4
|
This is a pure-Ruby library for working with [Resource Description Framework
|
5
5
|
(RDF)][RDF] data.
|
@@ -147,8 +147,8 @@ See Also
|
|
147
147
|
* [RDFcache](http://rdfcache.rubyforge.org/)
|
148
148
|
* [Trinity](http://trinity.datagraph.org/)
|
149
149
|
|
150
|
-
|
151
|
-
|
150
|
+
Authors
|
151
|
+
-------
|
152
152
|
|
153
153
|
* [Arto Bendiken](mailto:arto.bendiken@gmail.com) - <http://ar.to/>
|
154
154
|
* [Ben Lavender](mailto:blavender@gmail.com) - <http://bhuga.net/>
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/rdf.rb
CHANGED
data/lib/rdf/mixin/mutable.rb
CHANGED
data/lib/rdf/mixin/queryable.rb
CHANGED
@@ -13,10 +13,14 @@ module RDF
|
|
13
13
|
##
|
14
14
|
# Queries `self` for RDF statements matching the given pattern.
|
15
15
|
#
|
16
|
-
# @
|
16
|
+
# @example
|
17
|
+
# queryable.query([nil, RDF::DOAP.developer, nil])
|
18
|
+
# queryable.query(:predicate => RDF::DOAP.developer)
|
19
|
+
#
|
20
|
+
# @param [Query, Statement, Array(Value), Hash] pattern
|
17
21
|
# @yield [statement]
|
18
22
|
# @yieldparam [Statement]
|
19
|
-
# @return [Array<Statement
|
23
|
+
# @return [Array<Statement>]
|
20
24
|
def query(pattern, &block)
|
21
25
|
raise TypeError.new("#{self} is not readable") if respond_to?(:readable) && !readable?
|
22
26
|
|
@@ -25,6 +29,8 @@ module RDF
|
|
25
29
|
pattern.execute(self, &block)
|
26
30
|
when Array
|
27
31
|
query(Statement.new(*pattern), &block)
|
32
|
+
when Hash
|
33
|
+
query(Statement.new(pattern), &block)
|
28
34
|
when Statement
|
29
35
|
if block_given?
|
30
36
|
find_all { |statement| pattern === statement }.each(&block)
|
@@ -32,7 +38,7 @@ module RDF
|
|
32
38
|
find_all { |statement| pattern === statement }.extend(RDF::Enumerable, RDF::Queryable)
|
33
39
|
end
|
34
40
|
else
|
35
|
-
raise ArgumentError.new("expected RDF::Query
|
41
|
+
raise ArgumentError.new("expected RDF::Query, RDF::Pattern, Array or Hash, but got #{pattern.inspect}")
|
36
42
|
end
|
37
43
|
end
|
38
44
|
end
|
data/lib/rdf/model/resource.rb
CHANGED
@@ -4,7 +4,20 @@ module RDF
|
|
4
4
|
#
|
5
5
|
# @abstract
|
6
6
|
class Resource < Value
|
7
|
-
|
8
|
-
|
7
|
+
##
|
8
|
+
# Instantiates an {RDF::Node} or an {RDF::URI}, depending on the given
|
9
|
+
# argument.
|
10
|
+
#
|
11
|
+
# @return [RDF::Resource]
|
12
|
+
def self.new(*args, &block)
|
13
|
+
if self == Resource
|
14
|
+
case arg = args.shift
|
15
|
+
when /^_:(.*)$/ then Node.new($1, *args, &block)
|
16
|
+
else URI.new(arg, *args, &block)
|
17
|
+
end
|
18
|
+
else
|
19
|
+
super
|
20
|
+
end
|
21
|
+
end
|
9
22
|
end
|
10
23
|
end
|
data/lib/rdf/model/statement.rb
CHANGED
@@ -49,9 +49,10 @@ module RDF
|
|
49
49
|
# @param [Hash{Symbol => Object}] options
|
50
50
|
# @option options [Resource] :context (nil)
|
51
51
|
def initialize(subject = nil, predicate = nil, object = nil, options = {})
|
52
|
+
options = options.dup unless options.empty?
|
52
53
|
case subject
|
53
54
|
when Hash
|
54
|
-
options = subject
|
55
|
+
options = subject.dup
|
55
56
|
subject = options.delete(:subject)
|
56
57
|
predicate = options.delete(:predicate)
|
57
58
|
object = options.delete(:object)
|
@@ -143,7 +144,7 @@ module RDF
|
|
143
144
|
# @param [Statement] other
|
144
145
|
# @return [Boolean]
|
145
146
|
def eql?(other)
|
146
|
-
other.is_a?(Statement) && self == other
|
147
|
+
other.is_a?(Statement) && self == other && self.context == other.context
|
147
148
|
end
|
148
149
|
|
149
150
|
##
|
@@ -157,6 +158,7 @@ module RDF
|
|
157
158
|
# @param [Statement] other
|
158
159
|
# @return [Boolean]
|
159
160
|
def ===(other)
|
161
|
+
return false if has_context? && context != other.context
|
160
162
|
return false if has_subject? && subject != other.subject
|
161
163
|
return false if has_predicate? && predicate != other.predicate
|
162
164
|
return false if has_object? && object != other.object
|
@@ -228,7 +230,10 @@ module RDF
|
|
228
230
|
when RDF::URI then "<#{object}>"
|
229
231
|
else object.inspect
|
230
232
|
end
|
231
|
-
buffer <<
|
233
|
+
buffer << case context
|
234
|
+
when nil then " ."
|
235
|
+
else " <#{context}> ."
|
236
|
+
end
|
232
237
|
buffer.string
|
233
238
|
end
|
234
239
|
end
|
data/lib/rdf/ntriples/format.rb
CHANGED
@@ -2,7 +2,7 @@ module RDF::NTriples
|
|
2
2
|
##
|
3
3
|
# N-Triples format specification.
|
4
4
|
#
|
5
|
-
# @example Obtaining an
|
5
|
+
# @example Obtaining an NTriples format class
|
6
6
|
# RDF::Format.for(:ntriples) #=> RDF::NTriples::Format
|
7
7
|
# RDF::Format.for("etc/doap.nt")
|
8
8
|
# RDF::Format.for(:file_name => "etc/doap.nt")
|
data/lib/rdf/ntriples/reader.rb
CHANGED
@@ -2,7 +2,7 @@ module RDF::NTriples
|
|
2
2
|
##
|
3
3
|
# N-Triples parser.
|
4
4
|
#
|
5
|
-
# @example Obtaining an
|
5
|
+
# @example Obtaining an NTriples reader class
|
6
6
|
# RDF::Reader.for(:ntriples) #=> RDF::NTriples::Reader
|
7
7
|
# RDF::Reader.for("etc/doap.nt")
|
8
8
|
# RDF::Reader.for(:file_name => "etc/doap.nt")
|
data/lib/rdf/reader.rb
CHANGED
@@ -104,7 +104,7 @@ module RDF
|
|
104
104
|
# @yieldparam [Reader]
|
105
105
|
# @raise [FormatError] if no reader available for the specified format
|
106
106
|
def self.open(filename, options = {}, &block)
|
107
|
-
|
107
|
+
Kernel.open(filename, 'rb') do |file|
|
108
108
|
if reader = self.for(options[:format] || filename)
|
109
109
|
reader.new(file, options, &block)
|
110
110
|
else
|
data/lib/rdf/repository.rb
CHANGED
@@ -89,9 +89,9 @@ module RDF
|
|
89
89
|
# @yield [repository]
|
90
90
|
# @yieldparam [Repository] repository
|
91
91
|
def initialize(options = {}, &block)
|
92
|
-
@
|
93
|
-
@
|
94
|
-
@
|
92
|
+
@options = options.dup
|
93
|
+
@uri = @options.delete(:uri)
|
94
|
+
@title = @options.delete(:title)
|
95
95
|
|
96
96
|
# Provide a default in-memory implementation:
|
97
97
|
if self.class.equal?(RDF::Repository)
|
data/lib/rdf/version.rb
CHANGED
@@ -2,15 +2,15 @@ module RDF
|
|
2
2
|
module VERSION
|
3
3
|
MAJOR = 0
|
4
4
|
MINOR = 1
|
5
|
-
TINY =
|
5
|
+
TINY = 2
|
6
6
|
EXTRA = nil
|
7
7
|
|
8
8
|
STRING = [MAJOR, MINOR, TINY].join('.')
|
9
|
-
STRING << "
|
9
|
+
STRING << ".#{EXTRA}" if EXTRA
|
10
10
|
|
11
11
|
##
|
12
12
|
# @return [String]
|
13
|
-
def self.to_s()
|
13
|
+
def self.to_s() STRING end
|
14
14
|
|
15
15
|
##
|
16
16
|
# @return [String]
|
data/lib/rdf/writer.rb
CHANGED
@@ -97,11 +97,13 @@ module RDF
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def self.dump(data, io = nil, options = {})
|
100
|
+
io = File.open(io, 'w') if io.is_a?(String)
|
100
101
|
if io
|
101
102
|
new(io) do |writer|
|
102
103
|
data.each_statement do |statement|
|
103
104
|
writer << statement
|
104
105
|
end
|
106
|
+
writer.flush
|
105
107
|
end
|
106
108
|
else
|
107
109
|
buffer do |writer|
|
@@ -258,6 +260,16 @@ module RDF
|
|
258
260
|
raise NotImplementedError # override in subclasses
|
259
261
|
end
|
260
262
|
|
263
|
+
##
|
264
|
+
# Flushes the underlying output buffer.
|
265
|
+
#
|
266
|
+
# @return [void]
|
267
|
+
def flush
|
268
|
+
@output.flush if @output.respond_to?(:flush)
|
269
|
+
end
|
270
|
+
|
271
|
+
alias_method :flush!, :flush
|
272
|
+
|
261
273
|
protected
|
262
274
|
|
263
275
|
def puts(*args)
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Arto Bendiken
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-03-
|
18
|
+
date: 2010-03-27 00:00:00 +01:00
|
19
19
|
default_executable: rdf
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|