ld4l-open_annotation_rdf 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be008b834a274b739c225e52f62bfa4c37a71697
4
- data.tar.gz: 3aca1efc1bedf3b61e712c3fbd0488389ca61fce
3
+ metadata.gz: dead51a1f44d03f97a677dbefc02627755cde61f
4
+ data.tar.gz: c112a5480577c43081b804fedd85ee2ec26da318
5
5
  SHA512:
6
- metadata.gz: 36dc3096cfafdf1c841983eb7e842b778ac31bfbc931d73fe820dea3c6d369ca9c722cd5a1352d868ed97a11f6c1476b249bdcb6ed9153101beb2caf01063457
7
- data.tar.gz: 6b1f9d3946f037f1f5ac124f4236deea1ce3e760b821b668ef9d92ebfa31ecb2debba3d3fd81b450002025deb67e88878f870fabe7d5b62a3e9d02c58f06d2f0
6
+ metadata.gz: 6e0930ad32df385a13d6c6ea9b70c3b2793dcabeefa5d32bd51de3e11d72aeecce613eb5488cd2dd3669f8fa555cc1e683ff2c6ee08b80db9d07518d6cfbb7dc
7
+ data.tar.gz: 5aa4a659b04fd50778cde628597470700bb75c9bb90a58535b3c81f827811c8b85c6b769ed971f785a1c28206336fe9d2513c0ad4aea62a3c60ed71b25930dc8
@@ -23,7 +23,9 @@ module LD4L
23
23
 
24
24
  # get motivatedBy
25
25
  m = a.get_values(:motivatedBy)
26
- return a unless m.kind_of?(Array) && m.size > 0 && m.first.kind_of?(RDF::Vocabulary::Term)
26
+ # TODO: Should m's class be validated? I've seen it be RDF::Vocabulary::Term and RDF::URI. For now, removing the validation.
27
+ return a unless m.kind_of?(Array) && m.size > 0
28
+ # return a unless m.kind_of?(Array) && m.size > 0 && (m.first.kind_of?(RDF::Vocabulary::Term) || m.first.kind_of?(RDF::URI)
27
29
 
28
30
  # motivatedBy is set
29
31
  m_uri = m.first
@@ -4,10 +4,14 @@ module LD4L
4
4
 
5
5
  @localname_prefix = "sta"
6
6
 
7
+ property :hasBody, :predicate => RDFVocabularies::OA.hasBody, :class_name => LD4L::OpenAnnotationRDF::SemanticTagBody
8
+
9
+
7
10
  # USAGE: Use setTerm to set the hasBody property to be the URI of the controlled vocabulary term that
8
11
  # is the annotation.
9
12
 
10
13
  # TODO: Should a semantic tag be destroyed when the last annotation referencing the term is destroyed?
14
+ # TODO: What if other triples have been attached beyond the type?
11
15
 
12
16
  ##
13
17
  # Set the hasBody property to the URI of the controlled vocabulary term that is the annotation and
@@ -1,5 +1,5 @@
1
1
  module LD4L
2
2
  module OpenAnnotationRDF
3
- VERSION = "0.0.9"
3
+ VERSION = "0.0.10"
4
4
  end
5
5
  end
@@ -173,79 +173,285 @@ describe 'LD4L::OpenAnnotationRDF::Annotation' do
173
173
  LD4L::FoafRDF::Person.new('p4')
174
174
  end
175
175
 
176
- it "should resume an instance of CommentAnnotation" do
177
- a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
178
- ca = LD4L::OpenAnnotationRDF::CommentAnnotation.new('ca_1')
179
- ca.hasTarget = RDF::URI("http://example.org/bibref/br3")
180
- ca.setComment("This is a comment.")
181
- ca.annotatedBy = a_person
182
- ca.annotatedAt = a_time
183
- ca.persist!
184
- expect(ca).to be_persisted
185
- uri = ca.rdf_subject
186
-
187
- a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
188
- expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::CommentAnnotation)
189
- expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
190
- expect(a.annotatedBy.first).to eq a_person
191
- expect(a.annotatedAt.first).to eq a_time
192
- expect(a.motivatedBy.first).to eq RDFVocabularies::OA.commenting
193
-
194
- b = a.getBody
195
- expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::CommentBody)
196
- expect(b.type).to include RDFVocabularies::DCTYPES.Text
197
- expect(b.type).to include RDFVocabularies::CNT.ContentAsText
198
- expect(b.content).to eq ["This is a comment."]
199
- expect(b.format.first).to eq "text/plain"
200
- end
201
-
202
- it "should resume an instance of TagAnnotation" do
203
- a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
204
- ta = LD4L::OpenAnnotationRDF::TagAnnotation.new('ta_2')
205
- ta.hasTarget = RDF::URI("http://example.org/bibref/br3")
206
- ta.setTag("good")
207
- ta.annotatedBy = a_person
208
- ta.annotatedAt = a_time
209
- ta.persist!
210
- expect(ta).to be_persisted
211
- uri = ta.rdf_subject
212
-
213
- a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
214
- expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::TagAnnotation)
215
- expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
216
- expect(a.annotatedBy.first).to eq a_person
217
- expect(a.annotatedAt.first).to eq a_time
218
- expect(a.motivatedBy.first).to eq RDFVocabularies::OA.tagging
219
-
220
- b = a.getBody
221
- expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::TagBody)
222
- expect(b.type).to include RDFVocabularies::OA.Tag
223
- expect(b.type).to include RDFVocabularies::CNT.ContentAsText
224
- expect(b.tag).to eq ["good"]
225
- end
226
-
227
- it "should resume an instance of SemanticTagAnnotation" do
228
- a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
229
- sta = LD4L::OpenAnnotationRDF::SemanticTagAnnotation.new('sta_3')
230
- sta.hasTarget = RDF::URI("http://example.org/bibref/br3")
231
- sta.setTerm('http://example.org/term/3')
232
- sta.annotatedBy = a_person
233
- sta.annotatedAt = a_time
234
- sta.persist!
235
- expect(sta).to be_persisted
236
- uri = sta.rdf_subject
237
-
238
- a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
239
- expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::SemanticTagAnnotation)
240
- expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
241
- expect(a.annotatedBy.first).to eq a_person
242
- expect(a.annotatedAt.first).to eq a_time
243
- expect(a.motivatedBy.first).to eq RDFVocabularies::OA.tagging
244
-
245
- b = a.getBody
246
- expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::SemanticTagBody)
247
- expect(b.type).to include RDFVocabularies::OA.SemanticTag
248
- expect(b.rdf_subject.to_s).to eq('http://example.org/term/3')
176
+ context "when annotation body is persisted" do
177
+ it "should resume an instance of CommentAnnotation and its body" do
178
+ a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
179
+ ca = LD4L::OpenAnnotationRDF::CommentAnnotation.new('ca_1')
180
+ ca.hasTarget = RDF::URI("http://example.org/bibref/br3")
181
+ ca.setComment("This is a comment.")
182
+ ca.annotatedBy = a_person
183
+ ca.annotatedAt = a_time
184
+ ca.persist!
185
+ expect(ca).to be_persisted
186
+ uri = ca.rdf_subject
187
+
188
+ a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
189
+ expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::CommentAnnotation)
190
+ expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
191
+ expect(a.annotatedBy.first).to eq a_person
192
+ expect(a.annotatedAt.first).to eq a_time
193
+ expect(a.motivatedBy.first).to eq RDFVocabularies::OA.commenting
194
+
195
+ b = a.getBody
196
+ expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::CommentBody)
197
+ expect(b.type).to include RDFVocabularies::DCTYPES.Text
198
+ expect(b.type).to include RDFVocabularies::CNT.ContentAsText
199
+ expect(b.content).to eq ["This is a comment."]
200
+ expect(b.format.first).to eq "text/plain"
201
+ end
202
+
203
+ it "should resume an instance of TagAnnotation and its body" do
204
+ a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
205
+ ta = LD4L::OpenAnnotationRDF::TagAnnotation.new('ta_2')
206
+ ta.hasTarget = RDF::URI("http://example.org/bibref/br3")
207
+ ta.setTag("good")
208
+ ta.annotatedBy = a_person
209
+ ta.annotatedAt = a_time
210
+ ta.persist!
211
+ expect(ta).to be_persisted
212
+ uri = ta.rdf_subject
213
+
214
+ a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
215
+ expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::TagAnnotation)
216
+ expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
217
+ expect(a.annotatedBy.first).to eq a_person
218
+ expect(a.annotatedAt.first).to eq a_time
219
+ expect(a.motivatedBy.first).to eq RDFVocabularies::OA.tagging
220
+
221
+ b = a.getBody
222
+ expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::TagBody)
223
+ expect(b.type).to include RDFVocabularies::OA.Tag
224
+ expect(b.type).to include RDFVocabularies::CNT.ContentAsText
225
+ expect(b.tag).to eq ["good"]
226
+ end
227
+
228
+ it "should resume an instance of SemanticTagAnnotation and its body" do
229
+ a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
230
+ sta = LD4L::OpenAnnotationRDF::SemanticTagAnnotation.new('sta_3')
231
+ sta.hasTarget = RDF::URI("http://example.org/bibref/br3")
232
+ sta.setTerm('http://example.org/term/3')
233
+ sta.annotatedBy = a_person
234
+ sta.annotatedAt = a_time
235
+ sta.persist!
236
+ expect(sta).to be_persisted
237
+ uri = sta.rdf_subject
238
+
239
+ a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
240
+ expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::SemanticTagAnnotation)
241
+ expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
242
+ expect(a.annotatedBy.first).to eq a_person
243
+ expect(a.annotatedAt.first).to eq a_time
244
+ expect(a.motivatedBy.first).to eq RDFVocabularies::OA.tagging
245
+
246
+ b = a.getBody
247
+ expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::SemanticTagBody)
248
+ expect(b.type).to include RDFVocabularies::OA.SemanticTag
249
+ expect(b.rdf_subject.to_s).to eq('http://example.org/term/3')
250
+ end
251
+ end
252
+
253
+ context "when annotation body is a blank node" do
254
+ it "should resume an instance of CommentAnnotation and a blank node body" do
255
+ a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
256
+ ca = LD4L::OpenAnnotationRDF::CommentAnnotation.new('ca_1')
257
+ ca.hasTarget = RDF::URI("http://example.org/bibref/br3")
258
+
259
+ cb = LD4L::OpenAnnotationRDF::CommentBody.new # create body as blank node
260
+ cb.content = "BLANK NODE COMMENT"
261
+ cb.format = "text/plain"
262
+ cb.persist!
263
+ expect(cb).to be_persisted
264
+
265
+ ca.hasBody = cb
266
+ ca.annotatedBy = a_person
267
+ ca.annotatedAt = a_time
268
+ ca.persist!
269
+ expect(ca).to be_persisted
270
+ uri = ca.rdf_subject
271
+
272
+ a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
273
+ expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::CommentAnnotation)
274
+ expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
275
+ expect(a.annotatedBy.first).to eq a_person
276
+ expect(a.annotatedAt.first).to eq a_time
277
+ expect(a.motivatedBy.first).to eq RDFVocabularies::OA.commenting
278
+
279
+ b = a.getBody
280
+ expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::CommentBody)
281
+ expect(b.type).to include RDFVocabularies::DCTYPES.Text
282
+ expect(b.type).to include RDFVocabularies::CNT.ContentAsText
283
+ expect(b.content).to eq ["BLANK NODE COMMENT"]
284
+ expect(b.format.first).to eq "text/plain"
285
+ end
286
+
287
+ it "should resume an instance of TagAnnotation and a blank node body" do
288
+ a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
289
+ ta = LD4L::OpenAnnotationRDF::TagAnnotation.new('ta_4')
290
+ ta.hasTarget = RDF::URI("http://example.org/bibref/br3")
291
+ ta.annotatedBy = a_person
292
+ ta.annotatedAt = a_time
293
+
294
+ tb = LD4L::OpenAnnotationRDF::TagBody.new # create body as blank node
295
+ tb.tag = "BLANK_NODE_TAG"
296
+ tb.persist!
297
+ expect(tb).to be_persisted
298
+
299
+ ta.hasBody = tb
300
+ ta.persist!
301
+ expect(ta).to be_persisted
302
+ uri = ta.rdf_subject
303
+
304
+ a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
305
+ expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::TagAnnotation)
306
+ expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
307
+ expect(a.annotatedBy.first).to eq a_person
308
+ expect(a.annotatedAt.first).to eq a_time
309
+ expect(a.motivatedBy.first).to eq RDFVocabularies::OA.tagging
310
+
311
+ b = a.getBody
312
+ expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::TagBody)
313
+ expect(b.type).to include RDFVocabularies::OA.Tag
314
+ expect(b.type).to include RDFVocabularies::CNT.ContentAsText
315
+ expect(b.tag).to eq ["BLANK_NODE_TAG"]
316
+ end
317
+
318
+ it "should resume an instance of SemanticTagAnnotation and body object is missing" do
319
+
320
+
321
+ # SKIPPED FOR REWRITE FOR BLANK NODE
322
+ # pending ("rewrite for blank node")
323
+
324
+
325
+ a_time = Time::now.strftime("%Y-%m-%dT%H:%M:%S.%L%z")
326
+ sta = LD4L::OpenAnnotationRDF::SemanticTagAnnotation.new('sta_3')
327
+ sta.hasTarget = RDF::URI("http://example.org/bibref/br3")
328
+ sta.hasBody = RDF::URI('http://example.org/term/3') # don't create a cooresponding body object
329
+ sta.annotatedBy = a_person
330
+ sta.annotatedAt = a_time
331
+ sta.persist!
332
+ expect(sta).to be_persisted
333
+ uri = sta.rdf_subject
334
+
335
+ a = LD4L::OpenAnnotationRDF::Annotation.resume(uri)
336
+ expect(a).to be_a_kind_of(LD4L::OpenAnnotationRDF::SemanticTagAnnotation)
337
+ expect(a.hasTarget.first.rdf_subject.to_s).to eq "http://example.org/bibref/br3"
338
+ expect(a.annotatedBy.first).to eq a_person
339
+ expect(a.annotatedAt.first).to eq a_time
340
+ expect(a.motivatedBy.first).to eq RDFVocabularies::OA.tagging
341
+
342
+ b = a.getBody
343
+ expect(b).to be_a_kind_of(LD4L::OpenAnnotationRDF::SemanticTagBody)
344
+ expect(b.type).to include RDFVocabularies::OA.SemanticTag
345
+ expect(b.rdf_subject.to_s).to eq('http://example.org/term/3')
346
+ end
347
+ end
348
+
349
+ context "when loading from graph" do
350
+ context "and has blank node for body" do
351
+ context "and triples represent a comment annotation" do
352
+ before(:each) do
353
+ @anno_url = "http://my_oa_store/COMMENT_ANNO"
354
+ @comment_value = "This is a comment."
355
+ ttl = "<#{@anno_url}> a <http://www.w3.org/ns/oa#Annotation>;
356
+ <http://www.w3.org/ns/oa#hasBody> [
357
+ a <http://purl.org/dc/dcmitype/Text>,
358
+ <http://www.w3.org/2011/content#ContentAsText>;
359
+ <http://www.w3.org/2011/content#chars> \"#{@comment_value}\" ;
360
+ <http://purl.org/dc/terms/format> \"text/plain\"
361
+ ];
362
+ <http://www.w3.org/ns/oa#hasTarget> <http://searchworks.stanford.edu/view/666>;
363
+ <http://www.w3.org/ns/oa#motivatedBy> <http://www.w3.org/ns/oa#commenting> ."
364
+
365
+ anno_graph = RDF::Graph.new.from_ttl ttl
366
+ r = ActiveTriples::Repositories.repositories[:default]
367
+ r << anno_graph
368
+ anno_uri = RDF::URI.new(@anno_url)
369
+ @comment_anno = LD4L::OpenAnnotationRDF::Annotation.resume(anno_uri)
370
+ end
371
+ it "populates LD4L::OpenAnnotationRDF::TagAnnotation properly" do
372
+ expect(@comment_anno.rdf_subject.to_s).to eq @anno_url
373
+ expect(@comment_anno).to be_a LD4L::OpenAnnotationRDF::CommentAnnotation
374
+ expect(@comment_anno.type).to include(RDFVocabularies::OA.Annotation)
375
+ expect(@comment_anno.motivatedBy).to include(RDFVocabularies::OA.commenting)
376
+ expect(@comment_anno.hasTarget.first.rdf_subject).to eq RDF::URI.new("http://searchworks.stanford.edu/view/666")
377
+ end
378
+ it "populates Tag bodies properly" do
379
+ body = @comment_anno.hasBody.first
380
+ expect(body).to be_a LD4L::OpenAnnotationRDF::CommentBody
381
+ expect(body.content.first).to eq @comment_value
382
+ expect(body.type).to include(RDFVocabularies::CNT.ContentAsText)
383
+ expect(body.type).to include(RDFVocabularies::DCTYPES.Text)
384
+ end
385
+ end
386
+
387
+ context "and triples represent a tag annotation" do
388
+ before(:each) do
389
+ @anno_url = "http://my_oa_store/TAG_ANNO"
390
+ @tag_value = "blue"
391
+ ttl = "<#{@anno_url}> a <http://www.w3.org/ns/oa#Annotation>;
392
+ <http://www.w3.org/ns/oa#hasBody> [
393
+ a <http://purl.org/dc/dcmitype/Text>,
394
+ <http://www.w3.org/2011/content#ContentAsText>,
395
+ <http://www.w3.org/ns/oa#Tag>;
396
+ <http://www.w3.org/2011/content#chars> \"#{@tag_value}\" ;
397
+ <http://purl.org/dc/terms/format> \"text/plain\"
398
+ ];
399
+ <http://www.w3.org/ns/oa#hasTarget> <http://searchworks.stanford.edu/view/666>;
400
+ <http://www.w3.org/ns/oa#motivatedBy> <http://www.w3.org/ns/oa#tagging> ."
401
+
402
+ anno_graph = RDF::Graph.new.from_ttl ttl
403
+ r = ActiveTriples::Repositories.repositories[:default]
404
+ r << anno_graph
405
+ anno_uri = RDF::URI.new(@anno_url)
406
+ @tag_anno = LD4L::OpenAnnotationRDF::Annotation.resume(anno_uri)
407
+ end
408
+ it "populates LD4L::OpenAnnotationRDF::TagAnnotation properly" do
409
+ expect(@tag_anno.rdf_subject.to_s).to eq @anno_url
410
+ expect(@tag_anno).to be_a LD4L::OpenAnnotationRDF::TagAnnotation
411
+ expect(@tag_anno.type).to include(RDFVocabularies::OA.Annotation)
412
+ expect(@tag_anno.motivatedBy).to include(RDFVocabularies::OA.tagging)
413
+ expect(@tag_anno.hasTarget.first.rdf_subject).to eq RDF::URI.new("http://searchworks.stanford.edu/view/666")
414
+ end
415
+ it "populates Tag bodies properly" do
416
+ body = @tag_anno.hasBody.first
417
+ expect(body).to be_a LD4L::OpenAnnotationRDF::TagBody
418
+ expect(body.tag.first).to eq @tag_value
419
+ expect(body.type).to include(RDFVocabularies::OA.Tag)
420
+ expect(body.type).to include(RDFVocabularies::CNT.ContentAsText)
421
+ expect(body.type).to include(RDFVocabularies::DCTYPES.Text)
422
+ end
423
+ end
424
+
425
+ context "and triples represent a semantic tag annotation" do
426
+ before(:each) do
427
+ @anno_url = "http://my_oa_store/SEMANTIC_TAG_ANNO"
428
+ @term_url = "http://example.org/terms/foo"
429
+ ttl = "<#{@anno_url}> a <http://www.w3.org/ns/oa#Annotation>;
430
+ <http://www.w3.org/ns/oa#hasBody> <#{@term_url}>;
431
+ <http://www.w3.org/ns/oa#hasTarget> <http://searchworks.stanford.edu/view/666>;
432
+ <http://www.w3.org/ns/oa#motivatedBy> <http://www.w3.org/ns/oa#tagging> ."
433
+
434
+ anno_graph = RDF::Graph.new.from_ttl ttl
435
+ r = ActiveTriples::Repositories.repositories[:default]
436
+ r << anno_graph
437
+ anno_uri = RDF::URI.new(@anno_url)
438
+ @semantic_tag_anno = LD4L::OpenAnnotationRDF::Annotation.resume(anno_uri)
439
+ end
440
+ it "populates LD4L::OpenAnnotationRDF::TagAnnotation properly" do
441
+ expect(@semantic_tag_anno.rdf_subject.to_s).to eq @anno_url
442
+ expect(@semantic_tag_anno).to be_a LD4L::OpenAnnotationRDF::SemanticTagAnnotation
443
+ expect(@semantic_tag_anno.type).to include(RDFVocabularies::OA.Annotation)
444
+ expect(@semantic_tag_anno.motivatedBy).to include(RDFVocabularies::OA.tagging)
445
+ expect(@semantic_tag_anno.hasTarget.first.rdf_subject).to eq RDF::URI.new("http://searchworks.stanford.edu/view/666")
446
+ end
447
+ it "populates Tag bodies properly" do
448
+ body = @semantic_tag_anno.hasBody.first
449
+ expect(body.rdf_subject.to_s).to eq @term_url
450
+ expect(body).to be_a LD4L::OpenAnnotationRDF::SemanticTagBody
451
+ expect(body.type).to include(RDFVocabularies::OA.SemanticTag)
452
+ end
453
+ end
454
+ end
249
455
  end
250
456
  end
251
457
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ld4l-open_annotation_rdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - E. Lynette Rayle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-13 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdf
@@ -226,3 +226,4 @@ test_files:
226
226
  - spec/ld4l/open_annotation_rdf/tag_body_spec.rb
227
227
  - spec/ld4l/open_annotation_rdf_spec.rb
228
228
  - spec/spec_helper.rb
229
+ has_rdoc: