rdf 1.1.1.1 → 1.1.2.1
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/VERSION +1 -1
- data/lib/rdf/model/list.rb +44 -9
- data/lib/rdf/model/statement.rb +2 -0
- data/lib/rdf/query/pattern.rb +11 -10
- data/lib/rdf/vocab.rb +8 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2620eff975a3e794371b52facc72c8c343b3a43
|
4
|
+
data.tar.gz: 21a6349cc1781e917feb435bb5ce3386e9a7749d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98fa047d2310247ddd4b0f5f68a2555962091d9b5167ddd7186fe6e3b0600fdd014f276d1c93aa3b1813eb2a41776854b5b89ef1eae617323094bc6d99b59042
|
7
|
+
data.tar.gz: 23be85cc9a6c6e134d976899c0412be6b6f0381ec2d9d0db980456a64c13b6b516b4872e2ec57a0796430454ea54dc9beba1f8a4446c6172822e9d0d4e36ce6b
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.2.1
|
data/lib/rdf/model/list.rb
CHANGED
@@ -33,16 +33,50 @@ module RDF
|
|
33
33
|
##
|
34
34
|
# Initializes a newly-constructed list.
|
35
35
|
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
36
|
+
# Instantiates a new list based at `subject`, which **should** be an RDF::Node. List may be initialized using passed `values`.
|
37
|
+
#
|
38
|
+
# If a `values` initializer is set with an empty list, `subject`
|
39
|
+
# will be used as the first element in the list. Otherwise,
|
40
|
+
# if the list is not empty, `subject` identifies the first element
|
41
|
+
# of the list to which `values` are prepended yielding a new `subject`.
|
42
|
+
# Otherwise, if there are no initial `values`, and `subject` does
|
43
|
+
# not identify an existing list in `graph`, the list remains
|
44
|
+
# identified by `subject`, but will be invalid.
|
45
|
+
#
|
46
|
+
# @overload initialize(subject = nil, graph = nil, values = nil, &block)
|
47
|
+
# @param [RDF::URI] subject
|
48
|
+
# @param [RDF::Graph] graph
|
49
|
+
# @param [Array<RDF::Term>] values
|
50
|
+
# Any values which are not terms are coerced to `RDF::Literal`.
|
51
|
+
# @yield [list]
|
52
|
+
# @yieldparam [RDF::List] list
|
53
|
+
# @deprecated Subject should be an {RDF::Node}, not a {RDF::URI}. A
|
54
|
+
# future release will remove support for URI subjects
|
55
|
+
# @overload initialize(subject = nil, graph = nil, values = nil, &block)
|
56
|
+
# @param [RDF::Node] subject (RDF.nil)
|
57
|
+
# @param [RDF::Graph] graph (RDF::Graph.new)
|
58
|
+
# @param [Array<RDF::Term>] values
|
59
|
+
# Any values which are not terms are coerced to `RDF::Literal`.
|
60
|
+
# @yield [list]
|
61
|
+
# @yieldparam [RDF::List] list
|
41
62
|
def initialize(subject = nil, graph = nil, values = nil, &block)
|
42
63
|
@subject = subject || RDF.nil
|
43
64
|
@graph = graph || RDF::Graph.new
|
44
|
-
|
45
|
-
|
65
|
+
is_empty = @graph.query(:subject => subject, :predicate => RDF.first).empty?
|
66
|
+
|
67
|
+
if subject && is_empty
|
68
|
+
# An empty list with explicit subject and value initializers
|
69
|
+
@subject = RDF.nil
|
70
|
+
first, *values = Array(values)
|
71
|
+
if first
|
72
|
+
# Intantiate the list from values, and insert the first value using subject.
|
73
|
+
values.reverse_each {|value| self.unshift(value)}
|
74
|
+
graph.insert RDF::Statement(subject, RDF.first, first)
|
75
|
+
graph.insert RDF::Statement(subject, RDF.rest, @subject)
|
76
|
+
end
|
77
|
+
@subject = subject
|
78
|
+
else
|
79
|
+
# Otherwise, prepend any values, which resets @subject
|
46
80
|
Array(values).reverse_each {|value| self.unshift(value)}
|
47
81
|
end
|
48
82
|
|
@@ -211,14 +245,15 @@ module RDF
|
|
211
245
|
# @example
|
212
246
|
# RDF::List[].unshift(1).unshift(2).unshift(3) #=> RDF::List[3, 2, 1]
|
213
247
|
#
|
214
|
-
# @param [RDF::Term] value
|
248
|
+
# @param [RDF::Term, Array<RDF::Term>] value
|
249
|
+
# A non-RDF::Term is coerced to a Literal
|
215
250
|
# @return [RDF::List]
|
216
251
|
# @see http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-unshift
|
217
252
|
#
|
218
253
|
def unshift(value)
|
219
254
|
value = case value
|
220
255
|
when nil then RDF.nil
|
221
|
-
when RDF::
|
256
|
+
when RDF::Term then value
|
222
257
|
when Array then RDF::List.new(nil, graph, value)
|
223
258
|
else value
|
224
259
|
end
|
data/lib/rdf/model/statement.rb
CHANGED
@@ -57,6 +57,7 @@ module RDF
|
|
57
57
|
# @option options [RDF::Resource] :subject (nil)
|
58
58
|
# @option options [RDF::URI] :predicate (nil)
|
59
59
|
# @option options [RDF::Term] :object (nil)
|
60
|
+
# if not an `RDF::Term`, it is coerced to `RDF::Literal`.
|
60
61
|
# @option options [RDF::Resource] :context (nil)
|
61
62
|
# Note, in RDF 1.1, a context MUST be an IRI.
|
62
63
|
# @return [RDF::Statement]
|
@@ -65,6 +66,7 @@ module RDF
|
|
65
66
|
# @param [RDF::Resource] subject
|
66
67
|
# @param [RDF::URI] predicate
|
67
68
|
# @param [RDF::Term] object
|
69
|
+
# if not an `RDF::Term`, it is coerced to `RDF::Literal`.
|
68
70
|
# @param [Hash{Symbol => Object}] options
|
69
71
|
# @option options [RDF::Resource] :context (nil)
|
70
72
|
# @return [RDF::Statement]
|
data/lib/rdf/query/pattern.rb
CHANGED
@@ -18,20 +18,21 @@ module RDF; class Query
|
|
18
18
|
##
|
19
19
|
# @overload initialize(options = {})
|
20
20
|
# @param [Hash{Symbol => Object}] options
|
21
|
-
# @option options [Variable, Resource] :subject (nil)
|
22
|
-
# @option options [Variable, URI] :predicate (nil)
|
23
|
-
# @option options [Variable, Term] :object (nil)
|
24
|
-
# @option options [Variable, Resource] :context (nil)
|
21
|
+
# @option options [Variable, Resource, nil] :subject (nil)
|
22
|
+
# @option options [Variable, URI, nil] :predicate (nil)
|
23
|
+
# @option options [Variable, Term, nil] :object (nil)
|
24
|
+
# @option options [Variable, Resource, nil, false] :context (nil)
|
25
25
|
# A context of nil matches any context, a context of false, matches only the default context.
|
26
26
|
# @option options [Boolean] :optional (false)
|
27
27
|
#
|
28
28
|
# @overload initialize(subject, predicate, object, options = {})
|
29
|
-
# @param [Variable, Resource] subject
|
30
|
-
# @param [Variable, URI] predicate
|
31
|
-
# @param [Variable,
|
32
|
-
# @param [Hash{Symbol => Object}]
|
33
|
-
# @option options [Variable, Resource] :context (nil)
|
34
|
-
#
|
29
|
+
# @param [Variable, Resource, nil] subject
|
30
|
+
# @param [Variable, URI, nil] predicate
|
31
|
+
# @param [Variable, Termm, nil] object
|
32
|
+
# @param [Hash{Symbol => Object}] options
|
33
|
+
# @option options [Variable, Resource, nil, false] :context (nil)
|
34
|
+
# A context of nil matches any context, a context of false, matches only the default context.
|
35
|
+
# @option options [Boolean] :optional (false)
|
35
36
|
def initialize(subject = nil, predicate = nil, object = nil, options = {})
|
36
37
|
super
|
37
38
|
end
|
data/lib/rdf/vocab.rb
CHANGED
@@ -87,7 +87,7 @@ module RDF
|
|
87
87
|
# @overload property(name, options)
|
88
88
|
# Defines a new property or class in the vocabulary.
|
89
89
|
# Optional labels and comments are stripped of unnecessary whitespace.
|
90
|
-
#
|
90
|
+
#
|
91
91
|
# @param [String, #to_s] name
|
92
92
|
# @param [Hash{Symbol => Object}] options
|
93
93
|
# @option options [String, #to_s] :label
|
@@ -281,7 +281,7 @@ module RDF
|
|
281
281
|
# @overload property(name, options)
|
282
282
|
# Defines a new property or class in the vocabulary.
|
283
283
|
# Optional labels and comments are stripped of unnecessary whitespace.
|
284
|
-
#
|
284
|
+
#
|
285
285
|
# @param [String, #to_s] name
|
286
286
|
# @param [Hash{Symbol => Object}] options
|
287
287
|
# @option options [String, #to_s] :label
|
@@ -301,6 +301,12 @@ module RDF
|
|
301
301
|
end
|
302
302
|
end
|
303
303
|
|
304
|
+
##
|
305
|
+
# @return [Array<RDF::URI>] a list of properties in the current vocabulary
|
306
|
+
def properties
|
307
|
+
@@properties.keys
|
308
|
+
end
|
309
|
+
|
304
310
|
def [](name)
|
305
311
|
prop = RDF::URI.intern([to_s, name.to_s].join(''))
|
306
312
|
@@properties.fetch(prop) #raises KeyError on missing value
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2014-01-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdf-spec
|
@@ -244,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
244
244
|
version: '0'
|
245
245
|
requirements: []
|
246
246
|
rubyforge_project: rdf
|
247
|
-
rubygems_version: 2.
|
247
|
+
rubygems_version: 2.0.14
|
248
248
|
signing_key:
|
249
249
|
specification_version: 4
|
250
250
|
summary: A Ruby library for working with Resource Description Framework (RDF) data.
|