rdf 2.0.0 → 2.0.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/bin/rdf +2 -1
- data/lib/rdf/cli.rb +4 -4
- data/lib/rdf/model/list.rb +24 -20
- data/lib/rdf/model/literal/double.rb +1 -1
- data/lib/rdf/model/uri.rb +1 -16
- data/lib/rdf/transaction.rb +0 -20
- data/lib/rdf/vocab/rdfv.rb +23 -23
- data/lib/rdf/vocabulary.rb +27 -38
- 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: 3b35c022bb44e2984bddf19489cd1f4735c03b75
|
4
|
+
data.tar.gz: 720f825d01d2c76aca6e27e0b1ad2101beebc362
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fab5abcd8aa2c90c9ab0a4ddd8fe33c25bd83cb0a5e2451fb64e7e0b00c19354aff75f8aa51fa228ebdf3c8522d3b1e19ff02bad2be809e302532a38d11ebb80
|
7
|
+
data.tar.gz: e73edad908ae432613d5f4cfd2e712fa933fb0b75f185acf8731a9948de8bd8c9e1679a39faefbb5457a55a5c0ee0d16717ec84363d2ca518cfe0538c8afc331
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.1
|
data/bin/rdf
CHANGED
data/lib/rdf/cli.rb
CHANGED
@@ -8,7 +8,7 @@ begin
|
|
8
8
|
require 'linkeddata'
|
9
9
|
rescue LoadError
|
10
10
|
# Silently load without linkeddata, but try some others
|
11
|
-
%w(reasoner rdfa rdfxml turtle json/ld ld/patch).each do |ser|
|
11
|
+
%w(reasoner rdfa rdfxml turtle vocab json/ld ld/patch).each do |ser|
|
12
12
|
begin
|
13
13
|
require ser.include?('/') ? ser : "rdf/#{ser}"
|
14
14
|
rescue LoadError
|
@@ -345,16 +345,16 @@ module RDF
|
|
345
345
|
cmds, args = args.partition {|e| commands.include?(e.to_s)}
|
346
346
|
|
347
347
|
if cmds.empty?
|
348
|
-
usage(options)
|
348
|
+
usage(options.fetch(:option_parser, self.options))
|
349
349
|
abort "No command given"
|
350
350
|
end
|
351
351
|
|
352
352
|
if cmds.first == 'help'
|
353
353
|
on_cmd = cmds[1]
|
354
354
|
if on_cmd && COMMANDS.fetch(on_cmd.to_sym, {})[:help]
|
355
|
-
usage(self.options, banner: "Usage: #{self.basename.split('/').last} #{COMMANDS[on_cmd.to_sym][:help]}")
|
355
|
+
usage(options.fetch(:option_parser, self.options), banner: "Usage: #{self.basename.split('/').last} #{COMMANDS[on_cmd.to_sym][:help]}")
|
356
356
|
else
|
357
|
-
usage(self.options)
|
357
|
+
usage(options.fetch(:option_parser, self.options))
|
358
358
|
end
|
359
359
|
return
|
360
360
|
end
|
data/lib/rdf/model/list.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
module RDF
|
2
3
|
##
|
3
4
|
# An RDF list.
|
@@ -344,12 +345,7 @@ module RDF
|
|
344
345
|
# @see http://ruby-doc.org/core-2.2.2/Array.html#method-i-unshift
|
345
346
|
#
|
346
347
|
def unshift(value)
|
347
|
-
value =
|
348
|
-
when nil then RDF.nil
|
349
|
-
when RDF::Term then value
|
350
|
-
when Array then RDF::List.new(subject: nil, graph: graph, values: value)
|
351
|
-
else value
|
352
|
-
end
|
348
|
+
value = normalize_value(value)
|
353
349
|
|
354
350
|
new_subject, old_subject = RDF::Node.new, subject
|
355
351
|
|
@@ -407,12 +403,7 @@ module RDF
|
|
407
403
|
# @return [RDF::List]
|
408
404
|
# @see http://ruby-doc.org/core-2.2.2/Array.html#method-i-3C-3C
|
409
405
|
def <<(value)
|
410
|
-
value =
|
411
|
-
when nil then RDF.nil
|
412
|
-
when RDF::Value then value
|
413
|
-
when Array then RDF::List.new(subject: nil, graph: graph, values: value)
|
414
|
-
else value
|
415
|
-
end
|
406
|
+
value = normalize_value(value)
|
416
407
|
|
417
408
|
if empty?
|
418
409
|
@subject = new_subject = RDF::Node.new
|
@@ -547,12 +538,11 @@ module RDF
|
|
547
538
|
# RDF::List[1, 2, 3].fetch(4, nil) #=> nil
|
548
539
|
# RDF::List[1, 2, 3].fetch(4) { |n| n*n } #=> 16
|
549
540
|
#
|
550
|
-
# @return [RDF::Term]
|
541
|
+
# @return [RDF::Term, nil]
|
551
542
|
# @see http://ruby-doc.org/core-1.9/classes/Array.html#M000420
|
552
543
|
def fetch(index, default = UNSET)
|
553
|
-
|
554
|
-
|
555
|
-
end
|
544
|
+
val = at(index)
|
545
|
+
return val unless val.nil?
|
556
546
|
|
557
547
|
case
|
558
548
|
when block_given? then yield index
|
@@ -568,12 +558,10 @@ module RDF
|
|
568
558
|
# RDF::List[1, 2, 3].at(0) #=> 1
|
569
559
|
# RDF::List[1, 2, 3].at(4) #=> nil
|
570
560
|
#
|
571
|
-
# @return [RDF::Term]
|
561
|
+
# @return [RDF::Term, nil]
|
572
562
|
# @see http://ruby-doc.org/core-2.2.2/Array.html#method-i-at
|
573
563
|
def at(index)
|
574
|
-
each.with_index
|
575
|
-
return v if i == index
|
576
|
-
end
|
564
|
+
each.with_index { |v, i| return v if i == index }
|
577
565
|
return nil
|
578
566
|
end
|
579
567
|
|
@@ -943,5 +931,21 @@ module RDF
|
|
943
931
|
sprintf("#<%s:%#0x(%s)>", self.class.name, __id__, join(', '))
|
944
932
|
end
|
945
933
|
end
|
934
|
+
|
935
|
+
private
|
936
|
+
|
937
|
+
##
|
938
|
+
# Normalizes `Array` to `RDF::List` and `nil` to `RDF.nil`.
|
939
|
+
#
|
940
|
+
# @param value [Object]
|
941
|
+
# @return [RDF::Value, Object] normalized value
|
942
|
+
def normalize_value(value)
|
943
|
+
case value
|
944
|
+
when nil then RDF.nil
|
945
|
+
when RDF::Value then value
|
946
|
+
when Array then RDF::List.new(subject: nil, graph: graph, values: value)
|
947
|
+
else value
|
948
|
+
end
|
949
|
+
end
|
946
950
|
end
|
947
951
|
end
|
@@ -12,7 +12,7 @@ module RDF; class Literal
|
|
12
12
|
# @since 0.2.1
|
13
13
|
class Double < Numeric
|
14
14
|
DATATYPE = RDF::XSD.double
|
15
|
-
GRAMMAR = /^NaN|(?:[\+\-]?(?:INF|(?:\d+(\.\d*)?([eE][\+\-]?\d+)?)))$/.freeze
|
15
|
+
GRAMMAR = /^(?:NaN|(?:[\+\-]?(?:INF|(?:\d+(\.\d*)?([eE][\+\-]?\d+)?))))$/.freeze
|
16
16
|
|
17
17
|
##
|
18
18
|
# @param [Float, #to_f] value
|
data/lib/rdf/model/uri.rb
CHANGED
@@ -1235,7 +1235,7 @@ module RDF
|
|
1235
1235
|
|
1236
1236
|
value = value.to_hash if value.respond_to?(:to_hash)
|
1237
1237
|
self.query = case value
|
1238
|
-
when Array
|
1238
|
+
when Array, Hash
|
1239
1239
|
value.map do |(k,v)|
|
1240
1240
|
k = normalize_segment(k.to_s, UNRESERVED)
|
1241
1241
|
if v.nil?
|
@@ -1250,21 +1250,6 @@ module RDF
|
|
1250
1250
|
end.join("&")
|
1251
1251
|
end
|
1252
1252
|
end
|
1253
|
-
when Hash
|
1254
|
-
value.map do |k, v|
|
1255
|
-
k = normalize_segment(k.to_s, UNRESERVED)
|
1256
|
-
if v.nil?
|
1257
|
-
k
|
1258
|
-
else
|
1259
|
-
Array(v).map do |vv|
|
1260
|
-
if vv === TrueClass
|
1261
|
-
k
|
1262
|
-
else
|
1263
|
-
"#{k}=#{normalize_segment(vv.to_s, UNRESERVED)}"
|
1264
|
-
end
|
1265
|
-
end.join("&")
|
1266
|
-
end
|
1267
|
-
end
|
1268
1253
|
else
|
1269
1254
|
raise TypeError,
|
1270
1255
|
"Can't convert #{value.class} into Hash."
|
data/lib/rdf/transaction.rb
CHANGED
@@ -113,26 +113,6 @@ module RDF
|
|
113
113
|
# @since 2.0.0
|
114
114
|
attr_reader :changes
|
115
115
|
|
116
|
-
##
|
117
|
-
# RDF statements to delete when executed.
|
118
|
-
#
|
119
|
-
# @deprecated
|
120
|
-
# @return [RDF::Enumerable]
|
121
|
-
def deletes
|
122
|
-
warn "[DEPRECATION] Transaction#deletes now uses keyword arguments. Called from #{Gem.location_of_caller.join(':')}"
|
123
|
-
self.changes.deletes
|
124
|
-
end
|
125
|
-
|
126
|
-
##
|
127
|
-
# RDF statements to insert when executed.
|
128
|
-
#
|
129
|
-
# @deprecated
|
130
|
-
# @return [RDF::Enumerable]
|
131
|
-
def inserts
|
132
|
-
warn "[DEPRECATION] Transaction#inserts now uses keyword arguments. Called from #{Gem.location_of_caller.join(':')}"
|
133
|
-
self.changes.inserts
|
134
|
-
end
|
135
|
-
|
136
116
|
##
|
137
117
|
# Any additional options for this transaction.
|
138
118
|
#
|
data/lib/rdf/vocab/rdfv.rb
CHANGED
@@ -13,37 +13,37 @@ module RDF
|
|
13
13
|
term :Alt,
|
14
14
|
comment: %(The class of containers of alternatives.).freeze,
|
15
15
|
label: "Alt".freeze,
|
16
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
16
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
17
17
|
subClassOf: "rdfs:Container".freeze,
|
18
18
|
type: "rdfs:Class".freeze
|
19
19
|
term :Bag,
|
20
20
|
comment: %(The class of unordered containers.).freeze,
|
21
21
|
label: "Bag".freeze,
|
22
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
22
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
23
23
|
subClassOf: "rdfs:Container".freeze,
|
24
24
|
type: "rdfs:Class".freeze
|
25
25
|
term :List,
|
26
26
|
comment: %(The class of RDF Lists.).freeze,
|
27
27
|
label: "List".freeze,
|
28
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
28
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
29
29
|
subClassOf: "rdfs:Resource".freeze,
|
30
30
|
type: "rdfs:Class".freeze
|
31
31
|
term :Property,
|
32
32
|
comment: %(The class of RDF properties.).freeze,
|
33
33
|
label: "Property".freeze,
|
34
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
34
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
35
35
|
subClassOf: "rdfs:Resource".freeze,
|
36
36
|
type: "rdfs:Class".freeze
|
37
37
|
term :Seq,
|
38
38
|
comment: %(The class of ordered containers.).freeze,
|
39
39
|
label: "Seq".freeze,
|
40
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
40
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
41
41
|
subClassOf: "rdfs:Container".freeze,
|
42
42
|
type: "rdfs:Class".freeze
|
43
43
|
term :Statement,
|
44
44
|
comment: %(The class of RDF statements.).freeze,
|
45
45
|
label: "Statement".freeze,
|
46
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
46
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
47
47
|
subClassOf: "rdfs:Resource".freeze,
|
48
48
|
type: "rdfs:Class".freeze
|
49
49
|
|
@@ -53,84 +53,84 @@ module RDF
|
|
53
53
|
domain: "rdf:List".freeze,
|
54
54
|
label: "first".freeze,
|
55
55
|
range: "rdfs:Resource".freeze,
|
56
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
56
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
57
57
|
type: "rdf:Property".freeze
|
58
58
|
property :object,
|
59
59
|
comment: %(The object of the subject RDF statement.).freeze,
|
60
60
|
domain: "rdf:Statement".freeze,
|
61
61
|
label: "object".freeze,
|
62
62
|
range: "rdfs:Resource".freeze,
|
63
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
63
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
64
64
|
type: "rdf:Property".freeze
|
65
65
|
property :predicate,
|
66
66
|
comment: %(The predicate of the subject RDF statement.).freeze,
|
67
67
|
domain: "rdf:Statement".freeze,
|
68
68
|
label: "predicate".freeze,
|
69
69
|
range: "rdfs:Resource".freeze,
|
70
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
70
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
71
71
|
type: "rdf:Property".freeze
|
72
72
|
property :rest,
|
73
73
|
comment: %(The rest of the subject RDF list after the first item.).freeze,
|
74
74
|
domain: "rdf:List".freeze,
|
75
75
|
label: "rest".freeze,
|
76
76
|
range: "rdf:List".freeze,
|
77
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
77
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
78
78
|
type: "rdf:Property".freeze
|
79
79
|
property :subject,
|
80
80
|
comment: %(The subject of the subject RDF statement.).freeze,
|
81
81
|
domain: "rdf:Statement".freeze,
|
82
82
|
label: "subject".freeze,
|
83
83
|
range: "rdfs:Resource".freeze,
|
84
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
84
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
85
85
|
type: "rdf:Property".freeze
|
86
86
|
property :type,
|
87
87
|
comment: %(The subject is an instance of a class.).freeze,
|
88
88
|
domain: "rdfs:Resource".freeze,
|
89
89
|
label: "type".freeze,
|
90
90
|
range: "rdfs:Class".freeze,
|
91
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
91
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
92
92
|
type: "rdf:Property".freeze
|
93
93
|
property :value,
|
94
94
|
comment: %(Idiomatic property used for structured values.).freeze,
|
95
95
|
domain: "rdfs:Resource".freeze,
|
96
96
|
label: "value".freeze,
|
97
97
|
range: "rdfs:Resource".freeze,
|
98
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
98
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
99
99
|
type: "rdf:Property".freeze
|
100
100
|
|
101
101
|
# Datatype definitions
|
102
102
|
term :HTML,
|
103
103
|
comment: %(The datatype of RDF literals storing fragments of HTML content).freeze,
|
104
104
|
label: "HTML".freeze,
|
105
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
106
|
-
"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-html).freeze,
|
105
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
106
|
+
:"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-html).freeze,
|
107
107
|
subClassOf: "rdfs:Literal".freeze,
|
108
108
|
type: "rdfs:Datatype".freeze
|
109
109
|
term :PlainLiteral,
|
110
110
|
comment: %(The class of plain \(i.e. untyped\) literal values, as used in RIF and OWL 2).freeze,
|
111
111
|
label: "PlainLiteral".freeze,
|
112
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
113
|
-
"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf-plain-literal/).freeze,
|
112
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
113
|
+
:"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf-plain-literal/).freeze,
|
114
114
|
subClassOf: "rdfs:Literal".freeze,
|
115
115
|
type: "rdfs:Datatype".freeze
|
116
116
|
term :XMLLiteral,
|
117
117
|
comment: %(The datatype of XML literal values.).freeze,
|
118
118
|
label: "XMLLiteral".freeze,
|
119
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
119
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
120
120
|
subClassOf: "rdfs:Literal".freeze,
|
121
121
|
type: "rdfs:Datatype".freeze
|
122
122
|
term :langString,
|
123
123
|
comment: %(The datatype of language-tagged string values).freeze,
|
124
124
|
label: "langString".freeze,
|
125
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
126
|
-
"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal).freeze,
|
125
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
126
|
+
:"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal).freeze,
|
127
127
|
subClassOf: "rdfs:Literal".freeze,
|
128
128
|
type: "rdfs:Datatype".freeze
|
129
129
|
|
130
130
|
# Extra definitions
|
131
131
|
term :"",
|
132
|
-
"dc11:description" => %(This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts.).freeze,
|
133
|
-
"dc11:title" => %(The RDF Concepts Vocabulary \(RDF\)).freeze,
|
132
|
+
:"dc11:description" => %(This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts.).freeze,
|
133
|
+
:"dc11:title" => %(The RDF Concepts Vocabulary \(RDF\)).freeze,
|
134
134
|
type: "owl:Ontology".freeze
|
135
135
|
term :Description,
|
136
136
|
comment: %(RDF/XML node element).freeze,
|
@@ -150,7 +150,7 @@ module RDF
|
|
150
150
|
term :nil,
|
151
151
|
comment: %(The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it.).freeze,
|
152
152
|
label: "nil".freeze,
|
153
|
-
"rdfs:isDefinedBy" => %(rdf:).freeze,
|
153
|
+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
|
154
154
|
type: "rdf:List".freeze
|
155
155
|
term :nodeID,
|
156
156
|
comment: %(RDF/XML Blank Node identifier).freeze,
|
data/lib/rdf/vocabulary.rb
CHANGED
@@ -262,39 +262,6 @@ module RDF
|
|
262
262
|
@@uris.has_key?(self) ? @@uris[self].to_s : super
|
263
263
|
end
|
264
264
|
|
265
|
-
##
|
266
|
-
# Load an RDFS vocabulary, optionally from a separate location.
|
267
|
-
#
|
268
|
-
# @param [URI, #to_s] url
|
269
|
-
# @param [String] class_name
|
270
|
-
# The class_name associated with the vocabulary, used for creating the class name of the vocabulary. This will create a new class named with a top-level constant based on `class_name`.
|
271
|
-
# @param [RDF::Queryable, URI, #to_s] location
|
272
|
-
# Location from which to load the vocabulary, or Queryable containing already loaded vocabulary triples, if not from `uri`.
|
273
|
-
# @param [Array<Symbol>, Hash{Symbol => Hash}] extra
|
274
|
-
# Extra terms to add to the vocabulary. In the first form, it is an array of symbols, for which terms are created. In the second, it is a Hash mapping symbols to property attributes, as described in {RDF::Vocabulary.property}.
|
275
|
-
# @param [String] patch
|
276
|
-
# A patch to run on the graph after loading. Requires the `ld-patch` gem to be available.
|
277
|
-
# @return [RDF::Vocabulary] the loaded vocabulary
|
278
|
-
# @deprecated Use Vocabulary.from_graph
|
279
|
-
def load(url, class_name: nil, location: nil, extra: nil, patch: nil)
|
280
|
-
warn "[DEPRECATION] Vocabulary.load is deprecated, use Vocabulary.from_graph instead. Called from #{Gem.location_of_caller.join(':')}"
|
281
|
-
source = location || url
|
282
|
-
|
283
|
-
graph = source.is_a?(RDF::Queryable) ? source : RDF::Repository.load(source)
|
284
|
-
|
285
|
-
if patch
|
286
|
-
begin
|
287
|
-
require 'ld/patch'
|
288
|
-
operator = LD::Patch.parse(patch)
|
289
|
-
graph.query(operator)
|
290
|
-
rescue LoadError
|
291
|
-
raise ArgumentError, "patching vocabulary requires the ld-patch gem"
|
292
|
-
end
|
293
|
-
end
|
294
|
-
|
295
|
-
from_graph(graph, url: url, class_name: nil, extra: extra)
|
296
|
-
end
|
297
|
-
|
298
265
|
##
|
299
266
|
# Create a vocabulary from a graph or enumerable
|
300
267
|
#
|
@@ -560,7 +527,13 @@ module RDF
|
|
560
527
|
# Attributes of this vocabulary term, used for finding `label` and `comment` and to serialize the term back to RDF
|
561
528
|
def initialize(*args, **options)
|
562
529
|
@attributes = options.fetch(:attributes)
|
563
|
-
|
530
|
+
if RUBY_ENGINE == "rbx"
|
531
|
+
# FIXME: Somehow, this gets messed up in Rubinius
|
532
|
+
args << options
|
533
|
+
super(*args)
|
534
|
+
else
|
535
|
+
super
|
536
|
+
end
|
564
537
|
end
|
565
538
|
|
566
539
|
##
|
@@ -652,14 +625,30 @@ module RDF
|
|
652
625
|
prop = RDF::URI("http://schema.org/rangeIncludes")
|
653
626
|
value = RDF::Vocabulary.expand_pname(value)
|
654
627
|
when :label
|
655
|
-
prop = RDFS.label
|
628
|
+
prop = RDF::RDFS.label
|
656
629
|
when :comment
|
657
|
-
prop = RDFS.comment
|
630
|
+
prop = RDF::RDFS.comment
|
658
631
|
else
|
659
632
|
prop = RDF::Vocabulary.expand_pname(prop.to_s)
|
660
633
|
next unless prop
|
661
|
-
|
662
|
-
|
634
|
+
|
635
|
+
v = value.to_s
|
636
|
+
value = RDF::Vocabulary.expand_pname(v)
|
637
|
+
unless value && value.valid?
|
638
|
+
# Use as most appropriate literal
|
639
|
+
value = [
|
640
|
+
RDF::Literal::Date,
|
641
|
+
RDF::Literal::DateTime,
|
642
|
+
RDF::Literal::Integer,
|
643
|
+
RDF::Literal::Decimal,
|
644
|
+
RDF::Literal::Double,
|
645
|
+
RDF::Literal::Boolean,
|
646
|
+
RDF::Literal
|
647
|
+
].inject(nil) do |memo, klass|
|
648
|
+
l = klass.new(v)
|
649
|
+
memo || (l if l.valid?)
|
650
|
+
end
|
651
|
+
end
|
663
652
|
end
|
664
653
|
yield RDF::Statement(self, prop, value)
|
665
654
|
rescue KeyError
|
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: 2.0.
|
4
|
+
version: 2.0.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: 2016-04-
|
13
|
+
date: 2016-04-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: link_header
|
@@ -284,7 +284,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
284
284
|
version: '0'
|
285
285
|
requirements: []
|
286
286
|
rubyforge_project: rdf
|
287
|
-
rubygems_version: 2.
|
287
|
+
rubygems_version: 2.5.1
|
288
288
|
signing_key:
|
289
289
|
specification_version: 4
|
290
290
|
summary: A Ruby library for working with Resource Description Framework (RDF) data.
|