triannon-client 0.1.0 → 0.2.0.pre.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.env_example +1 -1
  3. data/.travis.yml +1 -2
  4. data/README.md +12 -3
  5. data/bin/test.sh +8 -9
  6. data/lib/triannon-client.rb +8 -3
  7. data/lib/triannon-client/triannon_client.rb +180 -0
  8. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/n-quads_.yml +4088 -0
  9. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/n-triples_.yml +4088 -0
  10. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/rdf_json_.yml +4088 -0
  11. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/rdf_n3_.yml +4088 -0
  12. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/trig_.yml +4088 -0
  13. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/trix_.yml +4088 -0
  14. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/turtle_.yml +4088 -0
  15. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/x-ld_json_.yml +4088 -0
  16. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/x-trig_.yml +4088 -0
  17. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/n3_.yml +4088 -0
  18. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/rdf_n3_.yml +4088 -0
  19. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/rdf_turtle_.yml +4088 -0
  20. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/x-nquads_.yml +4088 -0
  21. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/ld_json_.yml +4946 -0
  22. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/n-quads_.yml +4088 -0
  23. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/n-triples_.yml +4088 -0
  24. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/rdf_json_.yml +4088 -0
  25. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/rdf_n3_.yml +4088 -0
  26. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/rdf_xml_.yml +2565 -0
  27. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/trig_.yml +4088 -0
  28. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/trix_.yml +4088 -0
  29. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/turtle_.yml +4088 -0
  30. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/x-ld_json_.yml +4088 -0
  31. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/x-trig_.yml +4088 -0
  32. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/x-turtle_.yml +2566 -0
  33. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_text/n3_.yml +4088 -0
  34. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_text/rdf_n3_.yml +4088 -0
  35. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_text/rdf_turtle_.yml +4088 -0
  36. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_text/turtle_.yml +2566 -0
  37. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_text/x-nquads_.yml +4088 -0
  38. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_accepting_JSON-LD_content.yml +2502 -0
  39. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_accepting_a_default_JSON-LD_content.yml +2502 -0
  40. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_using_a_default_JSON-LD_content.yml +2502 -0
  41. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/ld_json_.yml +2502 -0
  42. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/n-quads_.yml +2502 -0
  43. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/n-triples_.yml +2502 -0
  44. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/rdf_json_.yml +2502 -0
  45. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/rdf_n3_.yml +2502 -0
  46. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/rdf_xml_.yml +2502 -0
  47. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/trig_.yml +2502 -0
  48. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/trix_.yml +2502 -0
  49. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/turtle_.yml +2502 -0
  50. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/x-ld_json_.yml +2502 -0
  51. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/x-trig_.yml +2502 -0
  52. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/x-turtle_.yml +2502 -0
  53. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/n3_.yml +2502 -0
  54. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/rdf_n3_.yml +2502 -0
  55. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/rdf_turtle_.yml +2502 -0
  56. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/turtle_.yml +2502 -0
  57. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/x-nquads_.yml +2502 -0
  58. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_optional_content_type_parameter.yml +2502 -0
  59. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_turtle_content_type_parameter.yml +2502 -0
  60. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/checks_the_annotation_ID.yml +2561 -0
  61. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/logs_exceptions.yml +2502 -0
  62. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/raises_an_argument_error_with_a_nil_ID.yml +2502 -0
  63. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/raises_an_argument_error_with_an_empty_string_ID.yml +2502 -0
  64. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/raises_an_argument_error_with_an_integer_ID.yml +2502 -0
  65. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/returns_an_EMPTY_RDF_graph_for_a_500_server_response.yml +2502 -0
  66. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/returns_an_EMPTY_RDF_graph_with_a_valid_ID_for_NO_annotation_on_the_server.yml +3623 -0
  67. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_no_content_type/returns_an_RDF_graph_with_a_valid_ID_for_an_annotation_on_the_server.yml +4946 -0
  68. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/checks_the_annotation_ID.yml +2502 -0
  69. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/logs_exceptions.yml +2502 -0
  70. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/raises_an_argument_error_with_a_nil_ID.yml +2502 -0
  71. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/raises_an_argument_error_with_an_empty_string_ID.yml +2502 -0
  72. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/raises_an_argument_error_with_an_integer_ID.yml +2502 -0
  73. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/requests_an_open_annotation_by_ID_accepting_a_default_JSON-LD_content.yml +2502 -0
  74. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/returns_an_EMPTY_RDF_graph_for_a_500_server_response.yml +2502 -0
  75. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/returns_an_EMPTY_RDF_graph_with_a_valid_ID_for_NO_annotation_on_the_server.yml +3328 -0
  76. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/returns_an_RDF_graph_with_a_valid_ID_for_an_annotation_on_the_server.yml +4946 -0
  77. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_iiif_annotation/requests_an_open_annotation_by_ID_using_a_IIIF_profile.yml +2746 -0
  78. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_iiif_annotation/returns_an_RDF_Graph_of_an_open_annotation.yml +2746 -0
  79. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_oa_annotation/requests_an_open_annotation_by_ID_using_an_OA_profile.yml +4946 -0
  80. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_oa_annotation/returns_an_RDF_Graph_of_an_open_annotation.yml +4946 -0
  81. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/deletes_an_open_annotation_that_exists.yml +2548 -0
  82. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/fails_to_delete_an_open_annotation_that_does_NOT_exist.yml +123 -0
  83. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_false_for_a_500_response_to_a_DELETE_request.yml +64 -0
  84. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_true_for_a_200_response_to_a_DELETE_request.yml +64 -0
  85. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_true_for_a_202_response_to_a_DELETE_request.yml +64 -0
  86. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_true_for_a_204_response_to_a_DELETE_request.yml +64 -0
  87. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/validates_the_annotation_ID.yml +64 -0
  88. data/spec/fixtures/vcr_cassettes/TriannonClient/_get_annotations/returns_an_RDF_Graph.yml +295 -0
  89. data/spec/fixtures/vcr_cassettes/TriannonClient/_get_annotations/returns_an_RDF_Graph_that_contains_an_AnnotationList.yml +295 -0
  90. data/spec/fixtures/vcr_cassettes/TriannonClient/_get_annotations/returns_an_annotation_list_with_an_annotation_created_by_a_prior_POST.yml +2795 -0
  91. data/spec/fixtures/vcr_cassettes/TriannonClient/_post_annotation/does_not_raise_an_error_when_submitting_a_valid_open_annotation.yml +2502 -0
  92. data/spec/fixtures/vcr_cassettes/TriannonClient/_post_annotation/returns_a_RestClient_Response_object.yml +2502 -0
  93. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_id/returns_a_String_ID_from_the_RDF_URI_of_an_annotation.yml +2502 -0
  94. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_id/returns_a_String_ID_that_is_not_empty.yml +2502 -0
  95. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_uri/returns_an_RDF_URI_from_an_RDF_Graph_of_an_annotation.yml +2502 -0
  96. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_uri/returns_an_RDF_URI_that_is_a_valid_URI.yml +2550 -0
  97. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/accepts_a_RestClient_Response_instance.yml +4898 -0
  98. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/raises_ArgumentError_when_given_an_empty_String.yml +2502 -0
  99. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/raises_ArgumentError_when_given_nil.yml +2502 -0
  100. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/returns_an_RDF_Graph.yml +2502 -0
  101. data/spec/lib/triannon-client/triannon_client_spec.rb +502 -0
  102. data/spec/spec_helper.rb +12 -1
  103. data/triannon-client.gemspec +5 -2
  104. metadata +234 -7
  105. data/Gemfile.lock +0 -203
  106. data/lib/triannon-client/triannon-client.rb +0 -135
  107. data/spec/lib/triannon-client/triannon-client_spec.rb +0 -44
@@ -0,0 +1,3623 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://localhost:3000/annotations/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: commit=Create%20Annotation&annotation[data]=%7B%22%40context%22%3A%22http%3A%2F%2Fiiif.io%2Fapi%2Fpresentation%2F2%2Fcontext.json%22%2C%22%40graph%22%3A%5B%7B%22%40id%22%3A%22_%3Ag70349699654640%22%2C%22%40type%22%3A%5B%22dctypes%3AText%22%2C%22cnt%3AContentAsText%22%5D%2C%22chars%22%3A%22I%20love%20this!%22%2C%22format%22%3A%22text%2Fplain%22%2C%22language%22%3A%22en%22%7D%2C%7B%22%40type%22%3A%22oa%3AAnnotation%22%2C%22motivation%22%3A%22oa%3Acommenting%22%2C%22on%22%3A%22http%3A%2F%2Fpurl.stanford.edu%2Fkq131cs7229%22%2C%22resource%22%3A%22_%3Ag70349699654640%22%7D%5D%7D
9
+ headers:
10
+ Accept:
11
+ - application/ld+json
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ Content-Type:
15
+ - application/x-www-form-urlencoded
16
+ Content-Length:
17
+ - '580'
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: 'Created '
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ Content-Type:
32
+ - application/ld+json; charset=utf-8
33
+ Etag:
34
+ - W/"840e76ddd199a7442a80b356ee463b04"
35
+ Cache-Control:
36
+ - max-age=0, private, must-revalidate
37
+ X-Request-Id:
38
+ - 11c3c658-6531-4418-9355-831de1a67356
39
+ X-Runtime:
40
+ - '1.388557'
41
+ Server:
42
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
43
+ Date:
44
+ - Mon, 04 May 2015 17:52:34 GMT
45
+ Content-Length:
46
+ - '431'
47
+ Connection:
48
+ - Keep-Alive
49
+ Set-Cookie:
50
+ - _internal_session=K3A4NUtjeEhDblEyWVd6SU40dTFNWDMwZXlzeWRtVThDcy9ZTGZBa1Q5K3d1SmtiSXlua08rVkpkemp4Z0NYLzh3Qy8yNFRrbG5tUHBhSThoajFVQ21TUWJZcFI0Zm9tQUdVNG9meml3QlRiVHRjZ083WldJYzlZVnZRbGpXcy9kb29uSi9mVUpXWWpHNWtWMDUxRXlOSzJvbDd2Y3M2aXJOVjV5TiswUkgxT1paS05ROVpkYkprWFlSYlVYSFl1Zy9DWGRSTy9FUjBNaEdtbEZXR3E3enRqWVlaRS91aTI3c2c1VlhGd05uOD0tLUpNS0JVbEVkdm1ibW9pSEkvTVN4Rmc9PQ%3D%3D--606908dfae27a2018d99042bce5826ab0bc4ef29;
51
+ path=/; HttpOnly
52
+ - request_method=POST; path=/
53
+ body:
54
+ encoding: UTF-8
55
+ string: '{"@context":"http://www.w3.org/ns/oa-context-20130208.json","@graph":[{"@id":"_:g70075065329300","@type":["dctypes:Text","cnt:ContentAsText"],"chars":"I
56
+ love this!","format":"text/plain","language":"en"},{"@id":"http://your.triannon-server.com/annotations/cd83f3e6-791e-49b6-a44a-74a598fcfdd1","@type":"oa:Annotation","hasBody":"_:g70075065329300","hasTarget":"http://purl.stanford.edu/kq131cs7229","motivatedBy":"oa:commenting"}]}'
57
+ http_version:
58
+ recorded_at: Mon, 04 May 2015 17:52:34 GMT
59
+ - request:
60
+ method: get
61
+ uri: http://www.w3.org/ns/oa-context-20130208.json
62
+ body:
63
+ encoding: US-ASCII
64
+ string: ''
65
+ headers:
66
+ Accept:
67
+ - application/ld+json, application/json
68
+ Accept-Encoding:
69
+ - gzip, deflate
70
+ User-Agent:
71
+ - Ruby
72
+ response:
73
+ status:
74
+ code: 307
75
+ message: Temporary Redirect
76
+ headers:
77
+ Date:
78
+ - Mon, 04 May 2015 17:52:34 GMT
79
+ Server:
80
+ - Apache/2
81
+ Location:
82
+ - http://www.w3.org/ns/oa.jsonld
83
+ Cache-Control:
84
+ - max-age=21600
85
+ Expires:
86
+ - Mon, 04 May 2015 23:52:34 GMT
87
+ Content-Length:
88
+ - '240'
89
+ Content-Type:
90
+ - text/html; charset=iso-8859-1
91
+ body:
92
+ encoding: UTF-8
93
+ string: |
94
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
95
+ <html><head>
96
+ <title>307 Temporary Redirect</title>
97
+ </head><body>
98
+ <h1>Temporary Redirect</h1>
99
+ <p>The document has moved <a href="http://www.w3.org/ns/oa.jsonld">here</a>.</p>
100
+ </body></html>
101
+ http_version:
102
+ recorded_at: Mon, 04 May 2015 17:52:34 GMT
103
+ - request:
104
+ method: get
105
+ uri: http://www.w3.org/ns/oa.jsonld
106
+ body:
107
+ encoding: US-ASCII
108
+ string: ''
109
+ headers:
110
+ Accept:
111
+ - application/ld+json, application/json
112
+ Accept-Encoding:
113
+ - gzip, deflate
114
+ Cookie:
115
+ - ''
116
+ User-Agent:
117
+ - Ruby
118
+ response:
119
+ status:
120
+ code: 200
121
+ message: OK
122
+ headers:
123
+ Date:
124
+ - Mon, 04 May 2015 17:52:35 GMT
125
+ Server:
126
+ - Apache/2
127
+ Last-Modified:
128
+ - Tue, 06 May 2014 11:14:49 GMT
129
+ Etag:
130
+ - '"b533-4f8b95b2a9c40"'
131
+ Accept-Ranges:
132
+ - bytes
133
+ Content-Length:
134
+ - '46387'
135
+ Cache-Control:
136
+ - max-age=21600
137
+ Expires:
138
+ - Mon, 04 May 2015 23:52:35 GMT
139
+ P3p:
140
+ - policyref="http://www.w3.org/2014/08/p3p.xml"
141
+ Access-Control-Allow-Origin:
142
+ - "*"
143
+ Content-Type:
144
+ - application/ld+json
145
+ body:
146
+ encoding: UTF-8
147
+ string: |+
148
+ {
149
+ "@context": {
150
+ "oa": "http://www.w3.org/ns/oa#",
151
+ "cnt": "http://www.w3.org/2011/content#",
152
+ "dc": "http://purl.org/dc/elements/1.1/",
153
+ "dcterms": "http://purl.org/dc/terms/",
154
+ "dctypes": "http://purl.org/dc/dcmitype/",
155
+ "foaf": "http://xmlns.com/foaf/0.1/",
156
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
157
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
158
+ "skos": "http://www.w3.org/2004/02/skos/core#",
159
+ "owl": "http://www.w3.org/2002/07/owl#",
160
+ "prov": "http://www.w3.org/ns/prov#",
161
+ "trig": "http://www.w3.org/2004/03/trix/rdfg-1/",
162
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
163
+
164
+
165
+ "hasBody" : {"@type":"@id", "@id" : "oa:hasBody"},
166
+ "hasTarget" : {"@type":"@id", "@id" : "oa:hasTarget"},
167
+ "hasSource" : {"@type":"@id", "@id" : "oa:hasSource"},
168
+ "hasSelector" : {"@type":"@id", "@id" : "oa:hasSelector"},
169
+ "hasState" : {"@type":"@id", "@id" : "oa:hasState"},
170
+ "hasScope" : {"@type":"@id", "@id" : "oa:hasScope"},
171
+ "annotatedBy" : {"@type":"@id", "@id" : "oa:annotatedBy"},
172
+ "serializedBy" : {"@type":"@id", "@id" : "oa:serializedBy"},
173
+ "motivatedBy" : {"@type":"@id", "@id" : "oa:motivatedBy"},
174
+ "equivalentTo" : {"@type":"@id", "@id" : "oa:equivalentTo"},
175
+ "styledBy" : {"@type":"@id", "@id" : "oa:styledBy"},
176
+ "cachedSource" : {"@type":"@id", "@id" : "oa:cachedSource"},
177
+ "conformsTo" : {"@type":"@id", "@id" : "dcterms:conformsTo"},
178
+ "default" : {"@type":"@id", "@id" : "oa:default"},
179
+ "item" : {"@type":"@id", "@id" : "oa:item"},
180
+ "first": {"@type":"@id", "@id" : "rdf:first"},
181
+ "rest": {"@type":"@id", "@id" : "rdf:rest", "@container" : "@list"},
182
+
183
+ "annotatedAt" : { "@type": "xsd:dateTimeStamp", "@id": "oa:annotatedAt" },
184
+ "end" : { "@type": "xsd:nonNegativeInteger", "@id": "oa:end" },
185
+ "exact" : "oa:exact",
186
+ "prefix" : "oa:prefix",
187
+ "serializedAt" : { "@type": "xsd:dateTimeStamp", "@id": "oa:serializedAt" },
188
+ "start" : { "@type": "xsd:nonNegativeInteger", "@id": "oa:start" },
189
+ "styleClass" : "oa:styleClass",
190
+ "suffix" : "oa:suffix",
191
+ "when" : { "@type": "xsd:dateTimeStamp", "@id": "oa:when" },
192
+
193
+ "chars" : "cnt:chars",
194
+ "bytes" : "cnt:bytes",
195
+ "format" : "dc:format",
196
+ "language" : "dc:language",
197
+ "value" : "rdf:value",
198
+ "label" : "rdfs:label",
199
+ "name" : "foaf:name",
200
+ "mbox" : "foaf:mbox"
201
+
202
+ },
203
+ "@graph": [
204
+ {
205
+ "@id": "oa:annotatedBy",
206
+ "@type": "owl:ObjectProperty",
207
+ "rdfs:comment": {
208
+ "@language": "en",
209
+ "@value": "The object of the relationship is a resource that identifies the agent responsible for creating the Annotation. This may be either a human or software agent. \n\nThere SHOULD be exactly 1 oa:annotatedBy relationship per Annotation, but MAY be 0 or more than 1, as the Annotation may be anonymous, or multiple agents may have worked together on it.\n\nIt is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage"
210
+ },
211
+ "rdfs:domain": {
212
+ "@id": "oa:Annotation"
213
+ },
214
+ "rdfs:isDefinedBy": {
215
+ "@id": "oa:"
216
+ },
217
+ "rdfs:label": {
218
+ "@language": "en",
219
+ "@value": "annotatedBy"
220
+ },
221
+ "rdfs:subPropertyOf": {
222
+ "@id": "prov:wasAttributedTo"
223
+ }
224
+ },
225
+ {
226
+ "@id": "oa:commenting",
227
+ "@type": [
228
+ "oa:Motivation",
229
+ "owl:NamedIndividual"
230
+ ],
231
+ "rdfs:comment": {
232
+ "@language": "en",
233
+ "@value": "The motivation that represents a commentary about or review of the target resource(s). For example to provide a commentary about a particular PDF."
234
+ },
235
+ "skos:inScheme": {
236
+ "@id": "oa:motivationScheme"
237
+ },
238
+ "skos:prefLabel": {
239
+ "@language": "en",
240
+ "@value": "commenting"
241
+ }
242
+ },
243
+ {
244
+ "@id": "oa:SvgSelector",
245
+ "@type": "owl:Class",
246
+ "rdfs:comment": {
247
+ "@language": "en",
248
+ "@value": "A Selector which selects an area specified as an SVG shape.\n\nThe SVG document should either be retrievable by resolving the URI of this resource, or be included as an Embedded Resource using cnt:Content.\n\nIt is RECOMMENDED that the document contain only a single shape element and that element SHOULD be one of: path, rect, circle, ellipse, polyline, polygon or g. The g element SHOULD ONLY be used to construct a multi-element group, for example to define a donut shape requiring an outer circle and a clipped inner circle.\n\nThe dimensions of both the shape and the SVG canvas MUST be relative to the dimensions of the Source resource. For example, given an image which is 600 pixels by 400 pixels, and the desired section is a circle of 100 pixel radius at the center of the image, then the SVG element would be: <circle cx=\"300\" cy=\"200\" r=\"100\"/>\n\nIt is NOT RECOMMENDED to include style information within the SVG element, nor Javascript, animation, text or other non shape oriented information. Clients SHOULD ignore such information if present."
249
+ },
250
+ "rdfs:isDefinedBy": {
251
+ "@id": "oa:"
252
+ },
253
+ "rdfs:label": {
254
+ "@language": "en",
255
+ "@value": "SvgSelector"
256
+ },
257
+ "rdfs:subClassOf": {
258
+ "@id": "oa:Selector"
259
+ }
260
+ },
261
+ {
262
+ "@id": "oa:Selector",
263
+ "@type": "owl:Class",
264
+ "rdfs:comment": {
265
+ "@language": "en",
266
+ "@value": "A resource which describes the segment of interest in a representation of a Source resource, indicated with oa:hasSelector from the Specific Resource. \n\nThis class is not used directly in Annotations, only its subclasses are.\n\nThe nature of the Selector will be dependent on the type of the representation for which the segment is conveyed. The specific type of selector should be indicated using a subclass of oa:Selector.\n\nThe Specifier's description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced."
267
+ },
268
+ "rdfs:isDefinedBy": {
269
+ "@id": "oa:"
270
+ },
271
+ "rdfs:label": {
272
+ "@language": "en",
273
+ "@value": "Selector"
274
+ }
275
+ },
276
+ {
277
+ "@id": "oa:Style",
278
+ "@type": "owl:Class",
279
+ "rdfs:comment": {
280
+ "@language": "en",
281
+ "@value": "A resource which describes the style in which the selection or resource should be rendered, indicated with oa:styledBy from an oa:Annotation.\n\nThis class is not used directly in Annotations, only its subclasses are.\n\nThe content of the resource provides the rendering hints about the Annotation's constituent resources. \n\nThe Specifier's description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced."
282
+ },
283
+ "rdfs:isDefinedBy": {
284
+ "@id": "oa:"
285
+ },
286
+ "rdfs:label": {
287
+ "@language": "en",
288
+ "@value": "Style"
289
+ }
290
+ },
291
+ {
292
+ "@id": "oa:exact",
293
+ "@type": "owl:DatatypeProperty",
294
+ "rdfs:comment": {
295
+ "@language": "en",
296
+ "@value": "A copy of the text which is being selected, after normalization.\n\nSee oa:TextQuoteSelector."
297
+ },
298
+ "rdfs:domain": {
299
+ "@id": "oa:Selector"
300
+ },
301
+ "rdfs:isDefinedBy": {
302
+ "@id": "oa:"
303
+ },
304
+ "rdfs:label": {
305
+ "@language": "en",
306
+ "@value": "exact"
307
+ }
308
+ },
309
+ {
310
+ "@id": "oa:hasBody",
311
+ "@type": "owl:ObjectProperty",
312
+ "rdfs:comment": {
313
+ "@language": "en",
314
+ "@value": "The relationship between oa:Annotation and body. The body is somehow \"about\" the oa:hasTarget of the annotation.\n\nThe Body may be of any media type, and contain any type of content. The Body SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.\n\nEmbedded bodies SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. \n\nThere is no OA class provided for \"Body\" as a body might be a target of a different annotation. However, there SHOULD be 1 or more content-based classes associated with the body resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.\n"
315
+ },
316
+ "rdfs:domain": {
317
+ "@id": "oa:Annotation"
318
+ },
319
+ "rdfs:isDefinedBy": {
320
+ "@id": "oa:"
321
+ },
322
+ "rdfs:label": {
323
+ "@language": "en",
324
+ "@value": "hasBody"
325
+ }
326
+ },
327
+ {
328
+ "@id": "oa:Choice",
329
+ "@type": "owl:Class",
330
+ "rdfs:comment": {
331
+ "@language": "en",
332
+ "@value": "A multiplicity construct that conveys to a consuming application that it should select one of the constituent resources to display to the user, and not render/use all of them. \n\noa:Choice can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, \n\nThere MUST be 1 or more oa:item relationships for each oa:Choice.\n\nThere SHOULD be exactly 1 default relationship for each Choice."
333
+ },
334
+ "rdfs:isDefinedBy": {
335
+ "@id": "oa:"
336
+ },
337
+ "rdfs:label": {
338
+ "@language": "en",
339
+ "@value": "Choice"
340
+ },
341
+ "rdfs:subClassOf": {
342
+ "@id": "rdf:Alt"
343
+ }
344
+ },
345
+ {
346
+ "@id": "oa:when",
347
+ "@type": "owl:DatatypeProperty",
348
+ "rdfs:comment": {
349
+ "@language": "en",
350
+ "@value": "The timestamp at which the Source resource should be interpreted for the Annotation, typically the time that the Annotation was created."
351
+ },
352
+ "rdfs:domain": {
353
+ "@id": "oa:TimeState"
354
+ },
355
+ "rdfs:isDefinedBy": {
356
+ "@id": "oa:"
357
+ },
358
+ "rdfs:label": {
359
+ "@language": "en",
360
+ "@value": "when"
361
+ },
362
+ "rdfs:range": {
363
+ "@id": "xsd:dateTimeStamp"
364
+ }
365
+ },
366
+ {
367
+ "@id": "oa:serializedBy",
368
+ "@type": "owl:ObjectProperty",
369
+ "rdfs:comment": {
370
+ "@language": "en",
371
+ "@value": "The object of the relationship is the agent, likely software, responsible for generating the serialization of the Annotation's serialization. \n\nIt is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage\n\nThere MAY be 0 or more oa:serializedBy relationships per Annotation."
372
+ },
373
+ "rdfs:domain": {
374
+ "@id": "oa:Annotation"
375
+ },
376
+ "rdfs:isDefinedBy": {
377
+ "@id": "oa:"
378
+ },
379
+ "rdfs:label": {
380
+ "@language": "en",
381
+ "@value": "serializedBy"
382
+ },
383
+ "rdfs:subPropertyOf": {
384
+ "@id": "prov:wasAttributedTo"
385
+ }
386
+ },
387
+ {
388
+ "@id": "oa:motivatedBy",
389
+ "@type": "owl:ObjectProperty",
390
+ "rdfs:comment": {
391
+ "@language": "en",
392
+ "@value": "The relationship between an Annotation and a Motivation, indicating the reasons why the Annotation was created.\n\nEach Annotation SHOULD have at least one oa:motivatedBy relationship, and MAY be more than 1."
393
+ },
394
+ "rdfs:domain": {
395
+ "@id": "oa:Annotation"
396
+ },
397
+ "rdfs:isDefinedBy": {
398
+ "@id": "oa:"
399
+ },
400
+ "rdfs:label": {
401
+ "@language": "en",
402
+ "@value": "motivatedBy"
403
+ },
404
+ "rdfs:range": {
405
+ "@id": "oa:Motivation"
406
+ }
407
+ },
408
+ {
409
+ "@id": "oa:moderating",
410
+ "@type": [
411
+ "oa:Motivation",
412
+ "owl:NamedIndividual"
413
+ ],
414
+ "rdfs:comment": {
415
+ "@language": "en",
416
+ "@value": "The motivation that represents an assignment of value or quality to the target resource(s). For example annotating an Annotation to moderate it up in a trust network or threaded discussion."
417
+ },
418
+ "skos:inScheme": {
419
+ "@id": "oa:motivationScheme"
420
+ },
421
+ "skos:prefLabel": {
422
+ "@language": "en",
423
+ "@value": "moderating"
424
+ }
425
+ },
426
+ {
427
+ "@id": "oa:highlighting",
428
+ "@type": [
429
+ "oa:Motivation",
430
+ "owl:NamedIndividual"
431
+ ],
432
+ "rdfs:comment": {
433
+ "@language": "en",
434
+ "@value": "The motivation that represents a highlighted section of the target resource or segment. For example to draw attention to the selected text that the annotator disagrees with. A Highlight may or may not have a Body resource"
435
+ },
436
+ "skos:inScheme": {
437
+ "@id": "oa:motivationScheme"
438
+ },
439
+ "skos:prefLabel": {
440
+ "@language": "en",
441
+ "@value": "highlighting"
442
+ }
443
+ },
444
+ {
445
+ "@id": "oa:styledBy",
446
+ "@type": "owl:ObjectProperty",
447
+ "rdfs:comment": {
448
+ "@language": "en",
449
+ "@value": "The relationship between a oa:Annotation and a oa:Style.\n\nThere MAY be 0 or 1 styledBy relationships for each Annotation.\n\nIf there are multiple Style resources that must be associated with the Annotation, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED."
450
+ },
451
+ "rdfs:domain": {
452
+ "@id": "oa:Annotation"
453
+ },
454
+ "rdfs:isDefinedBy": {
455
+ "@id": "oa:"
456
+ },
457
+ "rdfs:label": {
458
+ "@language": "en",
459
+ "@value": "styledBy"
460
+ },
461
+ "rdfs:range": {
462
+ "@id": "oa:Style"
463
+ }
464
+ },
465
+ {
466
+ "@id": "oa:FragmentSelector",
467
+ "@type": "owl:Class",
468
+ "rdfs:comment": {
469
+ "@language": "en",
470
+ "@value": "A Selector which describes the segment of interest in a representation, through the use of the fragment identifier component of a URI.\n\nIt is RECOMMENDED to use oa:FragmentSelector as the selector on a Specific Resource rather than annotating the fragment URI directly, in order to improve discoverability of annotation on the Source.\n\nThe oa:FragmentSelector MUST have exactly 1 rdf:value property, containing the fragment identifier component of a URI that describes the segment of interest in the resource, excluding the initial \"#\".\n\nThe Fragment Selector SHOULD have a dcterms:conformsTo relationship with the object being the specification that defines the syntax of the fragment, for instance <http://tools.ietf.org/rfc/rfc3236> for HTML fragments. "
471
+ },
472
+ "rdfs:isDefinedBy": {
473
+ "@id": "oa:"
474
+ },
475
+ "rdfs:label": {
476
+ "@language": "en",
477
+ "@value": "FragmentSelector"
478
+ },
479
+ "rdfs:subClassOf": {
480
+ "@id": "oa:Selector"
481
+ }
482
+ },
483
+ {
484
+ "@id": "oa:SpecificResource",
485
+ "@type": "owl:Class",
486
+ "rdfs:comment": {
487
+ "@language": "en",
488
+ "@value": "A resource identifies part of another Source resource, a particular representation of a resource, a resource with styling hints for renders, or any combination of these. \n\nThe Specific Resource takes the role of oa:hasBody or oa:hasTarget in an oa:Annotation instead of the Source resource.\n\nThere MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.\n\nThere MUST be exactly 0 or 1 oa:hasSelector relationship associated with a Specific Resource.\n\nThere MAY be 0 or 1 oa:hasState relationship for each Specific Resource.\n\nIf the Specific Resource has an HTTP URI, then the exact segment of the Source resource that it identifies, and only the segment, MUST be returned when the URI is dereferenced. For example, if the segment of interest is a region of an image and the Specific Resource has an HTTP URI, then dereferencing it MUST return the selected region of the image as it was at the time when the annotation was created. Typically this would be a burden to support, and thus the Specific Resource SHOULD be identified by a globally unique URI, such as a UUID URN. If it is not considered important to allow other Annotations or systems to refer to the Specific Resource, then a blank node MAY be used instead."
489
+ },
490
+ "rdfs:isDefinedBy": {
491
+ "@id": "oa:"
492
+ },
493
+ "rdfs:label": {
494
+ "@language": "en",
495
+ "@value": "SpecificResource"
496
+ }
497
+ },
498
+ {
499
+ "@id": "oa:annotatedAt",
500
+ "@type": "owl:DatatypeProperty",
501
+ "rdfs:comment": {
502
+ "@language": "en",
503
+ "@value": "The time at which the Annotation was created. \n\nThere SHOULD be exactly 1 oa:annotatedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified."
504
+ },
505
+ "rdfs:domain": {
506
+ "@id": "oa:Annotation"
507
+ },
508
+ "rdfs:isDefinedBy": {
509
+ "@id": "oa:"
510
+ },
511
+ "rdfs:label": {
512
+ "@language": "en",
513
+ "@value": "annotatedAt"
514
+ },
515
+ "rdfs:range": {
516
+ "@id": "xsd:dateTimeStamp"
517
+ }
518
+ },
519
+ {
520
+ "@id": "oa:editing",
521
+ "@type": [
522
+ "oa:Motivation",
523
+ "owl:NamedIndividual"
524
+ ],
525
+ "rdfs:comment": {
526
+ "@language": "en",
527
+ "@value": "The motivation that represents a request for a modification or edit to the target resource. For example, an Annotation that requests a typo to be corrected."
528
+ },
529
+ "skos:inScheme": {
530
+ "@id": "oa:motivationScheme"
531
+ },
532
+ "skos:prefLabel": {
533
+ "@language": "en",
534
+ "@value": "editing"
535
+ }
536
+ },
537
+ {
538
+ "@id": "oa:Annotation",
539
+ "@type": "owl:Class",
540
+ "rdfs:comment": {
541
+ "@language": "en",
542
+ "@value": "Typically an Annotation has a single Body (oa:hasBody), which is the comment or other descriptive resource, and a single Target (oa:hasTarget) that the Body is somehow \"about\". The Body provides the information which is annotating the Target. \n\nThis \"aboutness\" may be further clarified or extended to notions such as classifying or identifying with oa:motivatedBy."
543
+ },
544
+ "rdfs:isDefinedBy": {
545
+ "@id": "oa:"
546
+ },
547
+ "rdfs:label": {
548
+ "@language": "en",
549
+ "@value": "Annotation"
550
+ }
551
+ },
552
+ {
553
+ "@id": "oa:equivalentTo",
554
+ "@type": "owl:ObjectProperty",
555
+ "rdfs:comment": {
556
+ "@language": "en",
557
+ "@value": "The subject and object resources of the oa:equivalentTo relationship represent the same resource, but potentially have different metadata such as oa:serializedBy, oa:serializedAt and serialization format. oa:equivalentTo is a symmetrical and transitive relationship; if A oa:equivalentTo B, then it is also true that B oa:equivalent A; and that if B oa:equivalentTo C, then it is also true that A oa:equivalentTo C. \n\nThe Annotation MAY include 0 or more instances of the oa:equivalentTo relationship between copies of the Annotation or other resources, and SHOULD include as many as are available.\n\nIf a system publishes an embedded resource (a cnt:Content) at a new HTTP URI, then it SHOULD express the oa:equivalentTo relationship between the resource's URN and the new URI from which it is available."
558
+ },
559
+ "rdfs:isDefinedBy": {
560
+ "@id": "oa:"
561
+ },
562
+ "rdfs:label": {
563
+ "@language": "en",
564
+ "@value": "equivalentTo"
565
+ },
566
+ "rdfs:subPropertyOf": {
567
+ "@id": "prov:alternateOf"
568
+ }
569
+ },
570
+ {
571
+ "@id": "oa:Motivation",
572
+ "@type": "owl:Class",
573
+ "rdfs:comment": {
574
+ "@language": "en",
575
+ "@value": "The Motivation for creating an Annotation, indicated with oa:motivatedBy, is a reason for its creation, and might include things like oa:replying to another annotation, oa:commenting on a resource, or oa:linking to a related resource.\n\nEach Annotation SHOULD have at least one oa:motivatedBy relationship to an instance of oa:Motivation, which is a subClass of skos:Concept."
576
+ },
577
+ "rdfs:isDefinedBy": {
578
+ "@id": "oa:"
579
+ },
580
+ "rdfs:label": {
581
+ "@language": "en",
582
+ "@value": "Motivation"
583
+ },
584
+ "rdfs:subClassOf": {
585
+ "@id": "skos:Concept"
586
+ }
587
+ },
588
+ {
589
+ "@id": "oa:tagging",
590
+ "@type": [
591
+ "oa:Motivation",
592
+ "owl:NamedIndividual"
593
+ ],
594
+ "rdfs:comment": {
595
+ "@language": "en",
596
+ "@value": "The motivation that represents adding a Tag on the target resource(s). One or more of the bodies of the annotation should be typed as a oa:Tag or oa:SemanticTag."
597
+ },
598
+ "skos:inScheme": {
599
+ "@id": "oa:motivationScheme"
600
+ },
601
+ "skos:prefLabel": {
602
+ "@language": "en",
603
+ "@value": "tagging"
604
+ }
605
+ },
606
+ {
607
+ "@id": "oa:List",
608
+ "@type": "owl:Class",
609
+ "rdfs:comment": {
610
+ "@language": "en",
611
+ "@value": "A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted, and in a particular order. \n\noa:List can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, \n\nThere MUST be 2 or more oa:item relationships for each oa:List, with their order defined using the rdf:List construct of rdf:first/rdf:rest/rdf:nil.\n\nAll the elements of the list should also be declared using oa:item, and each of the oa:items should appear at least once in the list."
612
+ },
613
+ "rdfs:isDefinedBy": {
614
+ "@id": "oa:"
615
+ },
616
+ "rdfs:label": {
617
+ "@language": "en",
618
+ "@value": "List"
619
+ },
620
+ "rdfs:subClassOf": {
621
+ "@id": "oa:Composite"
622
+ }
623
+ },
624
+ {
625
+ "@id": "oa:TextQuoteSelector",
626
+ "@type": "owl:Class",
627
+ "rdfs:comment": {
628
+ "@language": "en",
629
+ "@value": "A Selector that describes a textual segment by means of quoting it, plus passages before or after it.\n\nFor example, if the document were \"abcdefghijklmnopqrstuvwxyz\", one could select \"efg\" by a oa:prefix of \"abcd\", the quotation of oa:exact \"efg\" and a oa:suffix of \"hijk\".\n\nThe text MUST be normalized before recording.\n\nEach TextQuoteSelector MUST have exactly 1 oa:exact property.\n\nEach TextQuoteSelector SHOULD have exactly 1 oa:prefix property, and MUST NOT have more than 1.\n\nEach TextQuoteSelector SHOULD have exactly 1 oa:suffix property, and MUST NOT have more than 1."
630
+ },
631
+ "rdfs:isDefinedBy": {
632
+ "@id": "oa:"
633
+ },
634
+ "rdfs:label": {
635
+ "@language": "en",
636
+ "@value": "TextQuoteSelector"
637
+ },
638
+ "rdfs:subClassOf": {
639
+ "@id": "oa:Selector"
640
+ }
641
+ },
642
+ {
643
+ "@id": "oa:cachedSource",
644
+ "@type": "owl:ObjectProperty",
645
+ "rdfs:comment": {
646
+ "@language": "en",
647
+ "@value": "A link to a copy of the Source resource's representation appropriate for the Annotation, typically a copy of the original at the time that the Annotation was created"
648
+ },
649
+ "rdfs:domain": {
650
+ "@id": "oa:TimeState"
651
+ },
652
+ "rdfs:isDefinedBy": {
653
+ "@id": "oa:"
654
+ },
655
+ "rdfs:label": {
656
+ "@language": "en",
657
+ "@value": "cachedSource"
658
+ }
659
+ },
660
+ {
661
+ "@id": "oa:bookmarking",
662
+ "@type": [
663
+ "oa:Motivation",
664
+ "owl:NamedIndividual"
665
+ ],
666
+ "rdfs:comment": {
667
+ "@language": "en",
668
+ "@value": "The motivation that represents the creation of a bookmark to the target resources or recorded point or points within one or more resources. For example, an Annotation that bookmarks the point in a text where the reader finished reading. Bookmark Annotations may or may not have a Body resource."
669
+ },
670
+ "skos:inScheme": {
671
+ "@id": "oa:motivationScheme"
672
+ },
673
+ "skos:prefLabel": {
674
+ "@language": "en",
675
+ "@value": "bookmarking"
676
+ }
677
+ },
678
+ {
679
+ "@id": "oa:SemanticTag",
680
+ "@type": "owl:Class",
681
+ "rdfs:comment": {
682
+ "@language": "en",
683
+ "@value": "A class assigned to the Body when it is a semantic tagging resource; a URI that identifies a concept, rather than an embedded string, frequently a term from a controlled vocabulary.\n\nIt is NOT RECOMMENDED to use the URI of a document as a Semantic Tag, as it might also be used as a regular Body in other Annotations which would inherit the oa:SemanticTag class assignment. Instead it is more appropriate to create a new URI and link it to the document, using the foaf:page predicate."
684
+ },
685
+ "rdfs:isDefinedBy": {
686
+ "@id": "oa:"
687
+ },
688
+ "rdfs:label": {
689
+ "@language": "en",
690
+ "@value": "SemanticTag"
691
+ },
692
+ "rdfs:subClassOf": {
693
+ "@id": "oa:Tag"
694
+ }
695
+ },
696
+ {
697
+ "@id": "oa:hasSource",
698
+ "@type": "owl:ObjectProperty",
699
+ "rdfs:comment": {
700
+ "@language": "en",
701
+ "@value": "The relationship between a oa:SpecificResource and the resource that it is a more specific representation of. \n\nThere MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource."
702
+ },
703
+ "rdfs:domain": {
704
+ "@id": "oa:SpecificResource"
705
+ },
706
+ "rdfs:isDefinedBy": {
707
+ "@id": "oa:"
708
+ },
709
+ "rdfs:label": {
710
+ "@language": "en",
711
+ "@value": "hasSource"
712
+ }
713
+ },
714
+ {
715
+ "@id": "oa:default",
716
+ "@type": "owl:ObjectProperty",
717
+ "rdfs:comment": {
718
+ "@language": "en",
719
+ "@value": "The constituent resource of a oa:Choice to use as a default option, if there is no other means to determine which would be most appropriate.\n\nThere SHOULD be exactly 1 default relationship for each Choice."
720
+ },
721
+ "rdfs:domain": {
722
+ "@id": "oa:Choice"
723
+ },
724
+ "rdfs:isDefinedBy": {
725
+ "@id": "oa:"
726
+ },
727
+ "rdfs:label": {
728
+ "@language": "en",
729
+ "@value": "default"
730
+ },
731
+ "rdfs:subPropertyOf": {
732
+ "@id": "oa:item"
733
+ }
734
+ },
735
+ {
736
+ "@id": "oa:hasSelector",
737
+ "@type": "owl:ObjectProperty",
738
+ "rdfs:comment": {
739
+ "@language": "en",
740
+ "@value": "The relationship between a oa:SpecificResource and a oa:Selector.\n\nThere MUST be exactly 0 or 1 oa:hasSelector relationship associated with a \nSpecific Resource. \n\nIf multiple Selectors are required, either to express a choice between different optional, equivalent selectors, or a chain of selectors that should all be processed, it is necessary to use oa:Choice, oa:Composite or oa:List as a selector."
741
+ },
742
+ "rdfs:domain": {
743
+ "@id": "oa:SpecificResource"
744
+ },
745
+ "rdfs:isDefinedBy": {
746
+ "@id": "oa:"
747
+ },
748
+ "rdfs:label": {
749
+ "@language": "en",
750
+ "@value": "hasSelector"
751
+ },
752
+ "rdfs:range": {
753
+ "@id": "oa:Selector"
754
+ }
755
+ },
756
+ {
757
+ "@id": "oa:hasTarget",
758
+ "@type": "owl:ObjectProperty",
759
+ "rdfs:comment": {
760
+ "@language": "en",
761
+ "@value": "The relationship between oa:Annotation and target. The target resource is what the oa:hasBody is somewhat \"about\".\n\nThe target may be of any media type, and contain any type of content. The target SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.\n\nEmbedded targets SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. \n\nThere is no OA class provided for \"Target\" as a target might be a body in a different annotation. However, there SHOULD be 1 or more content-based classes associated with the target resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content."
762
+ },
763
+ "rdfs:domain": {
764
+ "@id": "oa:Annotation"
765
+ },
766
+ "rdfs:isDefinedBy": {
767
+ "@id": "oa:"
768
+ },
769
+ "rdfs:label": {
770
+ "@language": "en",
771
+ "@value": "hasTarget"
772
+ }
773
+ },
774
+ {
775
+ "@id": "oa:TextPositionSelector",
776
+ "@type": "owl:Class",
777
+ "rdfs:comment": {
778
+ "@language": "en",
779
+ "@value": "An oa:Selector which describes a range of text based on its start and end positions.\n\nThe text MUST be normalized before counting characters. For a Selector that works from the bitstream rather than the rendered characters, see oa:DataPositionSelector.\n\nEach oa:TextPositionSelector MUST have exactly 1 oa:start property.\n\nEach oa:TextPositionSelector MUST have exactly 1 oa:end property."
780
+ },
781
+ "rdfs:isDefinedBy": {
782
+ "@id": "oa:"
783
+ },
784
+ "rdfs:label": {
785
+ "@language": "en",
786
+ "@value": "TextPositionSelector"
787
+ },
788
+ "rdfs:subClassOf": {
789
+ "@id": "oa:Selector"
790
+ }
791
+ },
792
+ {
793
+ "@id": "oa:serializedAt",
794
+ "@type": "owl:DatatypeProperty",
795
+ "rdfs:comment": {
796
+ "@language": "en",
797
+ "@value": "The time at which the agent referenced by oa:serializedBy generated the first serialization of the Annotation, and any subsequent substantially different one. The annotation graph MUST have changed for this property to be updated, and as such represents the last modified datestamp for the Annotation. This might be used to determine if it should be re-imported into a triplestore when discovered. \n\nThere MAY be exactly 1 oa:serializedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.\n"
798
+ },
799
+ "rdfs:domain": {
800
+ "@id": "oa:Annotation"
801
+ },
802
+ "rdfs:isDefinedBy": {
803
+ "@id": "oa:"
804
+ },
805
+ "rdfs:label": {
806
+ "@language": "en",
807
+ "@value": "serializedAt"
808
+ },
809
+ "rdfs:range": {
810
+ "@id": "xsd:dateTimeStamp"
811
+ }
812
+ },
813
+ {
814
+ "@id": "oa:Composite",
815
+ "@type": "owl:Class",
816
+ "rdfs:comment": {
817
+ "@language": "en",
818
+ "@value": "A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted. \n\noa:Composite can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, \n\nThere MUST be 2 or more oa:item relationships for each oa:Composite."
819
+ },
820
+ "rdfs:isDefinedBy": {
821
+ "@id": "oa:"
822
+ },
823
+ "rdfs:label": "Composite",
824
+ "rdfs:subClassOf": {
825
+ "@id": "rdf:Bag"
826
+ }
827
+ },
828
+ {
829
+ "@id": "oa:classifying",
830
+ "@type": [
831
+ "oa:Motivation",
832
+ "owl:NamedIndividual"
833
+ ],
834
+ "rdfs:comment": {
835
+ "@language": "en",
836
+ "@value": "The motivation that represents the assignment of a classification type, typically from a controlled vocabulary, to the target resource(s). For example to classify an Image resource as a Portrait."
837
+ },
838
+ "skos:inScheme": {
839
+ "@id": "oa:motivationScheme"
840
+ },
841
+ "skos:prefLabel": {
842
+ "@language": "en",
843
+ "@value": "classifying"
844
+ }
845
+ },
846
+ {
847
+ "@id": "oa:identifying",
848
+ "@type": [
849
+ "oa:Motivation",
850
+ "owl:NamedIndividual"
851
+ ],
852
+ "rdfs:comment": {
853
+ "@language": "en",
854
+ "@value": "The motivation that represents the assignment of an identity to the target resource(s). For example, annotating the name of a city in a string of text with the URI that identifies it."
855
+ },
856
+ "skos:inScheme": {
857
+ "@id": "oa:motivationScheme"
858
+ },
859
+ "skos:prefLabel": {
860
+ "@language": "en",
861
+ "@value": "identifying"
862
+ }
863
+ },
864
+ {
865
+ "@id": "oa:HttpRequestState",
866
+ "@type": "owl:Class",
867
+ "rdfs:comment": {
868
+ "@language": "en",
869
+ "@value": "A resource which describes how to retrieve an appropriate representation of the Source resource for the Annotation, based on the HTTP Request headers to send to the server.\n\nThere MUST be exactly 1 rdf:value property per HttpRequestState, containing HTTP request headers as a single, complete string, exactly as they would appear in an HTTP request. "
870
+ },
871
+ "rdfs:isDefinedBy": {
872
+ "@id": "oa:"
873
+ },
874
+ "rdfs:label": {
875
+ "@language": "en",
876
+ "@value": "HttpRequestState"
877
+ },
878
+ "rdfs:subClassOf": {
879
+ "@id": "oa:State"
880
+ }
881
+ },
882
+ {
883
+ "@id": "oa:DataPositionSelector",
884
+ "@type": "owl:Class",
885
+ "rdfs:comment": {
886
+ "@language": "en",
887
+ "@value": "A Selector which describes a range of data based on its start and end positions within the byte stream of the representation.\n\nEach DataPositionSelector MUST have exactly 1 oa:start property.\n\nEach TextPositionSelector MUST have exactly 1 oa:end property.\n\nSee oa:TextPositionSelector for selection at normalized character level rather than bytestream level."
888
+ },
889
+ "rdfs:isDefinedBy": {
890
+ "@id": "oa:"
891
+ },
892
+ "rdfs:label": {
893
+ "@language": "en",
894
+ "@value": "DataPositionSelector"
895
+ },
896
+ "rdfs:subClassOf": {
897
+ "@id": "oa:Selector"
898
+ }
899
+ },
900
+ {
901
+ "@id": "oa:linking",
902
+ "@type": [
903
+ "oa:Motivation",
904
+ "owl:NamedIndividual"
905
+ ],
906
+ "rdfs:comment": {
907
+ "@language": "en",
908
+ "@value": "The motivation that represents an untyped link to a resource related to the target."
909
+ },
910
+ "skos:inScheme": {
911
+ "@id": "oa:motivationScheme"
912
+ },
913
+ "skos:prefLabel": {
914
+ "@language": "en",
915
+ "@value": "linking"
916
+ }
917
+ },
918
+ {
919
+ "@id": "oa:motivationScheme",
920
+ "@type": [
921
+ "skos:ConceptScheme",
922
+ "owl:NamedIndividual"
923
+ ],
924
+ "rdfs:comment": {
925
+ "@language": "en",
926
+ "@value": "The concept scheme for Open Annotation Motivations"
927
+ },
928
+ "rdfs:label": {
929
+ "@language": "en",
930
+ "@value": "motivationScheme"
931
+ }
932
+ },
933
+ {
934
+ "@id": "oa:replying",
935
+ "@type": [
936
+ "oa:Motivation",
937
+ "owl:NamedIndividual"
938
+ ],
939
+ "rdfs:comment": {
940
+ "@language": "en",
941
+ "@value": "The motivation that represents a reply to a previous statement, either an Annotation or another resource. For example providing the assistance requested in the above."
942
+ },
943
+ "skos:inScheme": {
944
+ "@id": "oa:motivationScheme"
945
+ },
946
+ "skos:prefLabel": {
947
+ "@language": "en",
948
+ "@value": "replying"
949
+ }
950
+ },
951
+ {
952
+ "@id": "oa:start",
953
+ "@type": "owl:DatatypeProperty",
954
+ "rdfs:comment": {
955
+ "@language": "en",
956
+ "@value": "The starting position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:start is included within the selected segment. \n\nSee oa:DataPositionSelector and oa:TextPositionSelector."
957
+ },
958
+ "rdfs:domain": {
959
+ "@id": "oa:Selector"
960
+ },
961
+ "rdfs:isDefinedBy": {
962
+ "@id": "oa:"
963
+ },
964
+ "rdfs:label": {
965
+ "@language": "en",
966
+ "@value": "start"
967
+ },
968
+ "rdfs:range": {
969
+ "@id": "xsd:nonNegativeInteger"
970
+ }
971
+ },
972
+ {
973
+ "@id": "oa:end",
974
+ "@type": "owl:DatatypeProperty",
975
+ "rdfs:comment": {
976
+ "@language": "en",
977
+ "@value": "The end position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:end is NOT included within the selected segment. \n\nSee oa:DataPositionSelector and oa:oa:TextPositionSelector."
978
+ },
979
+ "rdfs:domain": {
980
+ "@id": "oa:Selector"
981
+ },
982
+ "rdfs:isDefinedBy": {
983
+ "@id": "oa:"
984
+ },
985
+ "rdfs:label": {
986
+ "@language": "en",
987
+ "@value": "end"
988
+ },
989
+ "rdfs:range": {
990
+ "@id": "xsd:nonNegativeInteger"
991
+ }
992
+ },
993
+ {
994
+ "@id": "oa:TimeState",
995
+ "@type": "owl:Class",
996
+ "rdfs:comment": {
997
+ "@language": "en",
998
+ "@value": "A resource which describes how to retrieve a representation of the Source resource that is temporally appropriate for the Annotation.\n\nThere MUST be at least one of oa:cachedSource or oa:when specified. If there is more than 1, each gives an alternative copy of the representation."
999
+ },
1000
+ "rdfs:isDefinedBy": {
1001
+ "@id": "oa:"
1002
+ },
1003
+ "rdfs:label": {
1004
+ "@language": "en",
1005
+ "@value": "TimeState"
1006
+ },
1007
+ "rdfs:subClassOf": {
1008
+ "@id": "oa:State"
1009
+ }
1010
+ },
1011
+ {
1012
+ "@id": "oa:State",
1013
+ "@type": "owl:Class",
1014
+ "rdfs:comment": {
1015
+ "@language": "en",
1016
+ "@value": "A resource which describes how to retrieve an appropriate representation of the Source resource, indicated with oa:hasState from the Specific Resource.\n\nThis class is not used directly in Annotations, only its subclasses are.\n\nThe Specifier's description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced."
1017
+ },
1018
+ "rdfs:isDefinedBy": {
1019
+ "@id": "oa:"
1020
+ },
1021
+ "rdfs:label": {
1022
+ "@language": "en",
1023
+ "@value": "State"
1024
+ }
1025
+ },
1026
+ {
1027
+ "@id": "oa:CssStyle",
1028
+ "@type": "owl:Class",
1029
+ "rdfs:comment": {
1030
+ "@language": "en",
1031
+ "@value": "A resource which describes styles for resources participating in the Annotation using CSS.\n\nSpecific Resources MAY be assigned a CSS style class using oa:styleClass.\n\nThe CSS resource MAY have its own dereferencable URI that provides the information. For example, \"Style1\" in the diagram below might actually have the URI \"http://www.example.com/styles/annotations.css\". It MAY be embedded within the Annotation using the inline constructions described in Embedding Resources."
1032
+ },
1033
+ "rdfs:isDefinedBy": {
1034
+ "@id": "oa:"
1035
+ },
1036
+ "rdfs:label": {
1037
+ "@language": "en",
1038
+ "@value": "CssStyle"
1039
+ },
1040
+ "rdfs:subClassOf": {
1041
+ "@id": "oa:Style"
1042
+ }
1043
+ },
1044
+ {
1045
+ "@id": "oa:item",
1046
+ "@type": "owl:ObjectProperty",
1047
+ "rdfs:comment": {
1048
+ "@language": "en",
1049
+ "@value": "The relationship between a multiplicity construct node and its constituent resources.\n\nThere MUST be 1 or more item relationships for each multiplicity construct oa:Choice, oa:Composite and oa:List."
1050
+ },
1051
+ "rdfs:isDefinedBy": {
1052
+ "@id": "oa:"
1053
+ },
1054
+ "rdfs:label": {
1055
+ "@language": "en",
1056
+ "@value": "item"
1057
+ },
1058
+ "rdfs:subPropertyOf": {
1059
+ "@id": "rdfs:member"
1060
+ }
1061
+ },
1062
+ {
1063
+ "@id": "oa:hasScope",
1064
+ "@type": "owl:ObjectProperty",
1065
+ "rdfs:comment": {
1066
+ "@language": "en",
1067
+ "@value": "The relationship between a Specific Resource and the resource that provides the scope or context for it in this Annotation.\n\nThere MAY be 0 or more hasScope relationships for each Specific Resource."
1068
+ },
1069
+ "rdfs:domain": {
1070
+ "@id": "oa:SpecificResource"
1071
+ },
1072
+ "rdfs:isDefinedBy": {
1073
+ "@id": "oa:"
1074
+ },
1075
+ "rdfs:label": {
1076
+ "@language": "en",
1077
+ "@value": "hasScope"
1078
+ }
1079
+ },
1080
+ {
1081
+ "@id": "oa:suffix",
1082
+ "@type": "owl:DatatypeProperty",
1083
+ "rdfs:comment": {
1084
+ "@language": "en",
1085
+ "@value": "The snippet of text that occurs immediately after the text which is being selected. \n\nSee oa:TextQuoteSelector."
1086
+ },
1087
+ "rdfs:domain": {
1088
+ "@id": "oa:Selector"
1089
+ },
1090
+ "rdfs:isDefinedBy": {
1091
+ "@id": "oa:"
1092
+ },
1093
+ "rdfs:label": {
1094
+ "@language": "en",
1095
+ "@value": "suffix"
1096
+ }
1097
+ },
1098
+ {
1099
+ "@id": "oa:hasState",
1100
+ "@type": "owl:ObjectProperty",
1101
+ "rdfs:comment": {
1102
+ "@language": "en",
1103
+ "@value": "The relationship between a oa:SpecificResource and a oa:State resource.\n\nThere MAY be 0 or 1 oa:hasState relationship for each SpecificResource.\n\nIf there are multiple State resources that must be associated with the specific resource, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED."
1104
+ },
1105
+ "rdfs:domain": {
1106
+ "@id": "oa:SpecificResource"
1107
+ },
1108
+ "rdfs:isDefinedBy": {
1109
+ "@id": "oa:"
1110
+ },
1111
+ "rdfs:label": {
1112
+ "@language": "en",
1113
+ "@value": "hasState"
1114
+ },
1115
+ "rdfs:range": {
1116
+ "@id": "oa:State"
1117
+ }
1118
+ },
1119
+ {
1120
+ "@id": "oa:",
1121
+ "@type": "owl:Ontology",
1122
+ "dc:contributor": {
1123
+ "@language": "en",
1124
+ "@value": "Stian Soiland-Reyes"
1125
+ },
1126
+ "dc:creator": [
1127
+ {
1128
+ "@language": "en",
1129
+ "@value": "Robert Sanderson"
1130
+ },
1131
+ {
1132
+ "@language": "it",
1133
+ "@value": "Paolo Ciccarese"
1134
+ },
1135
+ {
1136
+ "@language": "vls",
1137
+ "@value": "Herbert Van de Sompel"
1138
+ }
1139
+ ],
1140
+ "dc:description": {
1141
+ "@language": "en",
1142
+ "@value": "The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web. Open Annotations can easily be shared between platforms, with sufficient richness of expression to satisfy complex requirements while remaining simple enough to also allow for the most common use cases, such as attaching a piece of text to a single web resource.\n\nAn Annotation is considered to be a set of connected resources, typically including a body and target, where the body is somehow about the target. The full model supports additional functionality, enabling semantic annotations, embedding content, selecting segments of resources, choosing the appropriate representation of a resource and providing styling hints for consuming clients."
1143
+ },
1144
+ "dc:title": {
1145
+ "@language": "en",
1146
+ "@value": "Open Annotation Data Model"
1147
+ },
1148
+ "dcterms:modified": {
1149
+ "@type": "xsd:dateTime",
1150
+ "@value": "2013-02-22T21:40:51+01:00"
1151
+ },
1152
+ "owl:versionIRI": {
1153
+ "@id": "http://www.openannotation.org/spec/core/20130208/oa.owl"
1154
+ },
1155
+ "owl:versionInfo": "0.9.20130208",
1156
+ "rdfs:comment": {
1157
+ "@language": "en",
1158
+ "@value": "The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web.\n\nThis ontology is a non-normative OWL formalization of the textual OA specification at http://www.openannotation.org/spec/core/20130208/index.html\n\nNote that OWL imports are disabled in the published version in order to reduce external implications, improve OWL 2 Profile conformity and increase interoperability. Some OWL tools might thus misleadingly show this ontology as (re)defining properties like skos:prefLabel."
1159
+ },
1160
+ "rdfs:seeAlso": {
1161
+ "@id": "http://www.openannotation.org/spec/core/20130208/index.html"
1162
+ }
1163
+ },
1164
+ {
1165
+ "@id": "oa:questioning",
1166
+ "@type": [
1167
+ "oa:Motivation",
1168
+ "owl:NamedIndividual"
1169
+ ],
1170
+ "rdfs:comment": {
1171
+ "@language": "en",
1172
+ "@value": "The motivation that represents asking a question about the target resource(s). For example to ask for assistance with a particular section of text, or question its veracity."
1173
+ },
1174
+ "skos:inScheme": {
1175
+ "@id": "oa:motivationScheme"
1176
+ },
1177
+ "skos:prefLabel": {
1178
+ "@language": "en",
1179
+ "@value": "questioning"
1180
+ }
1181
+ },
1182
+ {
1183
+ "@id": "oa:describing",
1184
+ "@type": [
1185
+ "oa:Motivation",
1186
+ "owl:NamedIndividual"
1187
+ ],
1188
+ "rdfs:comment": {
1189
+ "@language": "en",
1190
+ "@value": "The motivation that represents a description of the target resource(s), as opposed to a comment about them. For example describing the above PDF's contents, rather than commenting on their accuracy."
1191
+ },
1192
+ "skos:inScheme": {
1193
+ "@id": "oa:motivationScheme"
1194
+ },
1195
+ "skos:prefLabel": {
1196
+ "@language": "en",
1197
+ "@value": "describing"
1198
+ }
1199
+ },
1200
+ {
1201
+ "@id": "oa:styleClass",
1202
+ "@type": "owl:DatatypeProperty",
1203
+ "rdfs:comment": {
1204
+ "@language": "en",
1205
+ "@value": "The string name of the class used in the CSS description that should be applied to the Specific Resource.\n\nThere MAY be 0 or more styleClass properties on a Specific Resource.\n\nSee oa:CssStyle."
1206
+ },
1207
+ "rdfs:domain": {
1208
+ "@id": "oa:SpecificResource"
1209
+ },
1210
+ "rdfs:isDefinedBy": {
1211
+ "@id": "oa:"
1212
+ },
1213
+ "rdfs:label": {
1214
+ "@language": "en",
1215
+ "@value": "styleClass"
1216
+ }
1217
+ },
1218
+ {
1219
+ "@id": "oa:Tag",
1220
+ "@type": "owl:Class",
1221
+ "rdfs:comment": {
1222
+ "@language": "en",
1223
+ "@value": "A class assigned to the Body when it is a tag, such as a embedded text string with cnt:chars.\n\nTags are typically keywords or labels, and used for organization, description or discovery of the resource being tagged. In the Semantic Web, URIs are used instead of strings to avoid the issue of polysemy where one word has multiple meanings, such usage MUST be indicated using the subclass oa:SemanticTag.\n\nAnnotations that tag resources, either with text or semantic tags, SHOULD also have the oa:tagging motivation to make the reason for the Annotation more clear to applications, and MAY have other motivations as well."
1224
+ },
1225
+ "rdfs:isDefinedBy": {
1226
+ "@id": "oa:"
1227
+ },
1228
+ "rdfs:label": {
1229
+ "@language": "en",
1230
+ "@value": "Tag"
1231
+ }
1232
+ },
1233
+ {
1234
+ "@id": "oa:prefix",
1235
+ "@type": "owl:DatatypeProperty",
1236
+ "rdfs:comment": {
1237
+ "@language": "en",
1238
+ "@value": "A snippet of text that occurs immediately before the text which is being selected.\n\nSee oa:TextQuoteSelector."
1239
+ },
1240
+ "rdfs:domain": {
1241
+ "@id": "oa:Selector"
1242
+ },
1243
+ "rdfs:isDefinedBy": {
1244
+ "@id": "oa:"
1245
+ },
1246
+ "rdfs:label": {
1247
+ "@language": "en",
1248
+ "@value": "prefix"
1249
+ }
1250
+ }
1251
+ ]
1252
+ }
1253
+
1254
+
1255
+ http_version:
1256
+ recorded_at: Mon, 04 May 2015 17:52:35 GMT
1257
+ - request:
1258
+ method: get
1259
+ uri: http://www.w3.org/ns/oa-context-20130208.json
1260
+ body:
1261
+ encoding: US-ASCII
1262
+ string: ''
1263
+ headers:
1264
+ Accept:
1265
+ - application/ld+json, application/json
1266
+ Accept-Encoding:
1267
+ - gzip, deflate
1268
+ User-Agent:
1269
+ - Ruby
1270
+ response:
1271
+ status:
1272
+ code: 307
1273
+ message: Temporary Redirect
1274
+ headers:
1275
+ Date:
1276
+ - Mon, 04 May 2015 17:52:35 GMT
1277
+ Server:
1278
+ - Apache/2
1279
+ Location:
1280
+ - http://www.w3.org/ns/oa.jsonld
1281
+ Cache-Control:
1282
+ - max-age=21600
1283
+ Expires:
1284
+ - Mon, 04 May 2015 23:52:35 GMT
1285
+ Content-Length:
1286
+ - '240'
1287
+ Content-Type:
1288
+ - text/html; charset=iso-8859-1
1289
+ body:
1290
+ encoding: UTF-8
1291
+ string: |
1292
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
1293
+ <html><head>
1294
+ <title>307 Temporary Redirect</title>
1295
+ </head><body>
1296
+ <h1>Temporary Redirect</h1>
1297
+ <p>The document has moved <a href="http://www.w3.org/ns/oa.jsonld">here</a>.</p>
1298
+ </body></html>
1299
+ http_version:
1300
+ recorded_at: Mon, 04 May 2015 17:52:35 GMT
1301
+ - request:
1302
+ method: get
1303
+ uri: http://www.w3.org/ns/oa.jsonld
1304
+ body:
1305
+ encoding: US-ASCII
1306
+ string: ''
1307
+ headers:
1308
+ Accept:
1309
+ - application/ld+json, application/json
1310
+ Accept-Encoding:
1311
+ - gzip, deflate
1312
+ Cookie:
1313
+ - ''
1314
+ User-Agent:
1315
+ - Ruby
1316
+ response:
1317
+ status:
1318
+ code: 200
1319
+ message: OK
1320
+ headers:
1321
+ Date:
1322
+ - Mon, 04 May 2015 17:52:35 GMT
1323
+ Server:
1324
+ - Apache/2
1325
+ Last-Modified:
1326
+ - Tue, 06 May 2014 11:14:49 GMT
1327
+ Etag:
1328
+ - '"b533-4f8b95b2a9c40"'
1329
+ Accept-Ranges:
1330
+ - bytes
1331
+ Content-Length:
1332
+ - '46387'
1333
+ Cache-Control:
1334
+ - max-age=21600
1335
+ Expires:
1336
+ - Mon, 04 May 2015 23:52:35 GMT
1337
+ P3p:
1338
+ - policyref="http://www.w3.org/2014/08/p3p.xml"
1339
+ Access-Control-Allow-Origin:
1340
+ - "*"
1341
+ Content-Type:
1342
+ - application/ld+json
1343
+ body:
1344
+ encoding: UTF-8
1345
+ string: |+
1346
+ {
1347
+ "@context": {
1348
+ "oa": "http://www.w3.org/ns/oa#",
1349
+ "cnt": "http://www.w3.org/2011/content#",
1350
+ "dc": "http://purl.org/dc/elements/1.1/",
1351
+ "dcterms": "http://purl.org/dc/terms/",
1352
+ "dctypes": "http://purl.org/dc/dcmitype/",
1353
+ "foaf": "http://xmlns.com/foaf/0.1/",
1354
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
1355
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
1356
+ "skos": "http://www.w3.org/2004/02/skos/core#",
1357
+ "owl": "http://www.w3.org/2002/07/owl#",
1358
+ "prov": "http://www.w3.org/ns/prov#",
1359
+ "trig": "http://www.w3.org/2004/03/trix/rdfg-1/",
1360
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
1361
+
1362
+
1363
+ "hasBody" : {"@type":"@id", "@id" : "oa:hasBody"},
1364
+ "hasTarget" : {"@type":"@id", "@id" : "oa:hasTarget"},
1365
+ "hasSource" : {"@type":"@id", "@id" : "oa:hasSource"},
1366
+ "hasSelector" : {"@type":"@id", "@id" : "oa:hasSelector"},
1367
+ "hasState" : {"@type":"@id", "@id" : "oa:hasState"},
1368
+ "hasScope" : {"@type":"@id", "@id" : "oa:hasScope"},
1369
+ "annotatedBy" : {"@type":"@id", "@id" : "oa:annotatedBy"},
1370
+ "serializedBy" : {"@type":"@id", "@id" : "oa:serializedBy"},
1371
+ "motivatedBy" : {"@type":"@id", "@id" : "oa:motivatedBy"},
1372
+ "equivalentTo" : {"@type":"@id", "@id" : "oa:equivalentTo"},
1373
+ "styledBy" : {"@type":"@id", "@id" : "oa:styledBy"},
1374
+ "cachedSource" : {"@type":"@id", "@id" : "oa:cachedSource"},
1375
+ "conformsTo" : {"@type":"@id", "@id" : "dcterms:conformsTo"},
1376
+ "default" : {"@type":"@id", "@id" : "oa:default"},
1377
+ "item" : {"@type":"@id", "@id" : "oa:item"},
1378
+ "first": {"@type":"@id", "@id" : "rdf:first"},
1379
+ "rest": {"@type":"@id", "@id" : "rdf:rest", "@container" : "@list"},
1380
+
1381
+ "annotatedAt" : { "@type": "xsd:dateTimeStamp", "@id": "oa:annotatedAt" },
1382
+ "end" : { "@type": "xsd:nonNegativeInteger", "@id": "oa:end" },
1383
+ "exact" : "oa:exact",
1384
+ "prefix" : "oa:prefix",
1385
+ "serializedAt" : { "@type": "xsd:dateTimeStamp", "@id": "oa:serializedAt" },
1386
+ "start" : { "@type": "xsd:nonNegativeInteger", "@id": "oa:start" },
1387
+ "styleClass" : "oa:styleClass",
1388
+ "suffix" : "oa:suffix",
1389
+ "when" : { "@type": "xsd:dateTimeStamp", "@id": "oa:when" },
1390
+
1391
+ "chars" : "cnt:chars",
1392
+ "bytes" : "cnt:bytes",
1393
+ "format" : "dc:format",
1394
+ "language" : "dc:language",
1395
+ "value" : "rdf:value",
1396
+ "label" : "rdfs:label",
1397
+ "name" : "foaf:name",
1398
+ "mbox" : "foaf:mbox"
1399
+
1400
+ },
1401
+ "@graph": [
1402
+ {
1403
+ "@id": "oa:annotatedBy",
1404
+ "@type": "owl:ObjectProperty",
1405
+ "rdfs:comment": {
1406
+ "@language": "en",
1407
+ "@value": "The object of the relationship is a resource that identifies the agent responsible for creating the Annotation. This may be either a human or software agent. \n\nThere SHOULD be exactly 1 oa:annotatedBy relationship per Annotation, but MAY be 0 or more than 1, as the Annotation may be anonymous, or multiple agents may have worked together on it.\n\nIt is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage"
1408
+ },
1409
+ "rdfs:domain": {
1410
+ "@id": "oa:Annotation"
1411
+ },
1412
+ "rdfs:isDefinedBy": {
1413
+ "@id": "oa:"
1414
+ },
1415
+ "rdfs:label": {
1416
+ "@language": "en",
1417
+ "@value": "annotatedBy"
1418
+ },
1419
+ "rdfs:subPropertyOf": {
1420
+ "@id": "prov:wasAttributedTo"
1421
+ }
1422
+ },
1423
+ {
1424
+ "@id": "oa:commenting",
1425
+ "@type": [
1426
+ "oa:Motivation",
1427
+ "owl:NamedIndividual"
1428
+ ],
1429
+ "rdfs:comment": {
1430
+ "@language": "en",
1431
+ "@value": "The motivation that represents a commentary about or review of the target resource(s). For example to provide a commentary about a particular PDF."
1432
+ },
1433
+ "skos:inScheme": {
1434
+ "@id": "oa:motivationScheme"
1435
+ },
1436
+ "skos:prefLabel": {
1437
+ "@language": "en",
1438
+ "@value": "commenting"
1439
+ }
1440
+ },
1441
+ {
1442
+ "@id": "oa:SvgSelector",
1443
+ "@type": "owl:Class",
1444
+ "rdfs:comment": {
1445
+ "@language": "en",
1446
+ "@value": "A Selector which selects an area specified as an SVG shape.\n\nThe SVG document should either be retrievable by resolving the URI of this resource, or be included as an Embedded Resource using cnt:Content.\n\nIt is RECOMMENDED that the document contain only a single shape element and that element SHOULD be one of: path, rect, circle, ellipse, polyline, polygon or g. The g element SHOULD ONLY be used to construct a multi-element group, for example to define a donut shape requiring an outer circle and a clipped inner circle.\n\nThe dimensions of both the shape and the SVG canvas MUST be relative to the dimensions of the Source resource. For example, given an image which is 600 pixels by 400 pixels, and the desired section is a circle of 100 pixel radius at the center of the image, then the SVG element would be: <circle cx=\"300\" cy=\"200\" r=\"100\"/>\n\nIt is NOT RECOMMENDED to include style information within the SVG element, nor Javascript, animation, text or other non shape oriented information. Clients SHOULD ignore such information if present."
1447
+ },
1448
+ "rdfs:isDefinedBy": {
1449
+ "@id": "oa:"
1450
+ },
1451
+ "rdfs:label": {
1452
+ "@language": "en",
1453
+ "@value": "SvgSelector"
1454
+ },
1455
+ "rdfs:subClassOf": {
1456
+ "@id": "oa:Selector"
1457
+ }
1458
+ },
1459
+ {
1460
+ "@id": "oa:Selector",
1461
+ "@type": "owl:Class",
1462
+ "rdfs:comment": {
1463
+ "@language": "en",
1464
+ "@value": "A resource which describes the segment of interest in a representation of a Source resource, indicated with oa:hasSelector from the Specific Resource. \n\nThis class is not used directly in Annotations, only its subclasses are.\n\nThe nature of the Selector will be dependent on the type of the representation for which the segment is conveyed. The specific type of selector should be indicated using a subclass of oa:Selector.\n\nThe Specifier's description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced."
1465
+ },
1466
+ "rdfs:isDefinedBy": {
1467
+ "@id": "oa:"
1468
+ },
1469
+ "rdfs:label": {
1470
+ "@language": "en",
1471
+ "@value": "Selector"
1472
+ }
1473
+ },
1474
+ {
1475
+ "@id": "oa:Style",
1476
+ "@type": "owl:Class",
1477
+ "rdfs:comment": {
1478
+ "@language": "en",
1479
+ "@value": "A resource which describes the style in which the selection or resource should be rendered, indicated with oa:styledBy from an oa:Annotation.\n\nThis class is not used directly in Annotations, only its subclasses are.\n\nThe content of the resource provides the rendering hints about the Annotation's constituent resources. \n\nThe Specifier's description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced."
1480
+ },
1481
+ "rdfs:isDefinedBy": {
1482
+ "@id": "oa:"
1483
+ },
1484
+ "rdfs:label": {
1485
+ "@language": "en",
1486
+ "@value": "Style"
1487
+ }
1488
+ },
1489
+ {
1490
+ "@id": "oa:exact",
1491
+ "@type": "owl:DatatypeProperty",
1492
+ "rdfs:comment": {
1493
+ "@language": "en",
1494
+ "@value": "A copy of the text which is being selected, after normalization.\n\nSee oa:TextQuoteSelector."
1495
+ },
1496
+ "rdfs:domain": {
1497
+ "@id": "oa:Selector"
1498
+ },
1499
+ "rdfs:isDefinedBy": {
1500
+ "@id": "oa:"
1501
+ },
1502
+ "rdfs:label": {
1503
+ "@language": "en",
1504
+ "@value": "exact"
1505
+ }
1506
+ },
1507
+ {
1508
+ "@id": "oa:hasBody",
1509
+ "@type": "owl:ObjectProperty",
1510
+ "rdfs:comment": {
1511
+ "@language": "en",
1512
+ "@value": "The relationship between oa:Annotation and body. The body is somehow \"about\" the oa:hasTarget of the annotation.\n\nThe Body may be of any media type, and contain any type of content. The Body SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.\n\nEmbedded bodies SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. \n\nThere is no OA class provided for \"Body\" as a body might be a target of a different annotation. However, there SHOULD be 1 or more content-based classes associated with the body resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.\n"
1513
+ },
1514
+ "rdfs:domain": {
1515
+ "@id": "oa:Annotation"
1516
+ },
1517
+ "rdfs:isDefinedBy": {
1518
+ "@id": "oa:"
1519
+ },
1520
+ "rdfs:label": {
1521
+ "@language": "en",
1522
+ "@value": "hasBody"
1523
+ }
1524
+ },
1525
+ {
1526
+ "@id": "oa:Choice",
1527
+ "@type": "owl:Class",
1528
+ "rdfs:comment": {
1529
+ "@language": "en",
1530
+ "@value": "A multiplicity construct that conveys to a consuming application that it should select one of the constituent resources to display to the user, and not render/use all of them. \n\noa:Choice can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, \n\nThere MUST be 1 or more oa:item relationships for each oa:Choice.\n\nThere SHOULD be exactly 1 default relationship for each Choice."
1531
+ },
1532
+ "rdfs:isDefinedBy": {
1533
+ "@id": "oa:"
1534
+ },
1535
+ "rdfs:label": {
1536
+ "@language": "en",
1537
+ "@value": "Choice"
1538
+ },
1539
+ "rdfs:subClassOf": {
1540
+ "@id": "rdf:Alt"
1541
+ }
1542
+ },
1543
+ {
1544
+ "@id": "oa:when",
1545
+ "@type": "owl:DatatypeProperty",
1546
+ "rdfs:comment": {
1547
+ "@language": "en",
1548
+ "@value": "The timestamp at which the Source resource should be interpreted for the Annotation, typically the time that the Annotation was created."
1549
+ },
1550
+ "rdfs:domain": {
1551
+ "@id": "oa:TimeState"
1552
+ },
1553
+ "rdfs:isDefinedBy": {
1554
+ "@id": "oa:"
1555
+ },
1556
+ "rdfs:label": {
1557
+ "@language": "en",
1558
+ "@value": "when"
1559
+ },
1560
+ "rdfs:range": {
1561
+ "@id": "xsd:dateTimeStamp"
1562
+ }
1563
+ },
1564
+ {
1565
+ "@id": "oa:serializedBy",
1566
+ "@type": "owl:ObjectProperty",
1567
+ "rdfs:comment": {
1568
+ "@language": "en",
1569
+ "@value": "The object of the relationship is the agent, likely software, responsible for generating the serialization of the Annotation's serialization. \n\nIt is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage\n\nThere MAY be 0 or more oa:serializedBy relationships per Annotation."
1570
+ },
1571
+ "rdfs:domain": {
1572
+ "@id": "oa:Annotation"
1573
+ },
1574
+ "rdfs:isDefinedBy": {
1575
+ "@id": "oa:"
1576
+ },
1577
+ "rdfs:label": {
1578
+ "@language": "en",
1579
+ "@value": "serializedBy"
1580
+ },
1581
+ "rdfs:subPropertyOf": {
1582
+ "@id": "prov:wasAttributedTo"
1583
+ }
1584
+ },
1585
+ {
1586
+ "@id": "oa:motivatedBy",
1587
+ "@type": "owl:ObjectProperty",
1588
+ "rdfs:comment": {
1589
+ "@language": "en",
1590
+ "@value": "The relationship between an Annotation and a Motivation, indicating the reasons why the Annotation was created.\n\nEach Annotation SHOULD have at least one oa:motivatedBy relationship, and MAY be more than 1."
1591
+ },
1592
+ "rdfs:domain": {
1593
+ "@id": "oa:Annotation"
1594
+ },
1595
+ "rdfs:isDefinedBy": {
1596
+ "@id": "oa:"
1597
+ },
1598
+ "rdfs:label": {
1599
+ "@language": "en",
1600
+ "@value": "motivatedBy"
1601
+ },
1602
+ "rdfs:range": {
1603
+ "@id": "oa:Motivation"
1604
+ }
1605
+ },
1606
+ {
1607
+ "@id": "oa:moderating",
1608
+ "@type": [
1609
+ "oa:Motivation",
1610
+ "owl:NamedIndividual"
1611
+ ],
1612
+ "rdfs:comment": {
1613
+ "@language": "en",
1614
+ "@value": "The motivation that represents an assignment of value or quality to the target resource(s). For example annotating an Annotation to moderate it up in a trust network or threaded discussion."
1615
+ },
1616
+ "skos:inScheme": {
1617
+ "@id": "oa:motivationScheme"
1618
+ },
1619
+ "skos:prefLabel": {
1620
+ "@language": "en",
1621
+ "@value": "moderating"
1622
+ }
1623
+ },
1624
+ {
1625
+ "@id": "oa:highlighting",
1626
+ "@type": [
1627
+ "oa:Motivation",
1628
+ "owl:NamedIndividual"
1629
+ ],
1630
+ "rdfs:comment": {
1631
+ "@language": "en",
1632
+ "@value": "The motivation that represents a highlighted section of the target resource or segment. For example to draw attention to the selected text that the annotator disagrees with. A Highlight may or may not have a Body resource"
1633
+ },
1634
+ "skos:inScheme": {
1635
+ "@id": "oa:motivationScheme"
1636
+ },
1637
+ "skos:prefLabel": {
1638
+ "@language": "en",
1639
+ "@value": "highlighting"
1640
+ }
1641
+ },
1642
+ {
1643
+ "@id": "oa:styledBy",
1644
+ "@type": "owl:ObjectProperty",
1645
+ "rdfs:comment": {
1646
+ "@language": "en",
1647
+ "@value": "The relationship between a oa:Annotation and a oa:Style.\n\nThere MAY be 0 or 1 styledBy relationships for each Annotation.\n\nIf there are multiple Style resources that must be associated with the Annotation, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED."
1648
+ },
1649
+ "rdfs:domain": {
1650
+ "@id": "oa:Annotation"
1651
+ },
1652
+ "rdfs:isDefinedBy": {
1653
+ "@id": "oa:"
1654
+ },
1655
+ "rdfs:label": {
1656
+ "@language": "en",
1657
+ "@value": "styledBy"
1658
+ },
1659
+ "rdfs:range": {
1660
+ "@id": "oa:Style"
1661
+ }
1662
+ },
1663
+ {
1664
+ "@id": "oa:FragmentSelector",
1665
+ "@type": "owl:Class",
1666
+ "rdfs:comment": {
1667
+ "@language": "en",
1668
+ "@value": "A Selector which describes the segment of interest in a representation, through the use of the fragment identifier component of a URI.\n\nIt is RECOMMENDED to use oa:FragmentSelector as the selector on a Specific Resource rather than annotating the fragment URI directly, in order to improve discoverability of annotation on the Source.\n\nThe oa:FragmentSelector MUST have exactly 1 rdf:value property, containing the fragment identifier component of a URI that describes the segment of interest in the resource, excluding the initial \"#\".\n\nThe Fragment Selector SHOULD have a dcterms:conformsTo relationship with the object being the specification that defines the syntax of the fragment, for instance <http://tools.ietf.org/rfc/rfc3236> for HTML fragments. "
1669
+ },
1670
+ "rdfs:isDefinedBy": {
1671
+ "@id": "oa:"
1672
+ },
1673
+ "rdfs:label": {
1674
+ "@language": "en",
1675
+ "@value": "FragmentSelector"
1676
+ },
1677
+ "rdfs:subClassOf": {
1678
+ "@id": "oa:Selector"
1679
+ }
1680
+ },
1681
+ {
1682
+ "@id": "oa:SpecificResource",
1683
+ "@type": "owl:Class",
1684
+ "rdfs:comment": {
1685
+ "@language": "en",
1686
+ "@value": "A resource identifies part of another Source resource, a particular representation of a resource, a resource with styling hints for renders, or any combination of these. \n\nThe Specific Resource takes the role of oa:hasBody or oa:hasTarget in an oa:Annotation instead of the Source resource.\n\nThere MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.\n\nThere MUST be exactly 0 or 1 oa:hasSelector relationship associated with a Specific Resource.\n\nThere MAY be 0 or 1 oa:hasState relationship for each Specific Resource.\n\nIf the Specific Resource has an HTTP URI, then the exact segment of the Source resource that it identifies, and only the segment, MUST be returned when the URI is dereferenced. For example, if the segment of interest is a region of an image and the Specific Resource has an HTTP URI, then dereferencing it MUST return the selected region of the image as it was at the time when the annotation was created. Typically this would be a burden to support, and thus the Specific Resource SHOULD be identified by a globally unique URI, such as a UUID URN. If it is not considered important to allow other Annotations or systems to refer to the Specific Resource, then a blank node MAY be used instead."
1687
+ },
1688
+ "rdfs:isDefinedBy": {
1689
+ "@id": "oa:"
1690
+ },
1691
+ "rdfs:label": {
1692
+ "@language": "en",
1693
+ "@value": "SpecificResource"
1694
+ }
1695
+ },
1696
+ {
1697
+ "@id": "oa:annotatedAt",
1698
+ "@type": "owl:DatatypeProperty",
1699
+ "rdfs:comment": {
1700
+ "@language": "en",
1701
+ "@value": "The time at which the Annotation was created. \n\nThere SHOULD be exactly 1 oa:annotatedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified."
1702
+ },
1703
+ "rdfs:domain": {
1704
+ "@id": "oa:Annotation"
1705
+ },
1706
+ "rdfs:isDefinedBy": {
1707
+ "@id": "oa:"
1708
+ },
1709
+ "rdfs:label": {
1710
+ "@language": "en",
1711
+ "@value": "annotatedAt"
1712
+ },
1713
+ "rdfs:range": {
1714
+ "@id": "xsd:dateTimeStamp"
1715
+ }
1716
+ },
1717
+ {
1718
+ "@id": "oa:editing",
1719
+ "@type": [
1720
+ "oa:Motivation",
1721
+ "owl:NamedIndividual"
1722
+ ],
1723
+ "rdfs:comment": {
1724
+ "@language": "en",
1725
+ "@value": "The motivation that represents a request for a modification or edit to the target resource. For example, an Annotation that requests a typo to be corrected."
1726
+ },
1727
+ "skos:inScheme": {
1728
+ "@id": "oa:motivationScheme"
1729
+ },
1730
+ "skos:prefLabel": {
1731
+ "@language": "en",
1732
+ "@value": "editing"
1733
+ }
1734
+ },
1735
+ {
1736
+ "@id": "oa:Annotation",
1737
+ "@type": "owl:Class",
1738
+ "rdfs:comment": {
1739
+ "@language": "en",
1740
+ "@value": "Typically an Annotation has a single Body (oa:hasBody), which is the comment or other descriptive resource, and a single Target (oa:hasTarget) that the Body is somehow \"about\". The Body provides the information which is annotating the Target. \n\nThis \"aboutness\" may be further clarified or extended to notions such as classifying or identifying with oa:motivatedBy."
1741
+ },
1742
+ "rdfs:isDefinedBy": {
1743
+ "@id": "oa:"
1744
+ },
1745
+ "rdfs:label": {
1746
+ "@language": "en",
1747
+ "@value": "Annotation"
1748
+ }
1749
+ },
1750
+ {
1751
+ "@id": "oa:equivalentTo",
1752
+ "@type": "owl:ObjectProperty",
1753
+ "rdfs:comment": {
1754
+ "@language": "en",
1755
+ "@value": "The subject and object resources of the oa:equivalentTo relationship represent the same resource, but potentially have different metadata such as oa:serializedBy, oa:serializedAt and serialization format. oa:equivalentTo is a symmetrical and transitive relationship; if A oa:equivalentTo B, then it is also true that B oa:equivalent A; and that if B oa:equivalentTo C, then it is also true that A oa:equivalentTo C. \n\nThe Annotation MAY include 0 or more instances of the oa:equivalentTo relationship between copies of the Annotation or other resources, and SHOULD include as many as are available.\n\nIf a system publishes an embedded resource (a cnt:Content) at a new HTTP URI, then it SHOULD express the oa:equivalentTo relationship between the resource's URN and the new URI from which it is available."
1756
+ },
1757
+ "rdfs:isDefinedBy": {
1758
+ "@id": "oa:"
1759
+ },
1760
+ "rdfs:label": {
1761
+ "@language": "en",
1762
+ "@value": "equivalentTo"
1763
+ },
1764
+ "rdfs:subPropertyOf": {
1765
+ "@id": "prov:alternateOf"
1766
+ }
1767
+ },
1768
+ {
1769
+ "@id": "oa:Motivation",
1770
+ "@type": "owl:Class",
1771
+ "rdfs:comment": {
1772
+ "@language": "en",
1773
+ "@value": "The Motivation for creating an Annotation, indicated with oa:motivatedBy, is a reason for its creation, and might include things like oa:replying to another annotation, oa:commenting on a resource, or oa:linking to a related resource.\n\nEach Annotation SHOULD have at least one oa:motivatedBy relationship to an instance of oa:Motivation, which is a subClass of skos:Concept."
1774
+ },
1775
+ "rdfs:isDefinedBy": {
1776
+ "@id": "oa:"
1777
+ },
1778
+ "rdfs:label": {
1779
+ "@language": "en",
1780
+ "@value": "Motivation"
1781
+ },
1782
+ "rdfs:subClassOf": {
1783
+ "@id": "skos:Concept"
1784
+ }
1785
+ },
1786
+ {
1787
+ "@id": "oa:tagging",
1788
+ "@type": [
1789
+ "oa:Motivation",
1790
+ "owl:NamedIndividual"
1791
+ ],
1792
+ "rdfs:comment": {
1793
+ "@language": "en",
1794
+ "@value": "The motivation that represents adding a Tag on the target resource(s). One or more of the bodies of the annotation should be typed as a oa:Tag or oa:SemanticTag."
1795
+ },
1796
+ "skos:inScheme": {
1797
+ "@id": "oa:motivationScheme"
1798
+ },
1799
+ "skos:prefLabel": {
1800
+ "@language": "en",
1801
+ "@value": "tagging"
1802
+ }
1803
+ },
1804
+ {
1805
+ "@id": "oa:List",
1806
+ "@type": "owl:Class",
1807
+ "rdfs:comment": {
1808
+ "@language": "en",
1809
+ "@value": "A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted, and in a particular order. \n\noa:List can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, \n\nThere MUST be 2 or more oa:item relationships for each oa:List, with their order defined using the rdf:List construct of rdf:first/rdf:rest/rdf:nil.\n\nAll the elements of the list should also be declared using oa:item, and each of the oa:items should appear at least once in the list."
1810
+ },
1811
+ "rdfs:isDefinedBy": {
1812
+ "@id": "oa:"
1813
+ },
1814
+ "rdfs:label": {
1815
+ "@language": "en",
1816
+ "@value": "List"
1817
+ },
1818
+ "rdfs:subClassOf": {
1819
+ "@id": "oa:Composite"
1820
+ }
1821
+ },
1822
+ {
1823
+ "@id": "oa:TextQuoteSelector",
1824
+ "@type": "owl:Class",
1825
+ "rdfs:comment": {
1826
+ "@language": "en",
1827
+ "@value": "A Selector that describes a textual segment by means of quoting it, plus passages before or after it.\n\nFor example, if the document were \"abcdefghijklmnopqrstuvwxyz\", one could select \"efg\" by a oa:prefix of \"abcd\", the quotation of oa:exact \"efg\" and a oa:suffix of \"hijk\".\n\nThe text MUST be normalized before recording.\n\nEach TextQuoteSelector MUST have exactly 1 oa:exact property.\n\nEach TextQuoteSelector SHOULD have exactly 1 oa:prefix property, and MUST NOT have more than 1.\n\nEach TextQuoteSelector SHOULD have exactly 1 oa:suffix property, and MUST NOT have more than 1."
1828
+ },
1829
+ "rdfs:isDefinedBy": {
1830
+ "@id": "oa:"
1831
+ },
1832
+ "rdfs:label": {
1833
+ "@language": "en",
1834
+ "@value": "TextQuoteSelector"
1835
+ },
1836
+ "rdfs:subClassOf": {
1837
+ "@id": "oa:Selector"
1838
+ }
1839
+ },
1840
+ {
1841
+ "@id": "oa:cachedSource",
1842
+ "@type": "owl:ObjectProperty",
1843
+ "rdfs:comment": {
1844
+ "@language": "en",
1845
+ "@value": "A link to a copy of the Source resource's representation appropriate for the Annotation, typically a copy of the original at the time that the Annotation was created"
1846
+ },
1847
+ "rdfs:domain": {
1848
+ "@id": "oa:TimeState"
1849
+ },
1850
+ "rdfs:isDefinedBy": {
1851
+ "@id": "oa:"
1852
+ },
1853
+ "rdfs:label": {
1854
+ "@language": "en",
1855
+ "@value": "cachedSource"
1856
+ }
1857
+ },
1858
+ {
1859
+ "@id": "oa:bookmarking",
1860
+ "@type": [
1861
+ "oa:Motivation",
1862
+ "owl:NamedIndividual"
1863
+ ],
1864
+ "rdfs:comment": {
1865
+ "@language": "en",
1866
+ "@value": "The motivation that represents the creation of a bookmark to the target resources or recorded point or points within one or more resources. For example, an Annotation that bookmarks the point in a text where the reader finished reading. Bookmark Annotations may or may not have a Body resource."
1867
+ },
1868
+ "skos:inScheme": {
1869
+ "@id": "oa:motivationScheme"
1870
+ },
1871
+ "skos:prefLabel": {
1872
+ "@language": "en",
1873
+ "@value": "bookmarking"
1874
+ }
1875
+ },
1876
+ {
1877
+ "@id": "oa:SemanticTag",
1878
+ "@type": "owl:Class",
1879
+ "rdfs:comment": {
1880
+ "@language": "en",
1881
+ "@value": "A class assigned to the Body when it is a semantic tagging resource; a URI that identifies a concept, rather than an embedded string, frequently a term from a controlled vocabulary.\n\nIt is NOT RECOMMENDED to use the URI of a document as a Semantic Tag, as it might also be used as a regular Body in other Annotations which would inherit the oa:SemanticTag class assignment. Instead it is more appropriate to create a new URI and link it to the document, using the foaf:page predicate."
1882
+ },
1883
+ "rdfs:isDefinedBy": {
1884
+ "@id": "oa:"
1885
+ },
1886
+ "rdfs:label": {
1887
+ "@language": "en",
1888
+ "@value": "SemanticTag"
1889
+ },
1890
+ "rdfs:subClassOf": {
1891
+ "@id": "oa:Tag"
1892
+ }
1893
+ },
1894
+ {
1895
+ "@id": "oa:hasSource",
1896
+ "@type": "owl:ObjectProperty",
1897
+ "rdfs:comment": {
1898
+ "@language": "en",
1899
+ "@value": "The relationship between a oa:SpecificResource and the resource that it is a more specific representation of. \n\nThere MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource."
1900
+ },
1901
+ "rdfs:domain": {
1902
+ "@id": "oa:SpecificResource"
1903
+ },
1904
+ "rdfs:isDefinedBy": {
1905
+ "@id": "oa:"
1906
+ },
1907
+ "rdfs:label": {
1908
+ "@language": "en",
1909
+ "@value": "hasSource"
1910
+ }
1911
+ },
1912
+ {
1913
+ "@id": "oa:default",
1914
+ "@type": "owl:ObjectProperty",
1915
+ "rdfs:comment": {
1916
+ "@language": "en",
1917
+ "@value": "The constituent resource of a oa:Choice to use as a default option, if there is no other means to determine which would be most appropriate.\n\nThere SHOULD be exactly 1 default relationship for each Choice."
1918
+ },
1919
+ "rdfs:domain": {
1920
+ "@id": "oa:Choice"
1921
+ },
1922
+ "rdfs:isDefinedBy": {
1923
+ "@id": "oa:"
1924
+ },
1925
+ "rdfs:label": {
1926
+ "@language": "en",
1927
+ "@value": "default"
1928
+ },
1929
+ "rdfs:subPropertyOf": {
1930
+ "@id": "oa:item"
1931
+ }
1932
+ },
1933
+ {
1934
+ "@id": "oa:hasSelector",
1935
+ "@type": "owl:ObjectProperty",
1936
+ "rdfs:comment": {
1937
+ "@language": "en",
1938
+ "@value": "The relationship between a oa:SpecificResource and a oa:Selector.\n\nThere MUST be exactly 0 or 1 oa:hasSelector relationship associated with a \nSpecific Resource. \n\nIf multiple Selectors are required, either to express a choice between different optional, equivalent selectors, or a chain of selectors that should all be processed, it is necessary to use oa:Choice, oa:Composite or oa:List as a selector."
1939
+ },
1940
+ "rdfs:domain": {
1941
+ "@id": "oa:SpecificResource"
1942
+ },
1943
+ "rdfs:isDefinedBy": {
1944
+ "@id": "oa:"
1945
+ },
1946
+ "rdfs:label": {
1947
+ "@language": "en",
1948
+ "@value": "hasSelector"
1949
+ },
1950
+ "rdfs:range": {
1951
+ "@id": "oa:Selector"
1952
+ }
1953
+ },
1954
+ {
1955
+ "@id": "oa:hasTarget",
1956
+ "@type": "owl:ObjectProperty",
1957
+ "rdfs:comment": {
1958
+ "@language": "en",
1959
+ "@value": "The relationship between oa:Annotation and target. The target resource is what the oa:hasBody is somewhat \"about\".\n\nThe target may be of any media type, and contain any type of content. The target SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.\n\nEmbedded targets SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. \n\nThere is no OA class provided for \"Target\" as a target might be a body in a different annotation. However, there SHOULD be 1 or more content-based classes associated with the target resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content."
1960
+ },
1961
+ "rdfs:domain": {
1962
+ "@id": "oa:Annotation"
1963
+ },
1964
+ "rdfs:isDefinedBy": {
1965
+ "@id": "oa:"
1966
+ },
1967
+ "rdfs:label": {
1968
+ "@language": "en",
1969
+ "@value": "hasTarget"
1970
+ }
1971
+ },
1972
+ {
1973
+ "@id": "oa:TextPositionSelector",
1974
+ "@type": "owl:Class",
1975
+ "rdfs:comment": {
1976
+ "@language": "en",
1977
+ "@value": "An oa:Selector which describes a range of text based on its start and end positions.\n\nThe text MUST be normalized before counting characters. For a Selector that works from the bitstream rather than the rendered characters, see oa:DataPositionSelector.\n\nEach oa:TextPositionSelector MUST have exactly 1 oa:start property.\n\nEach oa:TextPositionSelector MUST have exactly 1 oa:end property."
1978
+ },
1979
+ "rdfs:isDefinedBy": {
1980
+ "@id": "oa:"
1981
+ },
1982
+ "rdfs:label": {
1983
+ "@language": "en",
1984
+ "@value": "TextPositionSelector"
1985
+ },
1986
+ "rdfs:subClassOf": {
1987
+ "@id": "oa:Selector"
1988
+ }
1989
+ },
1990
+ {
1991
+ "@id": "oa:serializedAt",
1992
+ "@type": "owl:DatatypeProperty",
1993
+ "rdfs:comment": {
1994
+ "@language": "en",
1995
+ "@value": "The time at which the agent referenced by oa:serializedBy generated the first serialization of the Annotation, and any subsequent substantially different one. The annotation graph MUST have changed for this property to be updated, and as such represents the last modified datestamp for the Annotation. This might be used to determine if it should be re-imported into a triplestore when discovered. \n\nThere MAY be exactly 1 oa:serializedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.\n"
1996
+ },
1997
+ "rdfs:domain": {
1998
+ "@id": "oa:Annotation"
1999
+ },
2000
+ "rdfs:isDefinedBy": {
2001
+ "@id": "oa:"
2002
+ },
2003
+ "rdfs:label": {
2004
+ "@language": "en",
2005
+ "@value": "serializedAt"
2006
+ },
2007
+ "rdfs:range": {
2008
+ "@id": "xsd:dateTimeStamp"
2009
+ }
2010
+ },
2011
+ {
2012
+ "@id": "oa:Composite",
2013
+ "@type": "owl:Class",
2014
+ "rdfs:comment": {
2015
+ "@language": "en",
2016
+ "@value": "A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted. \n\noa:Composite can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, \n\nThere MUST be 2 or more oa:item relationships for each oa:Composite."
2017
+ },
2018
+ "rdfs:isDefinedBy": {
2019
+ "@id": "oa:"
2020
+ },
2021
+ "rdfs:label": "Composite",
2022
+ "rdfs:subClassOf": {
2023
+ "@id": "rdf:Bag"
2024
+ }
2025
+ },
2026
+ {
2027
+ "@id": "oa:classifying",
2028
+ "@type": [
2029
+ "oa:Motivation",
2030
+ "owl:NamedIndividual"
2031
+ ],
2032
+ "rdfs:comment": {
2033
+ "@language": "en",
2034
+ "@value": "The motivation that represents the assignment of a classification type, typically from a controlled vocabulary, to the target resource(s). For example to classify an Image resource as a Portrait."
2035
+ },
2036
+ "skos:inScheme": {
2037
+ "@id": "oa:motivationScheme"
2038
+ },
2039
+ "skos:prefLabel": {
2040
+ "@language": "en",
2041
+ "@value": "classifying"
2042
+ }
2043
+ },
2044
+ {
2045
+ "@id": "oa:identifying",
2046
+ "@type": [
2047
+ "oa:Motivation",
2048
+ "owl:NamedIndividual"
2049
+ ],
2050
+ "rdfs:comment": {
2051
+ "@language": "en",
2052
+ "@value": "The motivation that represents the assignment of an identity to the target resource(s). For example, annotating the name of a city in a string of text with the URI that identifies it."
2053
+ },
2054
+ "skos:inScheme": {
2055
+ "@id": "oa:motivationScheme"
2056
+ },
2057
+ "skos:prefLabel": {
2058
+ "@language": "en",
2059
+ "@value": "identifying"
2060
+ }
2061
+ },
2062
+ {
2063
+ "@id": "oa:HttpRequestState",
2064
+ "@type": "owl:Class",
2065
+ "rdfs:comment": {
2066
+ "@language": "en",
2067
+ "@value": "A resource which describes how to retrieve an appropriate representation of the Source resource for the Annotation, based on the HTTP Request headers to send to the server.\n\nThere MUST be exactly 1 rdf:value property per HttpRequestState, containing HTTP request headers as a single, complete string, exactly as they would appear in an HTTP request. "
2068
+ },
2069
+ "rdfs:isDefinedBy": {
2070
+ "@id": "oa:"
2071
+ },
2072
+ "rdfs:label": {
2073
+ "@language": "en",
2074
+ "@value": "HttpRequestState"
2075
+ },
2076
+ "rdfs:subClassOf": {
2077
+ "@id": "oa:State"
2078
+ }
2079
+ },
2080
+ {
2081
+ "@id": "oa:DataPositionSelector",
2082
+ "@type": "owl:Class",
2083
+ "rdfs:comment": {
2084
+ "@language": "en",
2085
+ "@value": "A Selector which describes a range of data based on its start and end positions within the byte stream of the representation.\n\nEach DataPositionSelector MUST have exactly 1 oa:start property.\n\nEach TextPositionSelector MUST have exactly 1 oa:end property.\n\nSee oa:TextPositionSelector for selection at normalized character level rather than bytestream level."
2086
+ },
2087
+ "rdfs:isDefinedBy": {
2088
+ "@id": "oa:"
2089
+ },
2090
+ "rdfs:label": {
2091
+ "@language": "en",
2092
+ "@value": "DataPositionSelector"
2093
+ },
2094
+ "rdfs:subClassOf": {
2095
+ "@id": "oa:Selector"
2096
+ }
2097
+ },
2098
+ {
2099
+ "@id": "oa:linking",
2100
+ "@type": [
2101
+ "oa:Motivation",
2102
+ "owl:NamedIndividual"
2103
+ ],
2104
+ "rdfs:comment": {
2105
+ "@language": "en",
2106
+ "@value": "The motivation that represents an untyped link to a resource related to the target."
2107
+ },
2108
+ "skos:inScheme": {
2109
+ "@id": "oa:motivationScheme"
2110
+ },
2111
+ "skos:prefLabel": {
2112
+ "@language": "en",
2113
+ "@value": "linking"
2114
+ }
2115
+ },
2116
+ {
2117
+ "@id": "oa:motivationScheme",
2118
+ "@type": [
2119
+ "skos:ConceptScheme",
2120
+ "owl:NamedIndividual"
2121
+ ],
2122
+ "rdfs:comment": {
2123
+ "@language": "en",
2124
+ "@value": "The concept scheme for Open Annotation Motivations"
2125
+ },
2126
+ "rdfs:label": {
2127
+ "@language": "en",
2128
+ "@value": "motivationScheme"
2129
+ }
2130
+ },
2131
+ {
2132
+ "@id": "oa:replying",
2133
+ "@type": [
2134
+ "oa:Motivation",
2135
+ "owl:NamedIndividual"
2136
+ ],
2137
+ "rdfs:comment": {
2138
+ "@language": "en",
2139
+ "@value": "The motivation that represents a reply to a previous statement, either an Annotation or another resource. For example providing the assistance requested in the above."
2140
+ },
2141
+ "skos:inScheme": {
2142
+ "@id": "oa:motivationScheme"
2143
+ },
2144
+ "skos:prefLabel": {
2145
+ "@language": "en",
2146
+ "@value": "replying"
2147
+ }
2148
+ },
2149
+ {
2150
+ "@id": "oa:start",
2151
+ "@type": "owl:DatatypeProperty",
2152
+ "rdfs:comment": {
2153
+ "@language": "en",
2154
+ "@value": "The starting position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:start is included within the selected segment. \n\nSee oa:DataPositionSelector and oa:TextPositionSelector."
2155
+ },
2156
+ "rdfs:domain": {
2157
+ "@id": "oa:Selector"
2158
+ },
2159
+ "rdfs:isDefinedBy": {
2160
+ "@id": "oa:"
2161
+ },
2162
+ "rdfs:label": {
2163
+ "@language": "en",
2164
+ "@value": "start"
2165
+ },
2166
+ "rdfs:range": {
2167
+ "@id": "xsd:nonNegativeInteger"
2168
+ }
2169
+ },
2170
+ {
2171
+ "@id": "oa:end",
2172
+ "@type": "owl:DatatypeProperty",
2173
+ "rdfs:comment": {
2174
+ "@language": "en",
2175
+ "@value": "The end position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:end is NOT included within the selected segment. \n\nSee oa:DataPositionSelector and oa:oa:TextPositionSelector."
2176
+ },
2177
+ "rdfs:domain": {
2178
+ "@id": "oa:Selector"
2179
+ },
2180
+ "rdfs:isDefinedBy": {
2181
+ "@id": "oa:"
2182
+ },
2183
+ "rdfs:label": {
2184
+ "@language": "en",
2185
+ "@value": "end"
2186
+ },
2187
+ "rdfs:range": {
2188
+ "@id": "xsd:nonNegativeInteger"
2189
+ }
2190
+ },
2191
+ {
2192
+ "@id": "oa:TimeState",
2193
+ "@type": "owl:Class",
2194
+ "rdfs:comment": {
2195
+ "@language": "en",
2196
+ "@value": "A resource which describes how to retrieve a representation of the Source resource that is temporally appropriate for the Annotation.\n\nThere MUST be at least one of oa:cachedSource or oa:when specified. If there is more than 1, each gives an alternative copy of the representation."
2197
+ },
2198
+ "rdfs:isDefinedBy": {
2199
+ "@id": "oa:"
2200
+ },
2201
+ "rdfs:label": {
2202
+ "@language": "en",
2203
+ "@value": "TimeState"
2204
+ },
2205
+ "rdfs:subClassOf": {
2206
+ "@id": "oa:State"
2207
+ }
2208
+ },
2209
+ {
2210
+ "@id": "oa:State",
2211
+ "@type": "owl:Class",
2212
+ "rdfs:comment": {
2213
+ "@language": "en",
2214
+ "@value": "A resource which describes how to retrieve an appropriate representation of the Source resource, indicated with oa:hasState from the Specific Resource.\n\nThis class is not used directly in Annotations, only its subclasses are.\n\nThe Specifier's description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced."
2215
+ },
2216
+ "rdfs:isDefinedBy": {
2217
+ "@id": "oa:"
2218
+ },
2219
+ "rdfs:label": {
2220
+ "@language": "en",
2221
+ "@value": "State"
2222
+ }
2223
+ },
2224
+ {
2225
+ "@id": "oa:CssStyle",
2226
+ "@type": "owl:Class",
2227
+ "rdfs:comment": {
2228
+ "@language": "en",
2229
+ "@value": "A resource which describes styles for resources participating in the Annotation using CSS.\n\nSpecific Resources MAY be assigned a CSS style class using oa:styleClass.\n\nThe CSS resource MAY have its own dereferencable URI that provides the information. For example, \"Style1\" in the diagram below might actually have the URI \"http://www.example.com/styles/annotations.css\". It MAY be embedded within the Annotation using the inline constructions described in Embedding Resources."
2230
+ },
2231
+ "rdfs:isDefinedBy": {
2232
+ "@id": "oa:"
2233
+ },
2234
+ "rdfs:label": {
2235
+ "@language": "en",
2236
+ "@value": "CssStyle"
2237
+ },
2238
+ "rdfs:subClassOf": {
2239
+ "@id": "oa:Style"
2240
+ }
2241
+ },
2242
+ {
2243
+ "@id": "oa:item",
2244
+ "@type": "owl:ObjectProperty",
2245
+ "rdfs:comment": {
2246
+ "@language": "en",
2247
+ "@value": "The relationship between a multiplicity construct node and its constituent resources.\n\nThere MUST be 1 or more item relationships for each multiplicity construct oa:Choice, oa:Composite and oa:List."
2248
+ },
2249
+ "rdfs:isDefinedBy": {
2250
+ "@id": "oa:"
2251
+ },
2252
+ "rdfs:label": {
2253
+ "@language": "en",
2254
+ "@value": "item"
2255
+ },
2256
+ "rdfs:subPropertyOf": {
2257
+ "@id": "rdfs:member"
2258
+ }
2259
+ },
2260
+ {
2261
+ "@id": "oa:hasScope",
2262
+ "@type": "owl:ObjectProperty",
2263
+ "rdfs:comment": {
2264
+ "@language": "en",
2265
+ "@value": "The relationship between a Specific Resource and the resource that provides the scope or context for it in this Annotation.\n\nThere MAY be 0 or more hasScope relationships for each Specific Resource."
2266
+ },
2267
+ "rdfs:domain": {
2268
+ "@id": "oa:SpecificResource"
2269
+ },
2270
+ "rdfs:isDefinedBy": {
2271
+ "@id": "oa:"
2272
+ },
2273
+ "rdfs:label": {
2274
+ "@language": "en",
2275
+ "@value": "hasScope"
2276
+ }
2277
+ },
2278
+ {
2279
+ "@id": "oa:suffix",
2280
+ "@type": "owl:DatatypeProperty",
2281
+ "rdfs:comment": {
2282
+ "@language": "en",
2283
+ "@value": "The snippet of text that occurs immediately after the text which is being selected. \n\nSee oa:TextQuoteSelector."
2284
+ },
2285
+ "rdfs:domain": {
2286
+ "@id": "oa:Selector"
2287
+ },
2288
+ "rdfs:isDefinedBy": {
2289
+ "@id": "oa:"
2290
+ },
2291
+ "rdfs:label": {
2292
+ "@language": "en",
2293
+ "@value": "suffix"
2294
+ }
2295
+ },
2296
+ {
2297
+ "@id": "oa:hasState",
2298
+ "@type": "owl:ObjectProperty",
2299
+ "rdfs:comment": {
2300
+ "@language": "en",
2301
+ "@value": "The relationship between a oa:SpecificResource and a oa:State resource.\n\nThere MAY be 0 or 1 oa:hasState relationship for each SpecificResource.\n\nIf there are multiple State resources that must be associated with the specific resource, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED."
2302
+ },
2303
+ "rdfs:domain": {
2304
+ "@id": "oa:SpecificResource"
2305
+ },
2306
+ "rdfs:isDefinedBy": {
2307
+ "@id": "oa:"
2308
+ },
2309
+ "rdfs:label": {
2310
+ "@language": "en",
2311
+ "@value": "hasState"
2312
+ },
2313
+ "rdfs:range": {
2314
+ "@id": "oa:State"
2315
+ }
2316
+ },
2317
+ {
2318
+ "@id": "oa:",
2319
+ "@type": "owl:Ontology",
2320
+ "dc:contributor": {
2321
+ "@language": "en",
2322
+ "@value": "Stian Soiland-Reyes"
2323
+ },
2324
+ "dc:creator": [
2325
+ {
2326
+ "@language": "en",
2327
+ "@value": "Robert Sanderson"
2328
+ },
2329
+ {
2330
+ "@language": "it",
2331
+ "@value": "Paolo Ciccarese"
2332
+ },
2333
+ {
2334
+ "@language": "vls",
2335
+ "@value": "Herbert Van de Sompel"
2336
+ }
2337
+ ],
2338
+ "dc:description": {
2339
+ "@language": "en",
2340
+ "@value": "The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web. Open Annotations can easily be shared between platforms, with sufficient richness of expression to satisfy complex requirements while remaining simple enough to also allow for the most common use cases, such as attaching a piece of text to a single web resource.\n\nAn Annotation is considered to be a set of connected resources, typically including a body and target, where the body is somehow about the target. The full model supports additional functionality, enabling semantic annotations, embedding content, selecting segments of resources, choosing the appropriate representation of a resource and providing styling hints for consuming clients."
2341
+ },
2342
+ "dc:title": {
2343
+ "@language": "en",
2344
+ "@value": "Open Annotation Data Model"
2345
+ },
2346
+ "dcterms:modified": {
2347
+ "@type": "xsd:dateTime",
2348
+ "@value": "2013-02-22T21:40:51+01:00"
2349
+ },
2350
+ "owl:versionIRI": {
2351
+ "@id": "http://www.openannotation.org/spec/core/20130208/oa.owl"
2352
+ },
2353
+ "owl:versionInfo": "0.9.20130208",
2354
+ "rdfs:comment": {
2355
+ "@language": "en",
2356
+ "@value": "The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web.\n\nThis ontology is a non-normative OWL formalization of the textual OA specification at http://www.openannotation.org/spec/core/20130208/index.html\n\nNote that OWL imports are disabled in the published version in order to reduce external implications, improve OWL 2 Profile conformity and increase interoperability. Some OWL tools might thus misleadingly show this ontology as (re)defining properties like skos:prefLabel."
2357
+ },
2358
+ "rdfs:seeAlso": {
2359
+ "@id": "http://www.openannotation.org/spec/core/20130208/index.html"
2360
+ }
2361
+ },
2362
+ {
2363
+ "@id": "oa:questioning",
2364
+ "@type": [
2365
+ "oa:Motivation",
2366
+ "owl:NamedIndividual"
2367
+ ],
2368
+ "rdfs:comment": {
2369
+ "@language": "en",
2370
+ "@value": "The motivation that represents asking a question about the target resource(s). For example to ask for assistance with a particular section of text, or question its veracity."
2371
+ },
2372
+ "skos:inScheme": {
2373
+ "@id": "oa:motivationScheme"
2374
+ },
2375
+ "skos:prefLabel": {
2376
+ "@language": "en",
2377
+ "@value": "questioning"
2378
+ }
2379
+ },
2380
+ {
2381
+ "@id": "oa:describing",
2382
+ "@type": [
2383
+ "oa:Motivation",
2384
+ "owl:NamedIndividual"
2385
+ ],
2386
+ "rdfs:comment": {
2387
+ "@language": "en",
2388
+ "@value": "The motivation that represents a description of the target resource(s), as opposed to a comment about them. For example describing the above PDF's contents, rather than commenting on their accuracy."
2389
+ },
2390
+ "skos:inScheme": {
2391
+ "@id": "oa:motivationScheme"
2392
+ },
2393
+ "skos:prefLabel": {
2394
+ "@language": "en",
2395
+ "@value": "describing"
2396
+ }
2397
+ },
2398
+ {
2399
+ "@id": "oa:styleClass",
2400
+ "@type": "owl:DatatypeProperty",
2401
+ "rdfs:comment": {
2402
+ "@language": "en",
2403
+ "@value": "The string name of the class used in the CSS description that should be applied to the Specific Resource.\n\nThere MAY be 0 or more styleClass properties on a Specific Resource.\n\nSee oa:CssStyle."
2404
+ },
2405
+ "rdfs:domain": {
2406
+ "@id": "oa:SpecificResource"
2407
+ },
2408
+ "rdfs:isDefinedBy": {
2409
+ "@id": "oa:"
2410
+ },
2411
+ "rdfs:label": {
2412
+ "@language": "en",
2413
+ "@value": "styleClass"
2414
+ }
2415
+ },
2416
+ {
2417
+ "@id": "oa:Tag",
2418
+ "@type": "owl:Class",
2419
+ "rdfs:comment": {
2420
+ "@language": "en",
2421
+ "@value": "A class assigned to the Body when it is a tag, such as a embedded text string with cnt:chars.\n\nTags are typically keywords or labels, and used for organization, description or discovery of the resource being tagged. In the Semantic Web, URIs are used instead of strings to avoid the issue of polysemy where one word has multiple meanings, such usage MUST be indicated using the subclass oa:SemanticTag.\n\nAnnotations that tag resources, either with text or semantic tags, SHOULD also have the oa:tagging motivation to make the reason for the Annotation more clear to applications, and MAY have other motivations as well."
2422
+ },
2423
+ "rdfs:isDefinedBy": {
2424
+ "@id": "oa:"
2425
+ },
2426
+ "rdfs:label": {
2427
+ "@language": "en",
2428
+ "@value": "Tag"
2429
+ }
2430
+ },
2431
+ {
2432
+ "@id": "oa:prefix",
2433
+ "@type": "owl:DatatypeProperty",
2434
+ "rdfs:comment": {
2435
+ "@language": "en",
2436
+ "@value": "A snippet of text that occurs immediately before the text which is being selected.\n\nSee oa:TextQuoteSelector."
2437
+ },
2438
+ "rdfs:domain": {
2439
+ "@id": "oa:Selector"
2440
+ },
2441
+ "rdfs:isDefinedBy": {
2442
+ "@id": "oa:"
2443
+ },
2444
+ "rdfs:label": {
2445
+ "@language": "en",
2446
+ "@value": "prefix"
2447
+ }
2448
+ }
2449
+ ]
2450
+ }
2451
+
2452
+
2453
+ http_version:
2454
+ recorded_at: Mon, 04 May 2015 17:52:35 GMT
2455
+ - request:
2456
+ method: get
2457
+ uri: http://localhost:3000/annotations/1831e9db-a74a-4308-961c-dc4f9494cb35
2458
+ body:
2459
+ encoding: US-ASCII
2460
+ string: ''
2461
+ headers:
2462
+ Accept:
2463
+ - application/ld+json
2464
+ Accept-Encoding:
2465
+ - gzip, deflate
2466
+ User-Agent:
2467
+ - Ruby
2468
+ response:
2469
+ status:
2470
+ code: 404
2471
+ message: 'Not Found '
2472
+ headers:
2473
+ X-Frame-Options:
2474
+ - SAMEORIGIN
2475
+ X-Xss-Protection:
2476
+ - 1; mode=block
2477
+ X-Content-Type-Options:
2478
+ - nosniff
2479
+ Content-Type:
2480
+ - text/html; charset=utf-8
2481
+ Cache-Control:
2482
+ - no-cache
2483
+ X-Request-Id:
2484
+ - 3e66be43-68c1-48ba-8f09-a55d6788ed4a
2485
+ X-Runtime:
2486
+ - '0.011258'
2487
+ Server:
2488
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2489
+ Date:
2490
+ - Mon, 04 May 2015 17:52:35 GMT
2491
+ Content-Length:
2492
+ - '1486'
2493
+ Connection:
2494
+ - Keep-Alive
2495
+ body:
2496
+ encoding: UTF-8
2497
+ string: "<h2>error getting 1831e9db-a74a-4308-961c-dc4f9494cb35 from LDP</h2><html>\n<head>\n<meta
2498
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2499
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2500
+ accessing /fedora/rest/anno/1831e9db-a74a-4308-961c-dc4f9494cb35. Reason:\n<pre>
2501
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2502
+ \ \n<br/> \n<br/>
2503
+ \ \n<br/> \n<br/>
2504
+ \ \n<br/> \n<br/>
2505
+ \ \n<br/> \n<br/>
2506
+ \ \n<br/> \n<br/>
2507
+ \ \n<br/> \n<br/>
2508
+ \ \n<br/> \n<br/>
2509
+ \ \n<br/> \n<br/>
2510
+ \ \n<br/> \n<br/>
2511
+ \ \n<br/> \n\n</body>\n</html>\n"
2512
+ http_version:
2513
+ recorded_at: Mon, 04 May 2015 17:52:35 GMT
2514
+ - request:
2515
+ method: delete
2516
+ uri: http://localhost:3000/annotations/cd83f3e6-791e-49b6-a44a-74a598fcfdd1
2517
+ body:
2518
+ encoding: US-ASCII
2519
+ string: ''
2520
+ headers:
2521
+ Accept:
2522
+ - "*/*; q=0.5, application/xml"
2523
+ Accept-Encoding:
2524
+ - gzip, deflate
2525
+ User-Agent:
2526
+ - Ruby
2527
+ response:
2528
+ status:
2529
+ code: 204
2530
+ message: 'No Content '
2531
+ headers:
2532
+ X-Frame-Options:
2533
+ - SAMEORIGIN
2534
+ X-Xss-Protection:
2535
+ - 1; mode=block
2536
+ X-Content-Type-Options:
2537
+ - nosniff
2538
+ Location:
2539
+ - http://localhost:3000/annotations
2540
+ Cache-Control:
2541
+ - no-cache
2542
+ X-Request-Id:
2543
+ - 30dec732-6794-4e82-99da-61526165b937
2544
+ X-Runtime:
2545
+ - '0.136612'
2546
+ Server:
2547
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2548
+ Date:
2549
+ - Mon, 04 May 2015 17:52:36 GMT
2550
+ Connection:
2551
+ - Keep-Alive
2552
+ Set-Cookie:
2553
+ - _internal_session=QmpEa3BFbVgwK1lHWFRpRGxXOE9wQnYreHd2THJIL3VyWjNyZ1Nra0IyRkxEdkZXTlJjb2VjYWZwaGdtV3dIZkx0RU1KT29TaGJyMlo2enp5d3BYSzF2Z2YzN1Jwb0x1YjFuMDYzTlpiMFcxcFhtblFEZTRpSHBHbG9DRFJ4amx3TUtVbllwY1prVC9yOXRzQzRvVHlocThtSXBXcWtBcElualBFenhGcmJjbXNWWXgrcEhVVW92UWRnSjBKUDlELS1haE1nYWtHQnl3TS9mMnBKbzR3Tk53PT0%3D--91595508a0a1697b49d911d3562577e60f64db3a;
2554
+ path=/; HttpOnly
2555
+ - request_method=DELETE; path=/
2556
+ body:
2557
+ encoding: UTF-8
2558
+ string: ''
2559
+ http_version:
2560
+ recorded_at: Mon, 04 May 2015 17:52:36 GMT
2561
+ - request:
2562
+ method: get
2563
+ uri: http://localhost:3000/annotations/50175e7e-b313-4dee-bc96-6e1074197394
2564
+ body:
2565
+ encoding: US-ASCII
2566
+ string: ''
2567
+ headers:
2568
+ Accept:
2569
+ - application/ld+json
2570
+ Accept-Encoding:
2571
+ - gzip, deflate
2572
+ User-Agent:
2573
+ - Ruby
2574
+ response:
2575
+ status:
2576
+ code: 404
2577
+ message: 'Not Found '
2578
+ headers:
2579
+ X-Frame-Options:
2580
+ - SAMEORIGIN
2581
+ X-Xss-Protection:
2582
+ - 1; mode=block
2583
+ X-Content-Type-Options:
2584
+ - nosniff
2585
+ Content-Type:
2586
+ - text/html; charset=utf-8
2587
+ Cache-Control:
2588
+ - no-cache
2589
+ X-Request-Id:
2590
+ - c0d2879b-51aa-4513-9e4c-e7aeb65c7e4d
2591
+ X-Runtime:
2592
+ - '0.013820'
2593
+ Server:
2594
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2595
+ Date:
2596
+ - Mon, 04 May 2015 17:54:46 GMT
2597
+ Content-Length:
2598
+ - '1486'
2599
+ Connection:
2600
+ - Keep-Alive
2601
+ body:
2602
+ encoding: UTF-8
2603
+ string: "<h2>error getting 50175e7e-b313-4dee-bc96-6e1074197394 from LDP</h2><html>\n<head>\n<meta
2604
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2605
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2606
+ accessing /fedora/rest/anno/50175e7e-b313-4dee-bc96-6e1074197394. Reason:\n<pre>
2607
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2608
+ \ \n<br/> \n<br/>
2609
+ \ \n<br/> \n<br/>
2610
+ \ \n<br/> \n<br/>
2611
+ \ \n<br/> \n<br/>
2612
+ \ \n<br/> \n<br/>
2613
+ \ \n<br/> \n<br/>
2614
+ \ \n<br/> \n<br/>
2615
+ \ \n<br/> \n<br/>
2616
+ \ \n<br/> \n<br/>
2617
+ \ \n<br/> \n\n</body>\n</html>\n"
2618
+ http_version:
2619
+ recorded_at: Mon, 04 May 2015 17:54:46 GMT
2620
+ - request:
2621
+ method: get
2622
+ uri: http://localhost:3000/annotations/752ba17f-c124-4971-bdfd-72a0d47c5daf
2623
+ body:
2624
+ encoding: US-ASCII
2625
+ string: ''
2626
+ headers:
2627
+ Accept:
2628
+ - application/ld+json
2629
+ Accept-Encoding:
2630
+ - gzip, deflate
2631
+ User-Agent:
2632
+ - Ruby
2633
+ response:
2634
+ status:
2635
+ code: 404
2636
+ message: 'Not Found '
2637
+ headers:
2638
+ X-Frame-Options:
2639
+ - SAMEORIGIN
2640
+ X-Xss-Protection:
2641
+ - 1; mode=block
2642
+ X-Content-Type-Options:
2643
+ - nosniff
2644
+ Content-Type:
2645
+ - text/html; charset=utf-8
2646
+ Cache-Control:
2647
+ - no-cache
2648
+ X-Request-Id:
2649
+ - f23ad642-beba-4e52-8d2a-26ff062fa584
2650
+ X-Runtime:
2651
+ - '0.015942'
2652
+ Server:
2653
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2654
+ Date:
2655
+ - Mon, 04 May 2015 17:55:35 GMT
2656
+ Content-Length:
2657
+ - '1486'
2658
+ Connection:
2659
+ - Keep-Alive
2660
+ body:
2661
+ encoding: UTF-8
2662
+ string: "<h2>error getting 752ba17f-c124-4971-bdfd-72a0d47c5daf from LDP</h2><html>\n<head>\n<meta
2663
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2664
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2665
+ accessing /fedora/rest/anno/752ba17f-c124-4971-bdfd-72a0d47c5daf. Reason:\n<pre>
2666
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2667
+ \ \n<br/> \n<br/>
2668
+ \ \n<br/> \n<br/>
2669
+ \ \n<br/> \n<br/>
2670
+ \ \n<br/> \n<br/>
2671
+ \ \n<br/> \n<br/>
2672
+ \ \n<br/> \n<br/>
2673
+ \ \n<br/> \n<br/>
2674
+ \ \n<br/> \n<br/>
2675
+ \ \n<br/> \n<br/>
2676
+ \ \n<br/> \n\n</body>\n</html>\n"
2677
+ http_version:
2678
+ recorded_at: Mon, 04 May 2015 17:55:35 GMT
2679
+ - request:
2680
+ method: get
2681
+ uri: http://localhost:3000/annotations/d318c1a0-7f6a-45ad-97c0-ddf717340513
2682
+ body:
2683
+ encoding: US-ASCII
2684
+ string: ''
2685
+ headers:
2686
+ Accept:
2687
+ - application/ld+json
2688
+ Accept-Encoding:
2689
+ - gzip, deflate
2690
+ User-Agent:
2691
+ - Ruby
2692
+ response:
2693
+ status:
2694
+ code: 404
2695
+ message: 'Not Found '
2696
+ headers:
2697
+ X-Frame-Options:
2698
+ - SAMEORIGIN
2699
+ X-Xss-Protection:
2700
+ - 1; mode=block
2701
+ X-Content-Type-Options:
2702
+ - nosniff
2703
+ Content-Type:
2704
+ - text/html; charset=utf-8
2705
+ Cache-Control:
2706
+ - no-cache
2707
+ X-Request-Id:
2708
+ - 181dfcd7-b0ae-4823-8fd3-1d4062cb45cb
2709
+ X-Runtime:
2710
+ - '0.012217'
2711
+ Server:
2712
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2713
+ Date:
2714
+ - Mon, 04 May 2015 17:57:23 GMT
2715
+ Content-Length:
2716
+ - '1486'
2717
+ Connection:
2718
+ - Keep-Alive
2719
+ body:
2720
+ encoding: UTF-8
2721
+ string: "<h2>error getting d318c1a0-7f6a-45ad-97c0-ddf717340513 from LDP</h2><html>\n<head>\n<meta
2722
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2723
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2724
+ accessing /fedora/rest/anno/d318c1a0-7f6a-45ad-97c0-ddf717340513. Reason:\n<pre>
2725
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2726
+ \ \n<br/> \n<br/>
2727
+ \ \n<br/> \n<br/>
2728
+ \ \n<br/> \n<br/>
2729
+ \ \n<br/> \n<br/>
2730
+ \ \n<br/> \n<br/>
2731
+ \ \n<br/> \n<br/>
2732
+ \ \n<br/> \n<br/>
2733
+ \ \n<br/> \n<br/>
2734
+ \ \n<br/> \n<br/>
2735
+ \ \n<br/> \n\n</body>\n</html>\n"
2736
+ http_version:
2737
+ recorded_at: Mon, 04 May 2015 17:57:23 GMT
2738
+ - request:
2739
+ method: get
2740
+ uri: http://localhost:3000/annotations/da5f9f7c-6124-4287-af30-259b70897cd5
2741
+ body:
2742
+ encoding: US-ASCII
2743
+ string: ''
2744
+ headers:
2745
+ Accept:
2746
+ - application/ld+json
2747
+ Accept-Encoding:
2748
+ - gzip, deflate
2749
+ User-Agent:
2750
+ - Ruby
2751
+ response:
2752
+ status:
2753
+ code: 404
2754
+ message: 'Not Found '
2755
+ headers:
2756
+ X-Frame-Options:
2757
+ - SAMEORIGIN
2758
+ X-Xss-Protection:
2759
+ - 1; mode=block
2760
+ X-Content-Type-Options:
2761
+ - nosniff
2762
+ Content-Type:
2763
+ - text/html; charset=utf-8
2764
+ Cache-Control:
2765
+ - no-cache
2766
+ X-Request-Id:
2767
+ - 85c293ad-444c-4000-9d4e-0f55360e0033
2768
+ X-Runtime:
2769
+ - '0.014409'
2770
+ Server:
2771
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2772
+ Date:
2773
+ - Mon, 04 May 2015 18:29:27 GMT
2774
+ Content-Length:
2775
+ - '1486'
2776
+ Connection:
2777
+ - Keep-Alive
2778
+ body:
2779
+ encoding: UTF-8
2780
+ string: "<h2>error getting da5f9f7c-6124-4287-af30-259b70897cd5 from LDP</h2><html>\n<head>\n<meta
2781
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2782
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2783
+ accessing /fedora/rest/anno/da5f9f7c-6124-4287-af30-259b70897cd5. Reason:\n<pre>
2784
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2785
+ \ \n<br/> \n<br/>
2786
+ \ \n<br/> \n<br/>
2787
+ \ \n<br/> \n<br/>
2788
+ \ \n<br/> \n<br/>
2789
+ \ \n<br/> \n<br/>
2790
+ \ \n<br/> \n<br/>
2791
+ \ \n<br/> \n<br/>
2792
+ \ \n<br/> \n<br/>
2793
+ \ \n<br/> \n<br/>
2794
+ \ \n<br/> \n\n</body>\n</html>\n"
2795
+ http_version:
2796
+ recorded_at: Mon, 04 May 2015 18:29:27 GMT
2797
+ - request:
2798
+ method: get
2799
+ uri: http://localhost:3000/annotations/d7b6d31b-978a-496b-8382-bb8f1f8bdbce
2800
+ body:
2801
+ encoding: US-ASCII
2802
+ string: ''
2803
+ headers:
2804
+ Accept:
2805
+ - application/ld+json
2806
+ Accept-Encoding:
2807
+ - gzip, deflate
2808
+ User-Agent:
2809
+ - Ruby
2810
+ response:
2811
+ status:
2812
+ code: 404
2813
+ message: 'Not Found '
2814
+ headers:
2815
+ X-Frame-Options:
2816
+ - SAMEORIGIN
2817
+ X-Xss-Protection:
2818
+ - 1; mode=block
2819
+ X-Content-Type-Options:
2820
+ - nosniff
2821
+ Content-Type:
2822
+ - text/html; charset=utf-8
2823
+ Cache-Control:
2824
+ - no-cache
2825
+ X-Request-Id:
2826
+ - 49c4acfb-a889-4a4d-982e-f0a69762d0c1
2827
+ X-Runtime:
2828
+ - '0.018746'
2829
+ Server:
2830
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2831
+ Date:
2832
+ - Mon, 04 May 2015 18:32:28 GMT
2833
+ Content-Length:
2834
+ - '1486'
2835
+ Connection:
2836
+ - Keep-Alive
2837
+ body:
2838
+ encoding: UTF-8
2839
+ string: "<h2>error getting d7b6d31b-978a-496b-8382-bb8f1f8bdbce from LDP</h2><html>\n<head>\n<meta
2840
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2841
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2842
+ accessing /fedora/rest/anno/d7b6d31b-978a-496b-8382-bb8f1f8bdbce. Reason:\n<pre>
2843
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2844
+ \ \n<br/> \n<br/>
2845
+ \ \n<br/> \n<br/>
2846
+ \ \n<br/> \n<br/>
2847
+ \ \n<br/> \n<br/>
2848
+ \ \n<br/> \n<br/>
2849
+ \ \n<br/> \n<br/>
2850
+ \ \n<br/> \n<br/>
2851
+ \ \n<br/> \n<br/>
2852
+ \ \n<br/> \n<br/>
2853
+ \ \n<br/> \n\n</body>\n</html>\n"
2854
+ http_version:
2855
+ recorded_at: Mon, 04 May 2015 18:32:28 GMT
2856
+ - request:
2857
+ method: get
2858
+ uri: http://localhost:3000/annotations/80507d86-e962-4a63-89ff-3af0f71a4bc1
2859
+ body:
2860
+ encoding: US-ASCII
2861
+ string: ''
2862
+ headers:
2863
+ Accept:
2864
+ - application/ld+json
2865
+ Accept-Encoding:
2866
+ - gzip, deflate
2867
+ User-Agent:
2868
+ - Ruby
2869
+ response:
2870
+ status:
2871
+ code: 404
2872
+ message: 'Not Found '
2873
+ headers:
2874
+ X-Frame-Options:
2875
+ - SAMEORIGIN
2876
+ X-Xss-Protection:
2877
+ - 1; mode=block
2878
+ X-Content-Type-Options:
2879
+ - nosniff
2880
+ Content-Type:
2881
+ - text/html; charset=utf-8
2882
+ Cache-Control:
2883
+ - no-cache
2884
+ X-Request-Id:
2885
+ - 5ef8286a-8ca6-4ed6-9fb2-cc826a0c8817
2886
+ X-Runtime:
2887
+ - '0.011651'
2888
+ Server:
2889
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2890
+ Date:
2891
+ - Mon, 04 May 2015 18:33:20 GMT
2892
+ Content-Length:
2893
+ - '1486'
2894
+ Connection:
2895
+ - Keep-Alive
2896
+ body:
2897
+ encoding: UTF-8
2898
+ string: "<h2>error getting 80507d86-e962-4a63-89ff-3af0f71a4bc1 from LDP</h2><html>\n<head>\n<meta
2899
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2900
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2901
+ accessing /fedora/rest/anno/80507d86-e962-4a63-89ff-3af0f71a4bc1. Reason:\n<pre>
2902
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2903
+ \ \n<br/> \n<br/>
2904
+ \ \n<br/> \n<br/>
2905
+ \ \n<br/> \n<br/>
2906
+ \ \n<br/> \n<br/>
2907
+ \ \n<br/> \n<br/>
2908
+ \ \n<br/> \n<br/>
2909
+ \ \n<br/> \n<br/>
2910
+ \ \n<br/> \n<br/>
2911
+ \ \n<br/> \n<br/>
2912
+ \ \n<br/> \n\n</body>\n</html>\n"
2913
+ http_version:
2914
+ recorded_at: Mon, 04 May 2015 18:33:20 GMT
2915
+ - request:
2916
+ method: get
2917
+ uri: http://localhost:3000/annotations/b32f1003-fdb7-4aac-82e9-0fba7cd92b97
2918
+ body:
2919
+ encoding: US-ASCII
2920
+ string: ''
2921
+ headers:
2922
+ Accept:
2923
+ - application/ld+json
2924
+ Accept-Encoding:
2925
+ - gzip, deflate
2926
+ User-Agent:
2927
+ - Ruby
2928
+ response:
2929
+ status:
2930
+ code: 404
2931
+ message: 'Not Found '
2932
+ headers:
2933
+ X-Frame-Options:
2934
+ - SAMEORIGIN
2935
+ X-Xss-Protection:
2936
+ - 1; mode=block
2937
+ X-Content-Type-Options:
2938
+ - nosniff
2939
+ Content-Type:
2940
+ - text/html; charset=utf-8
2941
+ Cache-Control:
2942
+ - no-cache
2943
+ X-Request-Id:
2944
+ - f8557335-0e8a-43ee-a4d3-6ac27065a39d
2945
+ X-Runtime:
2946
+ - '0.014299'
2947
+ Server:
2948
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
2949
+ Date:
2950
+ - Mon, 04 May 2015 18:34:17 GMT
2951
+ Content-Length:
2952
+ - '1486'
2953
+ Connection:
2954
+ - Keep-Alive
2955
+ body:
2956
+ encoding: UTF-8
2957
+ string: "<h2>error getting b32f1003-fdb7-4aac-82e9-0fba7cd92b97 from LDP</h2><html>\n<head>\n<meta
2958
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
2959
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
2960
+ accessing /fedora/rest/anno/b32f1003-fdb7-4aac-82e9-0fba7cd92b97. Reason:\n<pre>
2961
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
2962
+ \ \n<br/> \n<br/>
2963
+ \ \n<br/> \n<br/>
2964
+ \ \n<br/> \n<br/>
2965
+ \ \n<br/> \n<br/>
2966
+ \ \n<br/> \n<br/>
2967
+ \ \n<br/> \n<br/>
2968
+ \ \n<br/> \n<br/>
2969
+ \ \n<br/> \n<br/>
2970
+ \ \n<br/> \n<br/>
2971
+ \ \n<br/> \n\n</body>\n</html>\n"
2972
+ http_version:
2973
+ recorded_at: Mon, 04 May 2015 18:34:17 GMT
2974
+ - request:
2975
+ method: get
2976
+ uri: http://localhost:3000/annotations/f427e894-1060-4a5b-99fe-1ed4fb7252b8
2977
+ body:
2978
+ encoding: US-ASCII
2979
+ string: ''
2980
+ headers:
2981
+ Accept:
2982
+ - application/ld+json
2983
+ Accept-Encoding:
2984
+ - gzip, deflate
2985
+ User-Agent:
2986
+ - Ruby
2987
+ response:
2988
+ status:
2989
+ code: 404
2990
+ message: 'Not Found '
2991
+ headers:
2992
+ X-Frame-Options:
2993
+ - SAMEORIGIN
2994
+ X-Xss-Protection:
2995
+ - 1; mode=block
2996
+ X-Content-Type-Options:
2997
+ - nosniff
2998
+ Content-Type:
2999
+ - text/html; charset=utf-8
3000
+ Cache-Control:
3001
+ - no-cache
3002
+ X-Request-Id:
3003
+ - bffcedce-33fb-484e-90b6-e4e897852688
3004
+ X-Runtime:
3005
+ - '0.016861'
3006
+ Server:
3007
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3008
+ Date:
3009
+ - Mon, 04 May 2015 18:36:32 GMT
3010
+ Content-Length:
3011
+ - '1486'
3012
+ Connection:
3013
+ - Keep-Alive
3014
+ body:
3015
+ encoding: UTF-8
3016
+ string: "<h2>error getting f427e894-1060-4a5b-99fe-1ed4fb7252b8 from LDP</h2><html>\n<head>\n<meta
3017
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3018
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3019
+ accessing /fedora/rest/anno/f427e894-1060-4a5b-99fe-1ed4fb7252b8. Reason:\n<pre>
3020
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3021
+ \ \n<br/> \n<br/>
3022
+ \ \n<br/> \n<br/>
3023
+ \ \n<br/> \n<br/>
3024
+ \ \n<br/> \n<br/>
3025
+ \ \n<br/> \n<br/>
3026
+ \ \n<br/> \n<br/>
3027
+ \ \n<br/> \n<br/>
3028
+ \ \n<br/> \n<br/>
3029
+ \ \n<br/> \n<br/>
3030
+ \ \n<br/> \n\n</body>\n</html>\n"
3031
+ http_version:
3032
+ recorded_at: Mon, 04 May 2015 18:36:32 GMT
3033
+ - request:
3034
+ method: get
3035
+ uri: http://localhost:3000/annotations/63940765-d7b7-46a2-9be5-baa1aa644f49
3036
+ body:
3037
+ encoding: US-ASCII
3038
+ string: ''
3039
+ headers:
3040
+ Accept:
3041
+ - application/ld+json
3042
+ Accept-Encoding:
3043
+ - gzip, deflate
3044
+ User-Agent:
3045
+ - Ruby
3046
+ response:
3047
+ status:
3048
+ code: 404
3049
+ message: 'Not Found '
3050
+ headers:
3051
+ X-Frame-Options:
3052
+ - SAMEORIGIN
3053
+ X-Xss-Protection:
3054
+ - 1; mode=block
3055
+ X-Content-Type-Options:
3056
+ - nosniff
3057
+ Content-Type:
3058
+ - text/html; charset=utf-8
3059
+ Cache-Control:
3060
+ - no-cache
3061
+ X-Request-Id:
3062
+ - c7838335-5f19-432d-98d3-1b38e8ad0fb0
3063
+ X-Runtime:
3064
+ - '0.018684'
3065
+ Server:
3066
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3067
+ Date:
3068
+ - Mon, 04 May 2015 18:39:54 GMT
3069
+ Content-Length:
3070
+ - '1486'
3071
+ Connection:
3072
+ - Keep-Alive
3073
+ body:
3074
+ encoding: UTF-8
3075
+ string: "<h2>error getting 63940765-d7b7-46a2-9be5-baa1aa644f49 from LDP</h2><html>\n<head>\n<meta
3076
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3077
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3078
+ accessing /fedora/rest/anno/63940765-d7b7-46a2-9be5-baa1aa644f49. Reason:\n<pre>
3079
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3080
+ \ \n<br/> \n<br/>
3081
+ \ \n<br/> \n<br/>
3082
+ \ \n<br/> \n<br/>
3083
+ \ \n<br/> \n<br/>
3084
+ \ \n<br/> \n<br/>
3085
+ \ \n<br/> \n<br/>
3086
+ \ \n<br/> \n<br/>
3087
+ \ \n<br/> \n<br/>
3088
+ \ \n<br/> \n<br/>
3089
+ \ \n<br/> \n\n</body>\n</html>\n"
3090
+ http_version:
3091
+ recorded_at: Mon, 04 May 2015 18:39:54 GMT
3092
+ - request:
3093
+ method: get
3094
+ uri: http://localhost:3000/annotations/a9b65f3f-3487-40b1-a5f7-0f3f7f614a88
3095
+ body:
3096
+ encoding: US-ASCII
3097
+ string: ''
3098
+ headers:
3099
+ Accept:
3100
+ - application/ld+json
3101
+ Accept-Encoding:
3102
+ - gzip, deflate
3103
+ User-Agent:
3104
+ - Ruby
3105
+ response:
3106
+ status:
3107
+ code: 404
3108
+ message: 'Not Found '
3109
+ headers:
3110
+ X-Frame-Options:
3111
+ - SAMEORIGIN
3112
+ X-Xss-Protection:
3113
+ - 1; mode=block
3114
+ X-Content-Type-Options:
3115
+ - nosniff
3116
+ Content-Type:
3117
+ - text/html; charset=utf-8
3118
+ Cache-Control:
3119
+ - no-cache
3120
+ X-Request-Id:
3121
+ - 55ff5f32-b7ee-4425-b995-90d30f7dcd39
3122
+ X-Runtime:
3123
+ - '0.020899'
3124
+ Server:
3125
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3126
+ Date:
3127
+ - Mon, 04 May 2015 18:45:14 GMT
3128
+ Content-Length:
3129
+ - '1486'
3130
+ Connection:
3131
+ - Keep-Alive
3132
+ body:
3133
+ encoding: UTF-8
3134
+ string: "<h2>error getting a9b65f3f-3487-40b1-a5f7-0f3f7f614a88 from LDP</h2><html>\n<head>\n<meta
3135
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3136
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3137
+ accessing /fedora/rest/anno/a9b65f3f-3487-40b1-a5f7-0f3f7f614a88. Reason:\n<pre>
3138
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3139
+ \ \n<br/> \n<br/>
3140
+ \ \n<br/> \n<br/>
3141
+ \ \n<br/> \n<br/>
3142
+ \ \n<br/> \n<br/>
3143
+ \ \n<br/> \n<br/>
3144
+ \ \n<br/> \n<br/>
3145
+ \ \n<br/> \n<br/>
3146
+ \ \n<br/> \n<br/>
3147
+ \ \n<br/> \n<br/>
3148
+ \ \n<br/> \n\n</body>\n</html>\n"
3149
+ http_version:
3150
+ recorded_at: Mon, 04 May 2015 18:45:14 GMT
3151
+ - request:
3152
+ method: get
3153
+ uri: http://localhost:3000/annotations/177891f7-6f8c-4e2a-8ece-033c526d9f50
3154
+ body:
3155
+ encoding: US-ASCII
3156
+ string: ''
3157
+ headers:
3158
+ Accept:
3159
+ - application/ld+json
3160
+ Accept-Encoding:
3161
+ - gzip, deflate
3162
+ User-Agent:
3163
+ - Ruby
3164
+ response:
3165
+ status:
3166
+ code: 404
3167
+ message: 'Not Found '
3168
+ headers:
3169
+ X-Frame-Options:
3170
+ - SAMEORIGIN
3171
+ X-Xss-Protection:
3172
+ - 1; mode=block
3173
+ X-Content-Type-Options:
3174
+ - nosniff
3175
+ Content-Type:
3176
+ - text/html; charset=utf-8
3177
+ Cache-Control:
3178
+ - no-cache
3179
+ X-Request-Id:
3180
+ - d3c6ca6e-277c-486f-a905-631bdd6e2905
3181
+ X-Runtime:
3182
+ - '0.012023'
3183
+ Server:
3184
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3185
+ Date:
3186
+ - Mon, 04 May 2015 18:48:18 GMT
3187
+ Content-Length:
3188
+ - '1486'
3189
+ Connection:
3190
+ - Keep-Alive
3191
+ body:
3192
+ encoding: UTF-8
3193
+ string: "<h2>error getting 177891f7-6f8c-4e2a-8ece-033c526d9f50 from LDP</h2><html>\n<head>\n<meta
3194
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3195
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3196
+ accessing /fedora/rest/anno/177891f7-6f8c-4e2a-8ece-033c526d9f50. Reason:\n<pre>
3197
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3198
+ \ \n<br/> \n<br/>
3199
+ \ \n<br/> \n<br/>
3200
+ \ \n<br/> \n<br/>
3201
+ \ \n<br/> \n<br/>
3202
+ \ \n<br/> \n<br/>
3203
+ \ \n<br/> \n<br/>
3204
+ \ \n<br/> \n<br/>
3205
+ \ \n<br/> \n<br/>
3206
+ \ \n<br/> \n<br/>
3207
+ \ \n<br/> \n\n</body>\n</html>\n"
3208
+ http_version:
3209
+ recorded_at: Mon, 04 May 2015 18:48:18 GMT
3210
+ - request:
3211
+ method: get
3212
+ uri: http://localhost:3000/annotations/65827f11-25fa-4b68-8507-91b464dcc61f
3213
+ body:
3214
+ encoding: US-ASCII
3215
+ string: ''
3216
+ headers:
3217
+ Accept:
3218
+ - application/ld+json
3219
+ Accept-Encoding:
3220
+ - gzip, deflate
3221
+ User-Agent:
3222
+ - Ruby
3223
+ response:
3224
+ status:
3225
+ code: 404
3226
+ message: 'Not Found '
3227
+ headers:
3228
+ X-Frame-Options:
3229
+ - SAMEORIGIN
3230
+ X-Xss-Protection:
3231
+ - 1; mode=block
3232
+ X-Content-Type-Options:
3233
+ - nosniff
3234
+ Content-Type:
3235
+ - text/html; charset=utf-8
3236
+ Cache-Control:
3237
+ - no-cache
3238
+ X-Request-Id:
3239
+ - 7f0e2faf-d0ff-431b-841f-db8b535e74ad
3240
+ X-Runtime:
3241
+ - '0.012051'
3242
+ Server:
3243
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3244
+ Date:
3245
+ - Mon, 04 May 2015 18:52:41 GMT
3246
+ Content-Length:
3247
+ - '1486'
3248
+ Connection:
3249
+ - Keep-Alive
3250
+ body:
3251
+ encoding: UTF-8
3252
+ string: "<h2>error getting 65827f11-25fa-4b68-8507-91b464dcc61f from LDP</h2><html>\n<head>\n<meta
3253
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3254
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3255
+ accessing /fedora/rest/anno/65827f11-25fa-4b68-8507-91b464dcc61f. Reason:\n<pre>
3256
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3257
+ \ \n<br/> \n<br/>
3258
+ \ \n<br/> \n<br/>
3259
+ \ \n<br/> \n<br/>
3260
+ \ \n<br/> \n<br/>
3261
+ \ \n<br/> \n<br/>
3262
+ \ \n<br/> \n<br/>
3263
+ \ \n<br/> \n<br/>
3264
+ \ \n<br/> \n<br/>
3265
+ \ \n<br/> \n<br/>
3266
+ \ \n<br/> \n\n</body>\n</html>\n"
3267
+ http_version:
3268
+ recorded_at: Mon, 04 May 2015 18:52:41 GMT
3269
+ - request:
3270
+ method: get
3271
+ uri: http://localhost:3000/annotations/ce25faea-73c8-4415-a5bf-e974d385a394
3272
+ body:
3273
+ encoding: US-ASCII
3274
+ string: ''
3275
+ headers:
3276
+ Accept:
3277
+ - application/ld+json
3278
+ Accept-Encoding:
3279
+ - gzip, deflate
3280
+ User-Agent:
3281
+ - Ruby
3282
+ response:
3283
+ status:
3284
+ code: 404
3285
+ message: 'Not Found '
3286
+ headers:
3287
+ X-Frame-Options:
3288
+ - SAMEORIGIN
3289
+ X-Xss-Protection:
3290
+ - 1; mode=block
3291
+ X-Content-Type-Options:
3292
+ - nosniff
3293
+ Content-Type:
3294
+ - text/html; charset=utf-8
3295
+ Cache-Control:
3296
+ - no-cache
3297
+ X-Request-Id:
3298
+ - 26b412c3-92ac-4487-ab4c-9443315a3526
3299
+ X-Runtime:
3300
+ - '0.011840'
3301
+ Server:
3302
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3303
+ Date:
3304
+ - Mon, 04 May 2015 18:57:04 GMT
3305
+ Content-Length:
3306
+ - '1486'
3307
+ Connection:
3308
+ - Keep-Alive
3309
+ body:
3310
+ encoding: UTF-8
3311
+ string: "<h2>error getting ce25faea-73c8-4415-a5bf-e974d385a394 from LDP</h2><html>\n<head>\n<meta
3312
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3313
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3314
+ accessing /fedora/rest/anno/ce25faea-73c8-4415-a5bf-e974d385a394. Reason:\n<pre>
3315
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3316
+ \ \n<br/> \n<br/>
3317
+ \ \n<br/> \n<br/>
3318
+ \ \n<br/> \n<br/>
3319
+ \ \n<br/> \n<br/>
3320
+ \ \n<br/> \n<br/>
3321
+ \ \n<br/> \n<br/>
3322
+ \ \n<br/> \n<br/>
3323
+ \ \n<br/> \n<br/>
3324
+ \ \n<br/> \n<br/>
3325
+ \ \n<br/> \n\n</body>\n</html>\n"
3326
+ http_version:
3327
+ recorded_at: Mon, 04 May 2015 18:57:04 GMT
3328
+ - request:
3329
+ method: get
3330
+ uri: http://localhost:3000/annotations/2d9213f0-064b-42fe-9b43-f666e929533a
3331
+ body:
3332
+ encoding: US-ASCII
3333
+ string: ''
3334
+ headers:
3335
+ Accept:
3336
+ - application/ld+json
3337
+ Accept-Encoding:
3338
+ - gzip, deflate
3339
+ User-Agent:
3340
+ - Ruby
3341
+ response:
3342
+ status:
3343
+ code: 404
3344
+ message: 'Not Found '
3345
+ headers:
3346
+ X-Frame-Options:
3347
+ - SAMEORIGIN
3348
+ X-Xss-Protection:
3349
+ - 1; mode=block
3350
+ X-Content-Type-Options:
3351
+ - nosniff
3352
+ Content-Type:
3353
+ - text/html; charset=utf-8
3354
+ Cache-Control:
3355
+ - no-cache
3356
+ X-Request-Id:
3357
+ - 761d9d84-b40b-4e8d-b82d-f74b5957b71e
3358
+ X-Runtime:
3359
+ - '0.012225'
3360
+ Server:
3361
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3362
+ Date:
3363
+ - Mon, 04 May 2015 18:59:13 GMT
3364
+ Content-Length:
3365
+ - '1486'
3366
+ Connection:
3367
+ - Keep-Alive
3368
+ body:
3369
+ encoding: UTF-8
3370
+ string: "<h2>error getting 2d9213f0-064b-42fe-9b43-f666e929533a from LDP</h2><html>\n<head>\n<meta
3371
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3372
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3373
+ accessing /fedora/rest/anno/2d9213f0-064b-42fe-9b43-f666e929533a. Reason:\n<pre>
3374
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3375
+ \ \n<br/> \n<br/>
3376
+ \ \n<br/> \n<br/>
3377
+ \ \n<br/> \n<br/>
3378
+ \ \n<br/> \n<br/>
3379
+ \ \n<br/> \n<br/>
3380
+ \ \n<br/> \n<br/>
3381
+ \ \n<br/> \n<br/>
3382
+ \ \n<br/> \n<br/>
3383
+ \ \n<br/> \n<br/>
3384
+ \ \n<br/> \n\n</body>\n</html>\n"
3385
+ http_version:
3386
+ recorded_at: Mon, 04 May 2015 18:59:13 GMT
3387
+ - request:
3388
+ method: get
3389
+ uri: http://localhost:3000/annotations/da39bf37-6d0d-41f8-86d1-bc67c6b787f1
3390
+ body:
3391
+ encoding: US-ASCII
3392
+ string: ''
3393
+ headers:
3394
+ Accept:
3395
+ - application/ld+json
3396
+ Accept-Encoding:
3397
+ - gzip, deflate
3398
+ User-Agent:
3399
+ - Ruby
3400
+ response:
3401
+ status:
3402
+ code: 404
3403
+ message: 'Not Found '
3404
+ headers:
3405
+ X-Frame-Options:
3406
+ - SAMEORIGIN
3407
+ X-Xss-Protection:
3408
+ - 1; mode=block
3409
+ X-Content-Type-Options:
3410
+ - nosniff
3411
+ Content-Type:
3412
+ - text/html; charset=utf-8
3413
+ Cache-Control:
3414
+ - no-cache
3415
+ X-Request-Id:
3416
+ - 8830e57a-e76e-4d28-b08d-a3ac48a3c819
3417
+ X-Runtime:
3418
+ - '0.025671'
3419
+ Server:
3420
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3421
+ Date:
3422
+ - Mon, 04 May 2015 19:00:14 GMT
3423
+ Content-Length:
3424
+ - '1486'
3425
+ Connection:
3426
+ - Keep-Alive
3427
+ body:
3428
+ encoding: UTF-8
3429
+ string: "<h2>error getting da39bf37-6d0d-41f8-86d1-bc67c6b787f1 from LDP</h2><html>\n<head>\n<meta
3430
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3431
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3432
+ accessing /fedora/rest/anno/da39bf37-6d0d-41f8-86d1-bc67c6b787f1. Reason:\n<pre>
3433
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3434
+ \ \n<br/> \n<br/>
3435
+ \ \n<br/> \n<br/>
3436
+ \ \n<br/> \n<br/>
3437
+ \ \n<br/> \n<br/>
3438
+ \ \n<br/> \n<br/>
3439
+ \ \n<br/> \n<br/>
3440
+ \ \n<br/> \n<br/>
3441
+ \ \n<br/> \n<br/>
3442
+ \ \n<br/> \n<br/>
3443
+ \ \n<br/> \n\n</body>\n</html>\n"
3444
+ http_version:
3445
+ recorded_at: Mon, 04 May 2015 19:00:14 GMT
3446
+ - request:
3447
+ method: get
3448
+ uri: http://localhost:3000/annotations/97913309-4688-4341-9398-02ee8f4bb32e
3449
+ body:
3450
+ encoding: US-ASCII
3451
+ string: ''
3452
+ headers:
3453
+ Accept:
3454
+ - application/ld+json
3455
+ Accept-Encoding:
3456
+ - gzip, deflate
3457
+ User-Agent:
3458
+ - Ruby
3459
+ response:
3460
+ status:
3461
+ code: 404
3462
+ message: 'Not Found '
3463
+ headers:
3464
+ X-Frame-Options:
3465
+ - SAMEORIGIN
3466
+ X-Xss-Protection:
3467
+ - 1; mode=block
3468
+ X-Content-Type-Options:
3469
+ - nosniff
3470
+ Content-Type:
3471
+ - text/html; charset=utf-8
3472
+ Cache-Control:
3473
+ - no-cache
3474
+ X-Request-Id:
3475
+ - 14844309-26e1-4d24-b24e-a761490d8a12
3476
+ X-Runtime:
3477
+ - '0.014770'
3478
+ Server:
3479
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3480
+ Date:
3481
+ - Mon, 04 May 2015 19:01:27 GMT
3482
+ Content-Length:
3483
+ - '1486'
3484
+ Connection:
3485
+ - Keep-Alive
3486
+ body:
3487
+ encoding: UTF-8
3488
+ string: "<h2>error getting 97913309-4688-4341-9398-02ee8f4bb32e from LDP</h2><html>\n<head>\n<meta
3489
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3490
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3491
+ accessing /fedora/rest/anno/97913309-4688-4341-9398-02ee8f4bb32e. Reason:\n<pre>
3492
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3493
+ \ \n<br/> \n<br/>
3494
+ \ \n<br/> \n<br/>
3495
+ \ \n<br/> \n<br/>
3496
+ \ \n<br/> \n<br/>
3497
+ \ \n<br/> \n<br/>
3498
+ \ \n<br/> \n<br/>
3499
+ \ \n<br/> \n<br/>
3500
+ \ \n<br/> \n<br/>
3501
+ \ \n<br/> \n<br/>
3502
+ \ \n<br/> \n\n</body>\n</html>\n"
3503
+ http_version:
3504
+ recorded_at: Mon, 04 May 2015 19:01:27 GMT
3505
+ - request:
3506
+ method: get
3507
+ uri: http://localhost:3000/annotations/6e91b900-9b68-4b4d-b626-e0d4046bde04
3508
+ body:
3509
+ encoding: US-ASCII
3510
+ string: ''
3511
+ headers:
3512
+ Accept:
3513
+ - application/ld+json
3514
+ Accept-Encoding:
3515
+ - gzip, deflate
3516
+ User-Agent:
3517
+ - Ruby
3518
+ response:
3519
+ status:
3520
+ code: 404
3521
+ message: 'Not Found '
3522
+ headers:
3523
+ X-Frame-Options:
3524
+ - SAMEORIGIN
3525
+ X-Xss-Protection:
3526
+ - 1; mode=block
3527
+ X-Content-Type-Options:
3528
+ - nosniff
3529
+ Content-Type:
3530
+ - text/html; charset=utf-8
3531
+ Cache-Control:
3532
+ - no-cache
3533
+ X-Request-Id:
3534
+ - 0e6415fb-38b7-4ef6-bf07-0a085256db4a
3535
+ X-Runtime:
3536
+ - '0.010982'
3537
+ Server:
3538
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3539
+ Date:
3540
+ - Mon, 04 May 2015 19:02:20 GMT
3541
+ Content-Length:
3542
+ - '1486'
3543
+ Connection:
3544
+ - Keep-Alive
3545
+ body:
3546
+ encoding: UTF-8
3547
+ string: "<h2>error getting 6e91b900-9b68-4b4d-b626-e0d4046bde04 from LDP</h2><html>\n<head>\n<meta
3548
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3549
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3550
+ accessing /fedora/rest/anno/6e91b900-9b68-4b4d-b626-e0d4046bde04. Reason:\n<pre>
3551
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3552
+ \ \n<br/> \n<br/>
3553
+ \ \n<br/> \n<br/>
3554
+ \ \n<br/> \n<br/>
3555
+ \ \n<br/> \n<br/>
3556
+ \ \n<br/> \n<br/>
3557
+ \ \n<br/> \n<br/>
3558
+ \ \n<br/> \n<br/>
3559
+ \ \n<br/> \n<br/>
3560
+ \ \n<br/> \n<br/>
3561
+ \ \n<br/> \n\n</body>\n</html>\n"
3562
+ http_version:
3563
+ recorded_at: Mon, 04 May 2015 19:02:20 GMT
3564
+ - request:
3565
+ method: get
3566
+ uri: http://localhost:3000/annotations/e99d006a-943f-4750-bf20-dabdd7b462d8
3567
+ body:
3568
+ encoding: US-ASCII
3569
+ string: ''
3570
+ headers:
3571
+ Accept:
3572
+ - application/ld+json
3573
+ Accept-Encoding:
3574
+ - gzip, deflate
3575
+ User-Agent:
3576
+ - Ruby
3577
+ response:
3578
+ status:
3579
+ code: 404
3580
+ message: 'Not Found '
3581
+ headers:
3582
+ X-Frame-Options:
3583
+ - SAMEORIGIN
3584
+ X-Xss-Protection:
3585
+ - 1; mode=block
3586
+ X-Content-Type-Options:
3587
+ - nosniff
3588
+ Content-Type:
3589
+ - text/html; charset=utf-8
3590
+ Cache-Control:
3591
+ - no-cache
3592
+ X-Request-Id:
3593
+ - 602d09fe-78ac-4bf9-b358-6e5d16dc66bf
3594
+ X-Runtime:
3595
+ - '0.015440'
3596
+ Server:
3597
+ - WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
3598
+ Date:
3599
+ - Mon, 04 May 2015 19:03:14 GMT
3600
+ Content-Length:
3601
+ - '1486'
3602
+ Connection:
3603
+ - Keep-Alive
3604
+ body:
3605
+ encoding: UTF-8
3606
+ string: "<h2>error getting e99d006a-943f-4750-bf20-dabdd7b462d8 from LDP</h2><html>\n<head>\n<meta
3607
+ http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"/>\n<title>Error
3608
+ 404 Not Found</title>\n</head>\n<body><h2>HTTP ERROR 404</h2>\n<p>Problem
3609
+ accessing /fedora/rest/anno/e99d006a-943f-4750-bf20-dabdd7b462d8. Reason:\n<pre>
3610
+ \ Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
3611
+ \ \n<br/> \n<br/>
3612
+ \ \n<br/> \n<br/>
3613
+ \ \n<br/> \n<br/>
3614
+ \ \n<br/> \n<br/>
3615
+ \ \n<br/> \n<br/>
3616
+ \ \n<br/> \n<br/>
3617
+ \ \n<br/> \n<br/>
3618
+ \ \n<br/> \n<br/>
3619
+ \ \n<br/> \n<br/>
3620
+ \ \n<br/> \n\n</body>\n</html>\n"
3621
+ http_version:
3622
+ recorded_at: Mon, 04 May 2015 19:03:14 GMT
3623
+ recorded_with: VCR 2.9.3