Class: RDF::Statement
- Inherits:
-
Object
show all
- Includes:
- Value
- Defined in:
- lib/rdf/model/statement.rb
Overview
Instance Attribute Summary (collapse)
Instance Method Summary
(collapse)
Methods included from Value
#graph?, #inspect, #inspect!, #iri?, #literal?, #node?, #resource?, #to_ntriples, #to_rdf, #type_error, #uri?, #variable?
Constructor Details
- (Statement) initialize(options = {})
- (Statement) initialize(subject, predicate, object, options = {})
A new instance of Statement
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/rdf/model/statement.rb', line 67
def initialize(subject = nil, predicate = nil, object = nil, options = {})
case subject
when Hash
@options = subject.dup
@subject = @options.delete(:subject)
@predicate = @options.delete(:predicate)
@object = @options.delete(:object)
else
@options = !options.empty? ? options.dup : {}
@subject = subject
@predicate = predicate
@object = object
end
@id = @options.delete(:id) if @options.has_key?(:id)
@context = @options.delete(:context)
initialize!
end
|
Instance Attribute Details
42
43
44
|
# File 'lib/rdf/model/statement.rb', line 42
def context
@context
end
|
- (Object) id
39
40
41
|
# File 'lib/rdf/model/statement.rb', line 39
def id
@id
end
|
51
52
53
|
# File 'lib/rdf/model/statement.rb', line 51
def object
@object
end
|
48
49
50
|
# File 'lib/rdf/model/statement.rb', line 48
def predicate
@predicate
end
|
45
46
47
|
# File 'lib/rdf/model/statement.rb', line 45
def subject
@subject
end
|
Instance Method Details
- (Boolean) ==(other)
186
187
188
|
# File 'lib/rdf/model/statement.rb', line 186
def ==(other)
to_a == other.to_a
end
|
- (Boolean) ===(other)
193
194
195
196
197
198
199
|
# File 'lib/rdf/model/statement.rb', line 193
def ===(other)
return false if has_context? && !context.eql?(other.context)
return false if has_subject? && !subject.eql?(other.subject)
return false if has_predicate? && !predicate.eql?(other.predicate)
return false if has_object? && !object.eql?(other.object)
return true
end
|
204
205
206
207
208
209
210
211
212
|
# File 'lib/rdf/model/statement.rb', line 204
def [](index)
case index
when 0 then self.subject
when 1 then self.predicate
when 2 then self.object
when 3 then self.context
else nil
end
end
|
- (RDF::Term) []=(index, value)
218
219
220
221
222
223
224
225
226
|
# File 'lib/rdf/model/statement.rb', line 218
def []=(index, value)
case index
when 0 then self.subject = value
when 1 then self.predicate = value
when 2 then self.object = value
when 3 then self.context = value
else nil
end
end
|
- (Boolean) asserted?
121
122
123
|
# File 'lib/rdf/model/statement.rb', line 121
def asserted?
!quoted?
end
|
- (Boolean) eql?(other)
179
180
181
|
# File 'lib/rdf/model/statement.rb', line 179
def eql?(other)
other.is_a?(Statement) && self == other && (self.context || false) == (other.context || false)
end
|
- (Boolean) has_blank_nodes?
Returns true if the subject or object of this statement is a blank
node.
172
173
174
|
# File 'lib/rdf/model/statement.rb', line 172
def has_blank_nodes?
(has_object? && object.node?) || (has_subject? && subject.node?)
end
|
- (Boolean) has_context?
145
146
147
|
# File 'lib/rdf/model/statement.rb', line 145
def has_context?
!!context
end
|
- (Boolean) has_graph?
139
140
141
|
# File 'lib/rdf/model/statement.rb', line 139
def has_graph?
has_context?
end
|
- (Boolean) has_object?
163
164
165
|
# File 'lib/rdf/model/statement.rb', line 163
def has_object?
!!object
end
|
- (Boolean) has_predicate?
157
158
159
|
# File 'lib/rdf/model/statement.rb', line 157
def has_predicate?
!!predicate
end
|
- (Boolean) has_subject?
151
152
153
|
# File 'lib/rdf/model/statement.rb', line 151
def has_subject?
!!subject
end
|
- (Boolean) inferred?
133
134
135
|
# File 'lib/rdf/model/statement.rb', line 133
def inferred?
false
end
|
- (Boolean) invalid?
109
110
111
|
# File 'lib/rdf/model/statement.rb', line 109
def invalid?
!valid?
end
|
- (Boolean) quoted?
127
128
129
|
# File 'lib/rdf/model/statement.rb', line 127
def quoted?
false
end
|
- (RDF::Graph) reified(options = {})
Returns a graph containing this statement in reified form.
286
287
288
289
290
291
292
293
294
|
# File 'lib/rdf/model/statement.rb', line 286
def reified(options = {})
RDF::Graph.new(options[:context]) do |graph|
subject = options[:subject] || RDF::Node.new(options[:id])
graph << [subject, RDF.type, RDF[:Statement]]
graph << [subject, RDF.subject, self.subject]
graph << [subject, RDF.predicate, self.predicate]
graph << [subject, RDF.object, self.object]
end
end
|
- (Boolean) statement?
Returns true to indicate that this value is a statement.
103
104
105
|
# File 'lib/rdf/model/statement.rb', line 103
def statement?
true
end
|
- (Hash{Symbol => RDF::Term}) to_hash(subject_key = :subject, predicate_key = :predicate, object_key = :object, context_key = :context)
Returns the terms of this statement as a Hash.
250
251
252
|
# File 'lib/rdf/model/statement.rb', line 250
def to_hash(subject_key = :subject, predicate_key = :predicate, object_key = :object, context_key = :context)
{subject_key => subject, predicate_key => predicate, object_key => object, context_key => context}
end
|
- (Array(RDF::Term)) to_quad
230
231
232
|
# File 'lib/rdf/model/statement.rb', line 230
def to_quad
[subject, predicate, object, context]
end
|
- (String) to_s
Returns a string representation of this statement.
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
|
# File 'lib/rdf/model/statement.rb', line 258
def to_s
StringIO.open do |buffer|
buffer << case subject
when RDF::Node then subject.to_s
when RDF::URI then "<#{subject}>"
else subject.inspect
end
buffer << " <#{predicate}> "
buffer << case object
when RDF::Literal then object.to_s
when RDF::Node then object.to_s
when RDF::URI then "<#{object}>"
else object.inspect
end
buffer << case context
when nil then " ."
else " <#{context}> ."
end
buffer.string
end
end
|
- (Array(RDF::Term)) to_triple
Also known as:
to_a, to_ary
236
237
238
|
# File 'lib/rdf/model/statement.rb', line 236
def to_triple
[subject, predicate, object]
end
|
- (Boolean) valid?
115
116
117
|
# File 'lib/rdf/model/statement.rb', line 115
def valid?
has_subject? && has_predicate? && has_object?
end
|