rdf 1.1.0.p2 → 1.1.0.p3
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 +15 -0
- data/CREDITS +1 -0
- data/README +1 -0
- data/VERSION +1 -1
- data/lib/rdf/model/list.rb +70 -3
- data/lib/rdf/model/statement.rb +2 -3
- data/lib/rdf/nquads.rb +4 -2
- data/lib/rdf/ntriples/format.rb +1 -1
- data/lib/rdf/query/solution.rb +17 -1
- data/lib/rdf/query/solutions.rb +14 -0
- metadata +56 -68
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MzZkZDE2NTczM2Q1MGRjYjM1ZjJmYzNkNWY4YTY3MWMxZmJjNzZlZQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODM4ZmFlMThiYjRiNTI5YTk3MGI0ODg4NTIwODhkZWRlMGNiYTA1ZQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MTYyYjUwMDc4YTIyMDBhM2JiZDhhYTMwN2E4NjQxNGU3NDM1ZDhhZmVmOWNj
|
10
|
+
NjBiNWI3ZDUxZTdlNjI4ZDY0NTJlOWNhMTEwN2I3OWVjMzg4NTc3YTQ5YzU2
|
11
|
+
NTU3ZDk1ZmQ0ZDY2ZWUzM2U0YzQ3YjAzNjhiODVhNjgwMjVmYTA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NDQ0MTRiYzNjMmQ3NTk3NTU1NDIzMWIwYzgxNzcxYmI4MWRmYzRiM2U0MmQw
|
14
|
+
YTdjZmEzZGUzOWRiMWU3YmRlODhjYjZkOGJlOTZlMzM3OGI5ZGYzMzA4NGJh
|
15
|
+
ZGI0MWIyNjU0MTljYmZhNGEwYWRlNzMwNjFlNWRmOTk5YzBmZWU=
|
data/CREDITS
CHANGED
data/README
CHANGED
@@ -387,6 +387,7 @@ follows:
|
|
387
387
|
* [John Fieber](http://github.com/jfieber) - <http://github.com/jfieber>
|
388
388
|
* [Keita Urashima](http://github.com/ursm) - <http://ursm.jp/>
|
389
389
|
* [Pius Uzamere](http://github.com/pius) - <http://pius.me/>
|
390
|
+
* [Judson Lester](https://github.com/nyarly) - <https://github.com/nyarly>
|
390
391
|
|
391
392
|
## Contributing
|
392
393
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.0.
|
1
|
+
1.1.0.p3
|
data/lib/rdf/model/list.rb
CHANGED
@@ -39,10 +39,12 @@ module RDF
|
|
39
39
|
# @yield [list]
|
40
40
|
# @yieldparam [RDF::List] list
|
41
41
|
def initialize(subject = nil, graph = nil, values = nil, &block)
|
42
|
-
@subject = subject || RDF
|
42
|
+
@subject = subject || RDF.nil
|
43
43
|
@graph = graph || RDF::Graph.new
|
44
44
|
|
45
|
-
|
45
|
+
unless values.to_a.empty?
|
46
|
+
values.reverse_each {|value| self.unshift(value)}
|
47
|
+
end
|
46
48
|
|
47
49
|
if block_given?
|
48
50
|
case block.arity
|
@@ -71,6 +73,7 @@ module RDF
|
|
71
73
|
rest = nil
|
72
74
|
firsts = rests = 0
|
73
75
|
@graph.query(:subject => li) do |st|
|
76
|
+
return false unless st.subject.node?
|
74
77
|
case st.predicate
|
75
78
|
when RDF.first
|
76
79
|
firsts += 1
|
@@ -202,6 +205,70 @@ module RDF
|
|
202
205
|
at(index)
|
203
206
|
end
|
204
207
|
|
208
|
+
##
|
209
|
+
# Appends an element to the head of this list. Existing references are not updated, as the list subject changes as a side-effect.
|
210
|
+
#
|
211
|
+
# @example
|
212
|
+
# RDF::List[].unshift(1).unshift(2).unshift(3) #=> RDF::List[3, 2, 1]
|
213
|
+
#
|
214
|
+
# @param [RDF::Term] value
|
215
|
+
# @return [RDF::List]
|
216
|
+
# @see http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-unshift
|
217
|
+
#
|
218
|
+
def unshift(value)
|
219
|
+
value = case value
|
220
|
+
when nil then RDF.nil
|
221
|
+
when RDF::Value then value
|
222
|
+
when Array then RDF::List.new(nil, graph, value)
|
223
|
+
else value
|
224
|
+
end
|
225
|
+
|
226
|
+
new_subject, old_subject = RDF::Node.new, subject
|
227
|
+
|
228
|
+
graph.insert([new_subject, RDF.first, value.is_a?(RDF::List) ? value.subject : value])
|
229
|
+
graph.insert([new_subject, RDF.rest, old_subject])
|
230
|
+
|
231
|
+
@subject = new_subject
|
232
|
+
|
233
|
+
return self
|
234
|
+
end
|
235
|
+
|
236
|
+
##
|
237
|
+
# Removes and returns the element at the head of this list.
|
238
|
+
#
|
239
|
+
# @example
|
240
|
+
# RDF::List[1,2,3].shift #=> 1
|
241
|
+
#
|
242
|
+
# @return [RDF::Term]
|
243
|
+
# @see http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-shift
|
244
|
+
def shift
|
245
|
+
return nil if empty?
|
246
|
+
|
247
|
+
value = first
|
248
|
+
old_subject, new_subject = subject, rest_subject
|
249
|
+
graph.delete([old_subject, RDF.type, RDF.List])
|
250
|
+
graph.delete([old_subject, RDF.first, value])
|
251
|
+
graph.delete([old_subject, RDF.rest, new_subject])
|
252
|
+
|
253
|
+
@subject = new_subject
|
254
|
+
return value
|
255
|
+
end
|
256
|
+
|
257
|
+
##
|
258
|
+
# Empties this list
|
259
|
+
#
|
260
|
+
# @example
|
261
|
+
# RDF::List[1, 2, 2, 3].clear #=> RDF::List[]
|
262
|
+
#
|
263
|
+
# @return [RDF::List]
|
264
|
+
# @see http://ruby-doc.org/core-1.9.3/classes/Array.html#method-i-clear
|
265
|
+
def clear
|
266
|
+
until empty?
|
267
|
+
shift
|
268
|
+
end
|
269
|
+
return self
|
270
|
+
end
|
271
|
+
|
205
272
|
##
|
206
273
|
# Appends an element to the tail of this list.
|
207
274
|
#
|
@@ -220,7 +287,7 @@ module RDF
|
|
220
287
|
end
|
221
288
|
|
222
289
|
if empty?
|
223
|
-
new_subject =
|
290
|
+
@subject = new_subject = RDF::Node.new
|
224
291
|
else
|
225
292
|
old_subject, new_subject = last_subject, RDF::Node.new
|
226
293
|
graph.delete([old_subject, RDF.rest, RDF.nil])
|
data/lib/rdf/model/statement.rb
CHANGED
@@ -182,12 +182,11 @@ module RDF
|
|
182
182
|
end
|
183
183
|
|
184
184
|
##
|
185
|
-
# Returns `true` if
|
186
|
-
# node.
|
185
|
+
# Returns `true` if any resource of this statement is a blank node.
|
187
186
|
#
|
188
187
|
# @return [Boolean]
|
189
188
|
def has_blank_nodes?
|
190
|
-
|
189
|
+
to_quad.compact.any?(&:node?)
|
191
190
|
end
|
192
191
|
|
193
192
|
##
|
data/lib/rdf/nquads.rb
CHANGED
@@ -38,12 +38,14 @@ module RDF
|
|
38
38
|
def self.detect(sample)
|
39
39
|
!!sample.match(%r(
|
40
40
|
(?:\s*(?:<[^>]*>) | (?:_:\w+)) # Subject
|
41
|
+
\s*
|
41
42
|
(?:\s*<[^>]*>) # Predicate
|
42
43
|
\s*
|
43
44
|
(?:(?:<[^>]*>) | (?:_:\w+) | (?:"[^"\n]*"(?:^^|@\S+)?)) # Object
|
44
|
-
|
45
|
+
\s*
|
46
|
+
(?:\s*(?:<[^>]*>) | (?:_:\w+)) # Context
|
45
47
|
\s*\.
|
46
|
-
)
|
48
|
+
)x) && !(
|
47
49
|
sample.match(%r(@(base|prefix|keywords)|\{)) || # Not Turtle/N3/TriG
|
48
50
|
sample.match(%r(<(html|rdf))i) # Not HTML or XML
|
49
51
|
)
|
data/lib/rdf/ntriples/format.rb
CHANGED
@@ -40,7 +40,7 @@ module RDF::NTriples
|
|
40
40
|
\s*
|
41
41
|
(?:(?:<[^>]*>) | (?:_:\w+) | (?:"[^"\n]*"(?:^^|@\S+)?)) # Object
|
42
42
|
\s*\.
|
43
|
-
)
|
43
|
+
)x) && !(
|
44
44
|
sample.match(%r(@(base|prefix|keywords)|\{)) || # Not Turtle/N3/TriG
|
45
45
|
sample.match(%r(<(html|rdf))i) # Not HTML or XML
|
46
46
|
) && !RDF::NQuads::Format.detect(sample)
|
data/lib/rdf/query/solution.rb
CHANGED
@@ -182,17 +182,33 @@ class RDF::Query
|
|
182
182
|
|
183
183
|
##
|
184
184
|
# Compatible Mappings
|
185
|
+
#
|
185
186
|
# Two solution mappings u1 and u2 are compatible if, for every variable v in dom(u1) and in dom(u2), u1(v) = u2(v).
|
186
187
|
#
|
187
188
|
# @param [RDF::Query::Solution, #to_hash] other
|
188
189
|
# another query solution or hash bindings
|
189
190
|
# @return [Boolean]
|
191
|
+
# @see http://www.w3.org/TR/2013/REC-sparql11-query-20130321/#defn_algCompatibleMapping
|
190
192
|
def compatible?(other)
|
191
193
|
@bindings.all? do |k, v|
|
192
194
|
!other.to_hash.has_key?(k) || other[k].eql?(v)
|
193
195
|
end
|
194
196
|
end
|
195
|
-
|
197
|
+
|
198
|
+
##
|
199
|
+
# Disjoint mapping
|
200
|
+
#
|
201
|
+
# A solution is disjoint with another solution if it shares no common variables in their domains.
|
202
|
+
#
|
203
|
+
# @param [RDF::Query::Solution] other
|
204
|
+
# @return [Boolean]
|
205
|
+
# @see http://www.w3.org/TR/2013/REC-sparql11-query-20130321/#defn_algMinus
|
206
|
+
def disjoint?(other)
|
207
|
+
@bindings.none? do |k, v|
|
208
|
+
v && other.to_hash.has_key?(k) && other[k].eql?(v)
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
196
212
|
##
|
197
213
|
# Isomorphic Mappings
|
198
214
|
# Two solution mappings u1 and u2 are isomorphic if,
|
data/lib/rdf/query/solutions.rb
CHANGED
@@ -106,6 +106,20 @@ module RDF; class Query
|
|
106
106
|
end
|
107
107
|
alias_method :filter!, :filter
|
108
108
|
|
109
|
+
##
|
110
|
+
# Difference between solution sets, from SPARQL 1.1.
|
111
|
+
#
|
112
|
+
# The `minus` operation on solutions returns those solutions which either have no compatible solution in `other`, or the solution domains are disjoint.
|
113
|
+
#
|
114
|
+
# @param [RDF::Query::Solutions] other
|
115
|
+
# @return [RDF::Query::Solutions] a new solution set
|
116
|
+
# @see http://www.w3.org/TR/2013/REC-sparql11-query-20130321/#defn_algMinus
|
117
|
+
def -(other)
|
118
|
+
self.dup.filter! do |soln|
|
119
|
+
!other.any? {|soln2| soln.compatible?(soln2) && !soln.disjoint?(soln2)}
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
109
123
|
##
|
110
124
|
# Reorders this solution sequence by the given `variables`.
|
111
125
|
#
|
metadata
CHANGED
@@ -1,85 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.0.
|
5
|
-
prerelease: 6
|
4
|
+
version: 1.1.0.p3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Arto Bendiken
|
9
8
|
- Ben Lavender
|
10
9
|
- Gregg Kellogg
|
11
|
-
autorequire:
|
10
|
+
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2013-
|
13
|
+
date: 2013-06-16 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rdf-spec
|
18
|
-
version_requirements: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - "~>"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.1.0
|
23
|
-
none: false
|
24
17
|
requirement: !ruby/object:Gem::Requirement
|
25
18
|
requirements:
|
26
|
-
- -
|
19
|
+
- - ~>
|
27
20
|
- !ruby/object:Gem::Version
|
28
21
|
version: 1.1.0
|
29
|
-
none: false
|
30
|
-
prerelease: false
|
31
22
|
type: :development
|
32
|
-
|
33
|
-
name: rdf-rdfxml
|
23
|
+
prerelease: false
|
34
24
|
version_requirements: !ruby/object:Gem::Requirement
|
35
25
|
requirements:
|
36
|
-
- -
|
26
|
+
- - ~>
|
37
27
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
39
|
-
|
40
|
-
|
28
|
+
version: 1.1.0
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: rdf-rdfxml
|
41
31
|
requirement: !ruby/object:Gem::Requirement
|
42
32
|
requirements:
|
43
|
-
- -
|
33
|
+
- - ! '>='
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
-
MA==
|
47
|
-
none: false
|
48
|
-
prerelease: false
|
35
|
+
version: '0'
|
49
36
|
type: :development
|
50
|
-
|
51
|
-
name: rspec
|
37
|
+
prerelease: false
|
52
38
|
version_requirements: !ruby/object:Gem::Requirement
|
53
39
|
requirements:
|
54
|
-
- -
|
40
|
+
- - ! '>='
|
55
41
|
- !ruby/object:Gem::Version
|
56
|
-
version: '
|
57
|
-
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rspec
|
58
45
|
requirement: !ruby/object:Gem::Requirement
|
59
46
|
requirements:
|
60
|
-
- -
|
47
|
+
- - ! '>='
|
61
48
|
- !ruby/object:Gem::Version
|
62
49
|
version: '2.12'
|
63
|
-
none: false
|
64
|
-
prerelease: false
|
65
50
|
type: :development
|
66
|
-
|
67
|
-
name: yard
|
51
|
+
prerelease: false
|
68
52
|
version_requirements: !ruby/object:Gem::Requirement
|
69
53
|
requirements:
|
70
|
-
- -
|
54
|
+
- - ! '>='
|
71
55
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
73
|
-
|
56
|
+
version: '2.12'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: yard
|
74
59
|
requirement: !ruby/object:Gem::Requirement
|
75
60
|
requirements:
|
76
|
-
- -
|
61
|
+
- - ! '>='
|
77
62
|
- !ruby/object:Gem::Version
|
78
63
|
version: '0.8'
|
79
|
-
none: false
|
80
|
-
prerelease: false
|
81
64
|
type: :development
|
82
|
-
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0.8'
|
71
|
+
description: RDF.rb is a pure-Ruby library for working with Resource Description Framework
|
72
|
+
(RDF) data.
|
83
73
|
email: public-rdf-ruby@w3.org
|
84
74
|
executables:
|
85
75
|
- rdf
|
@@ -94,19 +84,8 @@ files:
|
|
94
84
|
- bin/rdf
|
95
85
|
- etc/doap.nt
|
96
86
|
- lib/df.rb
|
97
|
-
- lib/rdf.rb
|
98
87
|
- lib/rdf/cli.rb
|
99
88
|
- lib/rdf/format.rb
|
100
|
-
- lib/rdf/nquads.rb
|
101
|
-
- lib/rdf/ntriples.rb
|
102
|
-
- lib/rdf/query.rb
|
103
|
-
- lib/rdf/reader.rb
|
104
|
-
- lib/rdf/repository.rb
|
105
|
-
- lib/rdf/transaction.rb
|
106
|
-
- lib/rdf/util.rb
|
107
|
-
- lib/rdf/version.rb
|
108
|
-
- lib/rdf/vocab.rb
|
109
|
-
- lib/rdf/writer.rb
|
110
89
|
- lib/rdf/mixin/countable.rb
|
111
90
|
- lib/rdf/mixin/durable.rb
|
112
91
|
- lib/rdf/mixin/enumerable.rb
|
@@ -119,13 +98,6 @@ files:
|
|
119
98
|
- lib/rdf/mixin/writable.rb
|
120
99
|
- lib/rdf/model/graph.rb
|
121
100
|
- lib/rdf/model/list.rb
|
122
|
-
- lib/rdf/model/literal.rb
|
123
|
-
- lib/rdf/model/node.rb
|
124
|
-
- lib/rdf/model/resource.rb
|
125
|
-
- lib/rdf/model/statement.rb
|
126
|
-
- lib/rdf/model/term.rb
|
127
|
-
- lib/rdf/model/uri.rb
|
128
|
-
- lib/rdf/model/value.rb
|
129
101
|
- lib/rdf/model/literal/boolean.rb
|
130
102
|
- lib/rdf/model/literal/date.rb
|
131
103
|
- lib/rdf/model/literal/datetime.rb
|
@@ -135,18 +107,33 @@ files:
|
|
135
107
|
- lib/rdf/model/literal/numeric.rb
|
136
108
|
- lib/rdf/model/literal/time.rb
|
137
109
|
- lib/rdf/model/literal/token.rb
|
110
|
+
- lib/rdf/model/literal.rb
|
111
|
+
- lib/rdf/model/node.rb
|
112
|
+
- lib/rdf/model/resource.rb
|
113
|
+
- lib/rdf/model/statement.rb
|
114
|
+
- lib/rdf/model/term.rb
|
115
|
+
- lib/rdf/model/uri.rb
|
116
|
+
- lib/rdf/model/value.rb
|
117
|
+
- lib/rdf/nquads.rb
|
138
118
|
- lib/rdf/ntriples/format.rb
|
139
119
|
- lib/rdf/ntriples/reader.rb
|
140
120
|
- lib/rdf/ntriples/writer.rb
|
121
|
+
- lib/rdf/ntriples.rb
|
141
122
|
- lib/rdf/query/hash_pattern_normalizer.rb
|
142
123
|
- lib/rdf/query/pattern.rb
|
143
124
|
- lib/rdf/query/solution.rb
|
144
125
|
- lib/rdf/query/solutions.rb
|
145
126
|
- lib/rdf/query/variable.rb
|
127
|
+
- lib/rdf/query.rb
|
128
|
+
- lib/rdf/reader.rb
|
129
|
+
- lib/rdf/repository.rb
|
130
|
+
- lib/rdf/transaction.rb
|
146
131
|
- lib/rdf/util/aliasing.rb
|
147
132
|
- lib/rdf/util/cache.rb
|
148
133
|
- lib/rdf/util/file.rb
|
149
134
|
- lib/rdf/util/uuid.rb
|
135
|
+
- lib/rdf/util.rb
|
136
|
+
- lib/rdf/version.rb
|
150
137
|
- lib/rdf/vocab/cc.rb
|
151
138
|
- lib/rdf/vocab/cert.rb
|
152
139
|
- lib/rdf/vocab/dc.rb
|
@@ -166,31 +153,32 @@ files:
|
|
166
153
|
- lib/rdf/vocab/wot.rb
|
167
154
|
- lib/rdf/vocab/xhtml.rb
|
168
155
|
- lib/rdf/vocab/xsd.rb
|
156
|
+
- lib/rdf/vocab.rb
|
157
|
+
- lib/rdf/writer.rb
|
158
|
+
- lib/rdf.rb
|
169
159
|
homepage: http://ruby-rdf.github.com/
|
170
160
|
licenses:
|
171
161
|
- Public Domain
|
172
|
-
|
162
|
+
metadata: {}
|
163
|
+
post_install_message:
|
173
164
|
rdoc_options: []
|
174
165
|
require_paths:
|
175
166
|
- lib
|
176
167
|
required_ruby_version: !ruby/object:Gem::Requirement
|
177
168
|
requirements:
|
178
|
-
- -
|
169
|
+
- - ! '>='
|
179
170
|
- !ruby/object:Gem::Version
|
180
171
|
version: 1.9.2
|
181
|
-
none: false
|
182
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
173
|
requirements:
|
184
|
-
- - !
|
185
|
-
Pg==
|
174
|
+
- - ! '>'
|
186
175
|
- !ruby/object:Gem::Version
|
187
176
|
version: 1.3.1
|
188
|
-
none: false
|
189
177
|
requirements: []
|
190
178
|
rubyforge_project: rdf
|
191
|
-
rubygems_version:
|
192
|
-
signing_key:
|
193
|
-
specification_version:
|
179
|
+
rubygems_version: 2.0.3
|
180
|
+
signing_key:
|
181
|
+
specification_version: 4
|
194
182
|
summary: A Ruby library for working with Resource Description Framework (RDF) data.
|
195
183
|
test_files: []
|
196
184
|
has_rdoc: false
|