diff --git a/app/controllers/hyrax/geo_works_controller.rb b/app/controllers/hyrax/geo_works_controller.rb
new file mode 100644
index 000000000..e2582a8bc
--- /dev/null
+++ b/app/controllers/hyrax/geo_works_controller.rb
@@ -0,0 +1,19 @@
+class Hyrax::GeoWorksController < ApplicationController
+ include Hyrax::WorksControllerBehavior
+ include Hyrax::BreadcrumbsForWorks
+ include GeoWorks::GeoblacklightControllerBehavior
+ include Hyrax::GeoMessengerBehavior
+
+ private
+
+ def decorator
+ CompositeDecorator.new(NullDecorator)
+ end
+
+ def curation_concern
+ @decorated_concern ||=
+ begin
+ @curation_concern = decorator.new(@curation_concern)
+ end
+ end
+end
diff --git a/app/controllers/hyrax/image_works_controller.rb b/app/controllers/hyrax/image_works_controller.rb
index ebdeac51e..382496313 100644
--- a/app/controllers/hyrax/image_works_controller.rb
+++ b/app/controllers/hyrax/image_works_controller.rb
@@ -1,8 +1,7 @@
-class Hyrax::ImageWorksController < ApplicationController
- include Hyrax::CurationConcernController
+class Hyrax::ImageWorksController < Hyrax::GeoWorksController
include GeoWorks::ImageWorksControllerBehavior
- include GeoWorks::GeoblacklightControllerBehavior
- include Hyrax::GeoMessengerBehavior
+ include Hyrax::Manifest
+ include Hyrax::RemoteMetadata
self.curation_concern_type = ImageWork
def show_presenter
diff --git a/app/controllers/hyrax/raster_works_controller.rb b/app/controllers/hyrax/raster_works_controller.rb
index 5938149e5..d2bc688f8 100644
--- a/app/controllers/hyrax/raster_works_controller.rb
+++ b/app/controllers/hyrax/raster_works_controller.rb
@@ -1,8 +1,6 @@
-class Hyrax::RasterWorksController < ApplicationController
- include Hyrax::CurationConcernController
+class Hyrax::RasterWorksController < Hyrax::GeoWorksController
include Hyrax::ParentContainer
include GeoWorks::RasterWorksControllerBehavior
- include GeoWorks::GeoblacklightControllerBehavior
include Hyrax::GeoMessengerBehavior
self.curation_concern_type = RasterWork
diff --git a/app/controllers/hyrax/vector_works_controller.rb b/app/controllers/hyrax/vector_works_controller.rb
index c72664f67..81e9370bd 100644
--- a/app/controllers/hyrax/vector_works_controller.rb
+++ b/app/controllers/hyrax/vector_works_controller.rb
@@ -1,9 +1,6 @@
-class Hyrax::VectorWorksController < ApplicationController
- include Hyrax::WorksControllerBehavior
+class Hyrax::VectorWorksController < Hyrax::GeoWorksController
include Hyrax::ParentContainer
include GeoWorks::VectorWorksControllerBehavior
- include GeoWorks::GeoblacklightControllerBehavior
- include Hyrax::GeoMessengerBehavior
self.curation_concern_type = VectorWork
def show_presenter
diff --git a/app/forms/hyrax/image_work_form.rb b/app/forms/hyrax/image_work_form.rb
index 3a74081c2..5d0f17e77 100644
--- a/app/forms/hyrax/image_work_form.rb
+++ b/app/forms/hyrax/image_work_form.rb
@@ -3,6 +3,8 @@ class ImageWorkForm < ::Hyrax::GeoWorkForm
include ::GeoWorks::BasicGeoMetadataForm
include ::GeoWorks::ExternalMetadataFileForm
self.model_class = ::ImageWork
+ self.terms += [:viewing_direction, :viewing_hint]
+ self.required_fields = [:title, :source_metadata_identifier, :rights_statement, :coverage]
def secondary_terms
super - [:cartographic_projection]
diff --git a/app/models/concerns/apply_remote_metadata.rb b/app/models/concerns/apply_remote_metadata.rb
new file mode 100644
index 000000000..c736f7173
--- /dev/null
+++ b/app/models/concerns/apply_remote_metadata.rb
@@ -0,0 +1,50 @@
+module ApplyRemoteMetadata
+ extend ActiveSupport::Concern
+
+ included do
+ validate :source_metadata_identifier_or_title
+
+ def apply_remote_metadata
+ if remote_data.source
+ self.source_metadata = remote_data.source.dup.try(:force_encoding, 'utf-8')
+ end
+ if remote_data.respond_to?(:jsonld)
+ self.source_jsonld = remote_data.jsonld.dup.try(:force_encoding, 'utf-8')
+ end
+ self.attributes = enumerable_to_single_valued_attributes(remote_data.attributes)
+ CompleteRecord.new(self).complete if workflow_state == 'complete' && identifier.present?
+ end
+
+ private
+
+ def enumerable_to_single_valued_attributes(attributes)
+ attributes.merge(attributes) do |key, value|
+ next unless value
+ single_valued_attributes.include?(key) ? value.first : value
+ end
+ end
+
+ def single_valued_attributes
+ attributes.map { |key, value| key unless value.is_a? Enumerable }.compact
+ end
+
+ def remote_data
+ @remote_data ||= remote_metadata_factory.retrieve(source_metadata_identifier)
+ end
+
+ def remote_metadata_factory
+ if RemoteRecord.bibdata?(source_metadata_identifier) == 0
+ JSONLDRecord::Factory.new(self.class)
+ else
+ RemoteRecord
+ end
+ end
+
+ # Validate that either the source_metadata_identifier or the title is set.
+ def source_metadata_identifier_or_title
+ return if source_metadata_identifier.present? || title.present?
+ errors.add(:title, "You must provide a source metadata id or a title")
+ errors.add(:source_metadata_identifier, "You must provide a source metadata id or a title")
+ end
+ end
+end
diff --git a/app/models/concerns/common_metadata.rb b/app/models/concerns/common_metadata.rb
index e78a1a9d2..4edd59306 100644
--- a/app/models/concerns/common_metadata.rb
+++ b/app/models/concerns/common_metadata.rb
@@ -16,42 +16,8 @@ module CommonMetadata
ActiveFedora::Indexers::GlobalIndexer.new([:stored_searchable, :symbol])
)
- validate :source_metadata_identifier_or_title
validates_with RightsStatementValidator
validates_with ViewingDirectionValidator
validates_with ViewingHintValidator
-
- def apply_remote_metadata
- if remote_data.source
- self.source_metadata = remote_data.source.dup.try(:force_encoding, 'utf-8')
- end
- if remote_data.respond_to?(:jsonld)
- self.source_jsonld = remote_data.jsonld.dup.try(:force_encoding, 'utf-8')
- end
- self.attributes = remote_data.attributes
-
- CompleteRecord.new(self).complete if workflow_state == 'complete' && identifier.present?
- end
-
- private
-
- def remote_data
- @remote_data ||= remote_metadata_factory.retrieve(source_metadata_identifier)
- end
-
- def remote_metadata_factory
- if RemoteRecord.bibdata?(source_metadata_identifier) == 0
- JSONLDRecord::Factory.new(self.class)
- else
- RemoteRecord
- end
- end
-
- # Validate that either the source_metadata_identifier or the title is set.
- def source_metadata_identifier_or_title
- return if source_metadata_identifier.present? || title.present?
- errors.add(:title, "You must provide a source metadata id or a title")
- errors.add(:source_metadata_identifier, "You must provide a source metadata id or a title")
- end
end
end
diff --git a/app/models/image_work.rb b/app/models/image_work.rb
index 567060612..ffa8c0418 100644
--- a/app/models/image_work.rb
+++ b/app/models/image_work.rb
@@ -5,6 +5,7 @@ class ImageWork < ActiveFedora::Base
include ::GeoWorks::BasicGeoMetadata
include ::GeoMetadata
include ::StateBehavior
+ include ::ApplyRemoteMetadata
self.valid_child_concerns = [RasterWork]
# Use local indexer
diff --git a/app/models/multi_volume_work.rb b/app/models/multi_volume_work.rb
index 6b5797a3b..80998fceb 100644
--- a/app/models/multi_volume_work.rb
+++ b/app/models/multi_volume_work.rb
@@ -3,6 +3,7 @@ class MultiVolumeWork < ActiveFedora::Base
include ::Hyrax::WorkBehavior
include ::Hyrax::BasicMetadata
include ::CommonMetadata
+ include ::ApplyRemoteMetadata
include ::StateBehavior
include ::StructuralMetadata
include ::HasPendingUploads
diff --git a/app/models/scanned_resource.rb b/app/models/scanned_resource.rb
index 713a66a7e..8d48e55a6 100644
--- a/app/models/scanned_resource.rb
+++ b/app/models/scanned_resource.rb
@@ -4,6 +4,7 @@ class ScannedResource < ActiveFedora::Base
include ::Hyrax::WorkBehavior
include ::Hyrax::BasicMetadata
include ::CommonMetadata
+ include ::ApplyRemoteMetadata
include ::StateBehavior
include ::StructuralMetadata
include ::HasPendingUploads
diff --git a/app/presenters/image_work_show_presenter.rb b/app/presenters/image_work_show_presenter.rb
index 306c37884..4e449c0da 100644
--- a/app/presenters/image_work_show_presenter.rb
+++ b/app/presenters/image_work_show_presenter.rb
@@ -1,3 +1,4 @@
class ImageWorkShowPresenter < GeoWorks::ImageWorkShowPresenter
include PlumAttributes
+ delegate :viewing_hint, :viewing_direction, :logical_order, :logical_order_object, :ocr_language, to: :solr_document
end
diff --git a/app/presenters/vector_work_show_presenter.rb b/app/presenters/vector_work_show_presenter.rb
index 870e8550c..16f2914e3 100644
--- a/app/presenters/vector_work_show_presenter.rb
+++ b/app/presenters/vector_work_show_presenter.rb
@@ -1,5 +1,3 @@
class VectorWorkShowPresenter < GeoWorks::VectorWorkShowPresenter
include PlumAttributes
-
- # self.file_format_service = GeoConcerns::VectorFormatService
end
diff --git a/app/schemas/geo_schema.rb b/app/schemas/geo_schema.rb
index d63de6741..842d0e518 100644
--- a/app/schemas/geo_schema.rb
+++ b/app/schemas/geo_schema.rb
@@ -8,4 +8,5 @@ class GeoSchema < ActiveTriples::Schema
property :source_metadata, predicate: ::PULTerms.source_metadata, multiple: false
property :holding_location, predicate: ::RDF::Vocab::Bibframe.heldBy, multiple: false
property :ocr_language, predicate: ::PULTerms.ocr_language
+ property :source_jsonld, predicate: ::PULTerms.source_jsonld, multiple: false
end
diff --git a/app/services/plum_derivatives_service.rb b/app/services/plum_derivatives_service.rb
index 6c6e452b7..148b0d22a 100644
--- a/app/services/plum_derivatives_service.rb
+++ b/app/services/plum_derivatives_service.rb
@@ -10,9 +10,9 @@ def create_derivatives(filename)
filename,
outputs: [
label: 'intermediate_file',
+ recipe: recipe,
service: {
- datastream: 'intermediate_file',
- recipe: :default
+ datastream: 'intermediate_file'
},
url: derivative_url('intermediate_file')
]
@@ -45,4 +45,9 @@ def valid?
def derivative_path_factory
PairtreeDerivativePath
end
+
+ # Because of issues with tiffs, scanned maps need a seperate recipe
+ def recipe
+ file_set.geo_mime_type && file_set.geo_mime_type == "image/tiff" ? :geo : :default
+ end
end
diff --git a/app/values/pairtree_derivative_path.rb b/app/values/pairtree_derivative_path.rb
index 7e71162cd..c1130841b 100644
--- a/app/values/pairtree_derivative_path.rb
+++ b/app/values/pairtree_derivative_path.rb
@@ -12,6 +12,7 @@ def path_prefix
def geo_path_prefix
return unless @object.respond_to?(:geo_mime_type)
return if @object.geo_mime_type.nil? || @object.geo_mime_type.empty?
+ return if @object.geo_mime_type == "image/tiff"
Pathname.new(Plum.config[:geo_derivatives_path]).join(pair_path)
end
diff --git a/app/views/hyrax/image_works/_file_actions.html.erb b/app/views/hyrax/image_works/_file_actions.html.erb
deleted file mode 100644
index 47749dab3..000000000
--- a/app/views/hyrax/image_works/_file_actions.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-
- <% if presenter.editor? %>
- <%= render 'image_actions', document: @presenter %>
- <% end %>
-
diff --git a/app/views/hyrax/image_works/_show_actions.html.erb b/app/views/hyrax/image_works/_show_actions.html.erb
new file mode 100644
index 000000000..21104ab4c
--- /dev/null
+++ b/app/views/hyrax/image_works/_show_actions.html.erb
@@ -0,0 +1,19 @@
+<% if collector || editor %>
+
+<% end %>
diff --git a/app/views/hyrax/image_works/show.html.erb b/app/views/hyrax/image_works/show.html.erb
new file mode 100644
index 000000000..3d06040a0
--- /dev/null
+++ b/app/views/hyrax/image_works/show.html.erb
@@ -0,0 +1,23 @@
+<% provide :page_title, @presenter.page_title %>
+<% provide :page_header do %>
+ <%= render "hyrax/base/title_header" %>
+ <% if @parent_presenter %>
+
+ - <%= link_to @parent_presenter, polymorphic_path([main_app, @parent_presenter]) %>
+ - <%= @presenter.human_readable_type %>
+
+ <% else %>
+ (<%= @presenter.human_readable_type %>)
+ <% end %>
+<% end %>
+
+<% collector = can?(:collect, @presenter.id) %>
+<% editor = can?(:edit, @presenter.id) %>
+
+<%= render 'representative_media', presenter: @presenter %>
+<%= render 'geo_works/metadata', presenter: @presenter %>
+<%= render 'geo_works/relationships', presenter: @presenter %>
+<%= render 'geo_works/related/geo_files', presenter: @presenter %>
+<%= render 'geo_works/related/external_metadata_files', presenter: @presenter %>
+<%= render 'workflow_actions', presenter: @presenter if @presenter.workflow.actions.present? %>
+<%= render "show_actions", collector: collector, editor: editor%>
diff --git a/config/config.yml b/config/config.yml
index bd997dd66..4bc0abdec 100644
--- a/config/config.yml
+++ b/config/config.yml
@@ -34,6 +34,38 @@ defaults: &defaults
ORGgen_plt=yes
ORGtparts=R
Stiles=\{1024,1024\}
+ geo_color: >
+ -no_palette
+ -rate 2.4,1.48331273,.91673033,.56657224,.35016049,.21641118,.13374944,.08266171
+ -jp2_space sRGB
+ -double_buffering 10
+ -num_threads 1
+ -no_weights
+ Clevels=6
+ Clayers=8
+ Cblk=\{64,64\}
+ Cuse_sop=yes
+ Cuse_eph=yes
+ Corder=RPCL
+ ORGgen_plt=yes
+ ORGtparts=R
+ Stiles=\{1024,1024\}
+ geo_gray: >
+ -no_palette
+ -rate 2.4,1.48331273,.91673033,.56657224,.35016049,.21641118,.13374944,.08266171
+ -jp2_space sLUM
+ -double_buffering 10
+ -num_threads 1
+ -no_weights
+ Clevels=6
+ Clayers=8
+ Cblk=\{64,64\}
+ Cuse_sop=yes
+ Cuse_eph=yes
+ Corder=RPCL
+ ORGgen_plt=yes
+ ORGtparts=R
+ Stiles=\{1024,1024\}
events:
server: 'amqp://localhost:5672'
exchange: 'plum_events'
diff --git a/config/routes.rb b/config/routes.rb
index 3a9169dd8..61f83c4a8 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -71,6 +71,11 @@
post :browse_everything_files
end
end
+ resources :image_works, only: [] do
+ member do
+ get :manifest, defaults: { format: :json }
+ end
+ end
resources :file_sets, only: [] do
member do
post :derivatives
diff --git a/spec/cassettes/bibdata-maps.yml b/spec/cassettes/bibdata-maps.yml
new file mode 100644
index 000000000..16a42e9a6
--- /dev/null
+++ b/spec/cassettes/bibdata-maps.yml
@@ -0,0 +1,3715 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://bibdata.princeton.edu/bibliographic/9284317
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ User-Agent:
+ - Faraday v0.9.2
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Thu, 23 Feb 2017 18:32:40 GMT
+ Server:
+ - Apache/2.4.7 (Ubuntu)
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Request-Method:
+ - GET
+ Access-Control-Allow-Headers:
+ - Origin, Content-Type, Accept, Authorization, Token
+ Cache-Control:
+ - max-age=0, private, must-revalidate
+ X-Request-Id:
+ - 6c724358-8e40-4d4c-b254-3e568524ddee
+ X-Runtime:
+ - '0.085955'
+ X-Powered-By:
+ - Phusion Passenger 4.0.59
+ Etag:
+ - W/"b7dbdea2bd389e82d1ee92fc113f07a5-gzip"
+ Status:
+ - 200 OK
+ Vary:
+ - Accept-Encoding
+ Content-Length:
+ - '1659'
+ Content-Type:
+ - application/xml; charset=utf-8
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PHJlY29yZCB4bWxucz0naHR0cDovL3d3dy5sb2MuZ292L01BUkMyMS9zbGlt
+ Jz48bGVhZGVyPjAyODgwY2VtIGEyMjAwNjEzN2EgNDUwMDwvbGVhZGVyPjxj
+ b250cm9sZmllbGQgdGFnPScwMDEnPjkyODQzMTc8L2NvbnRyb2xmaWVsZD48
+ Y29udHJvbGZpZWxkIHRhZz0nMDA1Jz4yMDE2MDIyMjE4MjIzOC4wPC9jb250
+ cm9sZmllbGQ+PGNvbnRyb2xmaWVsZCB0YWc9JzAwNic+ZWVrICBiZCBhICBm
+ ICAwICAgPC9jb250cm9sZmllbGQ+PGNvbnRyb2xmaWVsZCB0YWc9JzAwNyc+
+ YWogY2Fuem48L2NvbnRyb2xmaWVsZD48Y29udHJvbGZpZWxkIHRhZz0nMDA4
+ Jz4xNTExMjBzMTk5NCAgICBtZHVlayAgYmQgYSAgZiAgMCAgIGVuZyBkPC9j
+ b250cm9sZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQyPScgJyB0YWc9
+ JzA0MCc+PHN1YmZpZWxkIGNvZGU9J2EnPk5qUDwvc3ViZmllbGQ+PHN1YmZp
+ ZWxkIGNvZGU9J2InPmVuZzwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J2Un
+ PnJkYTwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J2MnPk5qUDwvc3ViZmll
+ bGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScxJyBpbmQyPScgJyB0
+ YWc9JzAzNCc+PHN1YmZpZWxkIGNvZGU9J2EnPmE8L3N1YmZpZWxkPjxzdWJm
+ aWVsZCBjb2RlPSdiJz4yMDAwMDwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9
+ J2QnPjAwMy45NjY2Njc8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdlJz4w
+ MDQuMzQxNjY3PC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0nZic+NTIuMDI0
+ MTY3PC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0nZyc+NTEuOTIwMDAwPC9z
+ dWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JyAnIGluZDI9
+ JyAnIHRhZz0nMDM3Jz48c3ViZmllbGQgY29kZT0nYSc+MzcgQUhBIDM3MjQy
+ PC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0nYic+RE1BPC9zdWJmaWVsZD48
+ L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JyAnIGluZDI9JyAnIHRhZz0n
+ MDQzJz48c3ViZmllbGQgY29kZT0nYSc+ZS1uZS0tLTwvc3ViZmllbGQ+PHN1
+ YmZpZWxkIGNvZGU9J2EnPmxuLS0tLS08L3N1YmZpZWxkPjwvZGF0YWZpZWxk
+ PjxkYXRhZmllbGQgaW5kMT0nICcgaW5kMj0nNCcgdGFnPScwNTAnPjxzdWJm
+ aWVsZCBjb2RlPSdhJz5HNjAwMS5QNSBzdmFyLjwvc3ViZmllbGQ+PHN1YmZp
+ ZWxkIGNvZGU9J2InPi5VNSAzNzI0Mjwvc3ViZmllbGQ+PC9kYXRhZmllbGQ+
+ PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQyPScgJyB0YWc9JzA1Mic+PHN1YmZp
+ ZWxkIGNvZGU9J2EnPjYwMDI8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdi
+ Jz5ONTwvc3ViZmllbGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScg
+ JyBpbmQyPScgJyB0YWc9JzA1Mic+PHN1YmZpZWxkIGNvZGU9J2EnPjkxMTI8
+ L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdiJz5ONjwvc3ViZmllbGQ+PC9k
+ YXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQyPScgJyB0YWc9JzA1
+ Mic+PHN1YmZpZWxkIGNvZGU9J2EnPjYwMDQ8L3N1YmZpZWxkPjxzdWJmaWVs
+ ZCBjb2RlPSdiJz5SNzoyRTk8L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRh
+ ZmllbGQgaW5kMT0nICcgaW5kMj0nICcgdGFnPScwNzQnPjxzdWJmaWVsZCBj
+ b2RlPSdhJz4wMzc4LUUtMzI8L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRh
+ ZmllbGQgaW5kMT0nMCcgaW5kMj0nICcgdGFnPScwODYnPjxzdWJmaWVsZCBj
+ b2RlPSdhJz5EIDUuMzU2OjM3MjQyLzk5NDwvc3ViZmllbGQ+PC9kYXRhZmll
+ bGQ+PGRhdGFmaWVsZCBpbmQxPScxJyBpbmQyPScgJyB0YWc9JzExMCc+PHN1
+ YmZpZWxkIGNvZGU9J2EnPlVuaXRlZCBTdGF0ZXMuPC9zdWJmaWVsZD48c3Vi
+ ZmllbGQgY29kZT0nYic+RGVmZW5zZSBNYXBwaW5nIEFnZW5jeS48L3N1YmZp
+ ZWxkPjxzdWJmaWVsZCBjb2RlPSdiJz5IeWRyb2dyYXBoaWMvVG9wb2dyYXBo
+ aWMgQ2VudGVyLDwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J2UnPmNhcnRv
+ Z3JhcGhlciw8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdlJz5pc3N1aW5n
+ IGJvZHkuPC9zdWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9
+ JzEnIGluZDI9JzAnIHRhZz0nMjQ1Jz48c3ViZmllbGQgY29kZT0nYSc+TmV0
+ aGVybGFuZHMsIE5pZXV3ZSBXYXRlcndlZyBhbmQgRXVyb3Bvb3J0IDo8L3N1
+ YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdiJz5Ib2VrIFZhbiBIb2xsYW5kIHRv
+ IFZsYWFyZGluZ2VuIC88L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdjJz5t
+ b2RpZmllZCByZXByb2R1Y3Rpb24gb2YgSU5UIDE0NzUgb3JpZ2luYWxseSBw
+ dWJsaXNoZWQgQXByaWwgMTk4NSxjb3JyZWN0ZWQgdG8gRGVjZW1iZXIgMTk4
+ NyBieSB0aGUgTmV0aGVybGFuZHMuPC9zdWJmaWVsZD48L2RhdGFmaWVsZD48
+ ZGF0YWZpZWxkIGluZDE9JzMnIGluZDI9JzAnIHRhZz0nMjQ2Jz48c3ViZmll
+ bGQgY29kZT0nYSc+SG9layBWYW4gSG9sbGFuZCB0byBWbGFhcmRpbmdlbjwv
+ c3ViZmllbGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQy
+ PScgJyB0YWc9JzI1MCc+PHN1YmZpZWxkIGNvZGU9J2EnPjl0aCBlZC4sIEp1
+ bmUgNCwgMTk5NCAoQ29ycmVjdCB0aHJvdWdoIE5NIDIzLzk0KS48L3N1YmZp
+ ZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0nICcgaW5kMj0nICcg
+ dGFnPScyNTUnPjxzdWJmaWVsZCBjb2RlPSdhJz5TY2FsZSAxOjIwLDAwMCA7
+ PC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0nYic+TWVyY2F0b3IgcHJvamVj
+ dGlvbjwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J2MnPihFIDPCsDU4yrkw
+ MMq6LS1FIDTCsDIwyrkzMMq6L04gNTLCsDAxyrkyN8q6LS1OIDUxwrA1Ncq5
+ MTLKuikuPC9zdWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9
+ JyAnIGluZDI9JzEnIHRhZz0nMjY0Jz48c3ViZmllbGQgY29kZT0nYSc+QmV0
+ aGVzZGEsIE1kLiA6PC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0nYic+RGVm
+ ZW5zZSBNYXBwaW5nIEFnZW5jeSwgSHlkcm9ncmFwaGljL1RvcG9ncmFwaGlj
+ IENlbnRlciw8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdjJz4xOTk0Ljwv
+ c3ViZmllbGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQy
+ PScgJyB0YWc9JzMwMCc+PHN1YmZpZWxkIGNvZGU9J2EnPjEgbWFwIDo8L3N1
+ YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdiJz5jb2xvciA7PC9zdWJmaWVsZD48
+ c3ViZmllbGQgY29kZT0nYyc+b24gc2hlZXQgNjcgeCAxMDIgY208L3N1YmZp
+ ZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0nICcgaW5kMj0nICcg
+ dGFnPSczMzYnPjxzdWJmaWVsZCBjb2RlPSdhJz5jYXJ0b2dyYXBoaWMgaW1h
+ Z2U8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdiJz5jcmk8L3N1YmZpZWxk
+ PjxzdWJmaWVsZCBjb2RlPScyJz5yZGFjb250ZW50PC9zdWJmaWVsZD48L2Rh
+ dGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JyAnIGluZDI9JyAnIHRhZz0nMzM3
+ Jz48c3ViZmllbGQgY29kZT0nYSc+dW5tZWRpYXRlZDwvc3ViZmllbGQ+PHN1
+ YmZpZWxkIGNvZGU9J2InPm48L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPScy
+ Jz5yZGFtZWRpYTwvc3ViZmllbGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBp
+ bmQxPScgJyBpbmQyPScgJyB0YWc9JzMzOCc+PHN1YmZpZWxkIGNvZGU9J2En
+ PnNoZWV0PC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0nYic+bmI8L3N1YmZp
+ ZWxkPjxzdWJmaWVsZCBjb2RlPScyJz5yZGFjYXJyaWVyPC9zdWJmaWVsZD48
+ L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JzEnIGluZDI9JyAnIHRhZz0n
+ NDkwJz48c3ViZmllbGQgY29kZT0nYSc+SW50ZXJuYXRpb25hbCBjaGFydCBz
+ ZXJpZXMgOzwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J3YnPklOVCAxNDc1
+ PC9zdWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JyAnIGlu
+ ZDI9JyAnIHRhZz0nNTAwJz48c3ViZmllbGQgY29kZT0nYSc+RGVwdGhzIHNo
+ b3duIGJ5IGlzb2xpbmVzIGFuZCBzb3VuZGluZ3MuPC9zdWJmaWVsZD48L2Rh
+ dGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JyAnIGluZDI9JyAnIHRhZz0nNTAw
+ Jz48c3ViZmllbGQgY29kZT0nYSc+UmVsaWVmIHNob3duIGJ5IHNwb3QgaGVp
+ Z2h0cy48L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0n
+ ICcgaW5kMj0nICcgdGFnPSc1MDAnPjxzdWJmaWVsZCBjb2RlPSdhJz4mcXVv
+ dDtTb3VuZGluZ3MgaW4gbWV0ZXJzLiZxdW90Ozwvc3ViZmllbGQ+PC9kYXRh
+ ZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQyPScgJyB0YWc9JzUwMCc+
+ PHN1YmZpZWxkIGNvZGU9J2EnPk1hcCBkcmF3biBpbiAyIHNlZ21lbnRzLjwv
+ c3ViZmllbGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQy
+ PScgJyB0YWc9JzUwMCc+PHN1YmZpZWxkIGNvZGU9J2EnPk1hcCBjb250aW51
+ ZWQgaW4gaW5zZXQuPC9zdWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxk
+ IGluZDE9JyAnIGluZDI9JyAnIHRhZz0nNTA0Jz48c3ViZmllbGQgY29kZT0n
+ YSc+JnF1b3Q7RnJvbSBhIE5ldGhlcmxhbmRzIHN1cnZleXMgMTk4Mi0xOTgz
+ LiZxdW90Ozwvc3ViZmllbGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQx
+ PScgJyBpbmQyPScgJyB0YWc9JzU0Nic+PHN1YmZpZWxkIGNvZGU9J2EnPlBs
+ YWNlIG5hbWVzIGluIER1dGNoIHdpdGggZ2xvc3NhcnkgaW4gRW5nbGlzaC48
+ L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0nICcgaW5k
+ Mj0nICcgdGFnPSc1MDAnPjxzdWJmaWVsZCBjb2RlPSdhJz4mcXVvdDtOZXRo
+ ZXJsYW5kcyBjb3B5cmlnaHQgYXBwbGllcy48L3N1YmZpZWxkPjwvZGF0YWZp
+ ZWxkPjxkYXRhZmllbGQgaW5kMT0nMCcgaW5kMj0nICcgdGFnPSc1MDUnPjxz
+ dWJmaWVsZCBjb2RlPSdhJz5bUGFuZWwgQS4gTWFhc3ZsYWt0ZSAtIEV1cm9w
+ b29ydF0gLS0gW1BhbmVsIEIuIFZvb3JuZSAtIFJvemVuYnVyZ108L3N1YmZp
+ ZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0nICcgaW5kMj0nICcg
+ dGFnPSc1MzAnPjxzdWJmaWVsZCBjb2RlPSdhJz5BdmFpbGFibGUgYWxzbyBv
+ bmxpbmUgdGhyb3VnaDo8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdiJz5Q
+ cmluY2V0b24gVW5pdmVyc2l0eSBMaWJyYXJpZXMsIERpZ2l0YWwgTWFwICZh
+ bXA7IEdlb2dyYXBoaWMgRGF0YSBXZWIgc2l0ZS48L3N1YmZpZWxkPjwvZGF0
+ YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0nICcgaW5kMj0nMCcgdGFnPSc2NTEn
+ PjxzdWJmaWVsZCBjb2RlPSdhJz5OZXcgV2F0ZXJ3YXkgKE5ldGhlcmxhbmRz
+ KTwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J3gnPk5hdmlnYXRpb24uPC9z
+ dWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JyAnIGluZDI9
+ JzAnIHRhZz0nNjUxJz48c3ViZmllbGQgY29kZT0nYSc+RXVyb3Bvb3J0IChS
+ b3R0ZXJkYW0sIE5ldGhlcmxhbmRzKTwvc3ViZmllbGQ+PHN1YmZpZWxkIGNv
+ ZGU9J3YnPk1hcHMuPC9zdWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxk
+ IGluZDE9JyAnIGluZDI9JzAnIHRhZz0nNjUxJz48c3ViZmllbGQgY29kZT0n
+ YSc+Tm9ydGggU2VhPC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0neCc+TmF2
+ aWdhdGlvbi48L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5k
+ MT0nICcgaW5kMj0nNycgdGFnPSc2NTAnPjxzdWJmaWVsZCBjb2RlPSdhJz5O
+ YXZpZ2F0aW9uLjwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9JzInPmZhc3Q8
+ L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPScwJz4oT0NvTEMpZnN0MDEwMzUw
+ ODU8L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0nICcg
+ aW5kMj0nNycgdGFnPSc2NTEnPjxzdWJmaWVsZCBjb2RlPSdhJz5BdGxhbnRp
+ YyBPY2Vhbjwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J3onPk5vcnRoIFNl
+ YS48L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPScyJz5mYXN0PC9zdWJmaWVs
+ ZD48c3ViZmllbGQgY29kZT0nMCc+KE9Db0xDKWZzdDAxMjQyNTA0PC9zdWJm
+ aWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9JyAnIGluZDI9Jzcn
+ IHRhZz0nNjUxJz48c3ViZmllbGQgY29kZT0nYSc+TmV0aGVybGFuZHM8L3N1
+ YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSd6Jz5OZXcgV2F0ZXJ3YXkuPC9zdWJm
+ aWVsZD48c3ViZmllbGQgY29kZT0nMic+ZmFzdDwvc3ViZmllbGQ+PHN1YmZp
+ ZWxkIGNvZGU9JzAnPihPQ29MQylmc3QwMTI0NDg4NTwvc3ViZmllbGQ+PC9k
+ YXRhZmllbGQ+PGRhdGFmaWVsZCBpbmQxPScgJyBpbmQyPSc3JyB0YWc9JzY1
+ MSc+PHN1YmZpZWxkIGNvZGU9J2EnPk5ldGhlcmxhbmRzPC9zdWJmaWVsZD48
+ c3ViZmllbGQgY29kZT0neic+Um90dGVyZGFtPC9zdWJmaWVsZD48c3ViZmll
+ bGQgY29kZT0neic+RXVyb3Bvb3J0Ljwvc3ViZmllbGQ+PHN1YmZpZWxkIGNv
+ ZGU9JzInPmZhc3Q8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPScwJz4oT0Nv
+ TEMpZnN0MDEzMjE4MTI8L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmll
+ bGQgaW5kMT0nICcgaW5kMj0nNycgdGFnPSc2NTEnPjxzdWJmaWVsZCBjb2Rl
+ PSdhJz5OZXRoZXJsYW5kczwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J3on
+ PlJvdHRlcmRhbSBSZWdpb24uPC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0n
+ Mic+ZmFzdDwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9JzAnPihPQ29MQylm
+ c3QwMTM0NzcxNzwvc3ViZmllbGQ+PC9kYXRhZmllbGQ+PGRhdGFmaWVsZCBp
+ bmQxPScgJyBpbmQyPSc3JyB0YWc9JzY1NSc+PHN1YmZpZWxkIGNvZGU9J2En
+ Pk5hdXRpY2FsIGNoYXJ0czwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9JzIn
+ PmZhc3Q8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2RlPScwJz4oT0NvTEMpZnN0
+ MDEwMzQ3NjI8L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5k
+ MT0nICcgaW5kMj0nNycgdGFnPSc2NTUnPjxzdWJmaWVsZCBjb2RlPSdhJz5O
+ YXV0aWNhbCBjaGFydHMuPC9zdWJmaWVsZD48c3ViZmllbGQgY29kZT0nMic+
+ bGNnZnQ8L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjxkYXRhZmllbGQgaW5kMT0n
+ ICcgaW5kMj0nMCcgdGFnPSc4MzAnPjxzdWJmaWVsZCBjb2RlPSdhJz5JbnRl
+ cm5hdGlvbmFsIGNoYXJ0IHNlcmllcyA7PC9zdWJmaWVsZD48c3ViZmllbGQg
+ Y29kZT0ndic+SU5UIDE0NzUuPC9zdWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0
+ YWZpZWxkIGluZDE9JzQnIGluZDI9JzEnIHRhZz0nODU2Jz48c3ViZmllbGQg
+ Y29kZT0neic+U2VlIHRoZSBtYXA8L3N1YmZpZWxkPjxzdWJmaWVsZCBjb2Rl
+ PSd1Jz5odHRwOi8vYXJrcy5wcmluY2V0b24uZWR1L2FyazovODg0MzUvdjQw
+ NXNkMDFqPC9zdWJmaWVsZD48L2RhdGFmaWVsZD48ZGF0YWZpZWxkIGluZDE9
+ JzgnIGluZDI9JyAnIHRhZz0nODUyJz48c3ViZmllbGQgY29kZT0nMCc+OTE0
+ OTU0NDwvc3ViZmllbGQ+PHN1YmZpZWxkIGNvZGU9J2InPnNjaW1hcDwvc3Vi
+ ZmllbGQ+PHN1YmZpZWxkIGNvZGU9J2gnPkc2MDAyLk42UDUgc3Zhci48L3N1
+ YmZpZWxkPjxzdWJmaWVsZCBjb2RlPSdpJz4uVTUgMzcyNDI8L3N1YmZpZWxk
+ PjxzdWJmaWVsZCBjb2RlPSd6Jz5DaGFydCBpcyBsb2NhdGVkIGluIE1hcCBB
+ bm5leC4gQ2FsbCBudW1iZXIgU3VEb2Mgbm8uIDogRCA1LjM1NjozNzI0MS85
+ OTQ8L3N1YmZpZWxkPjwvZGF0YWZpZWxkPjwvcmVjb3JkPg==
+ http_version:
+ recorded_at: Thu, 23 Feb 2017 18:32:40 GMT
+- request:
+ method: get
+ uri: https://bibdata.princeton.edu/bibliographic/9284317/jsonld
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - text/turtle, text/rdf+turtle, application/turtle;q=0.2, application/x-turtle;q=0.2,
+ application/ld+json, application/x-ld+json, application/n-triples, text/plain;q=0.2,
+ */*;q=0.1
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Thu, 23 Feb 2017 18:32:41 GMT
+ Server:
+ - Apache/2.4.7 (Ubuntu)
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Request-Method:
+ - GET
+ Access-Control-Allow-Headers:
+ - Origin, Content-Type, Accept, Authorization, Token
+ Cache-Control:
+ - max-age=0, private, must-revalidate
+ X-Request-Id:
+ - 7f42db05-00ff-422b-ac44-57fc3f9bbaab
+ X-Runtime:
+ - '0.334725'
+ X-Powered-By:
+ - Phusion Passenger 4.0.59
+ Etag:
+ - W/"aa2132601c8d1affa7b0221ff7943862"
+ Status:
+ - 200 OK
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - application/ld+json; charset=utf-8
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ eyJAY29udGV4dCI6Imh0dHA6Ly9iaWJkYXRhLnByaW5jZXRvbi5lZHUvY29u
+ dGV4dC5qc29uIiwiQGlkIjoiaHR0cDovL2JpYmRhdGEucHJpbmNldG9uLmVk
+ dS9iaWJsaW9ncmFwaGljLzkyODQzMTciLCJ0aXRsZSI6eyJAdmFsdWUiOiJO
+ ZXRoZXJsYW5kcywgTmlldXdlIFdhdGVyd2VnIGFuZCBFdXJvcG9vcnQgOiBI
+ b2VrIFZhbiBIb2xsYW5kIHRvIFZsYWFyZGluZ2VuIiwiQGxhbmd1YWdlIjoi
+ ZW5nIn0sImxhbmd1YWdlIjoiZW5nIiwiY3JlYXRvciI6IlVuaXRlZCBTdGF0
+ ZXMuIERlZmVuc2UgTWFwcGluZyBBZ2VuY3kuIEh5ZHJvZ3JhcGhpYy9Ub3Bv
+ Z3JhcGhpYyBDZW50ZXIiLCJjYWxsX251bWJlciI6Ikc2MDAyLk42UDUgc3Zh
+ ci4gLlU1IDM3MjQyIiwiZXh0ZW50IjpbIlNjYWxlIDE6MjAsMDAwIDsgTWVy
+ Y2F0b3IgcHJvamVjdGlvbiAoRSAzwrA1OMq5MDDKui0tRSA0wrAyMMq5MzDK
+ ui9OIDUywrAwMcq5MjfKui0tTiA1McKwNTXKuTEyyropLiIsIjEgbWFwIDog
+ Y29sb3IgOyBvbiBzaGVldCA2NyB4IDEwMiBjbSJdLCJlZGl0aW9uIjoiOXRo
+ IGVkLiwgSnVuZSA0LCAxOTk0IChDb3JyZWN0IHRocm91Z2ggTk0gMjMvOTQp
+ LiIsImZvcm1hdCI6Ik1hcCIsInR5cGUiOiJNYXBzIiwiZGVzY3JpcHRpb24i
+ OlsiRGVwdGhzIHNob3duIGJ5IGlzb2xpbmVzIGFuZCBzb3VuZGluZ3MuIiwi
+ UmVsaWVmIHNob3duIGJ5IHNwb3QgaGVpZ2h0cy4iLCJcIlNvdW5kaW5ncyBp
+ biBtZXRlcnMuXCIiLCJNYXAgZHJhd24gaW4gMiBzZWdtZW50cy4iLCJNYXAg
+ Y29udGludWVkIGluIGluc2V0LiIsIlwiTmV0aGVybGFuZHMgY29weXJpZ2h0
+ IGFwcGxpZXMuIl0sInB1Ymxpc2hlciI6IkJldGhlc2RhLCBNZC4gOiBEZWZl
+ bnNlIE1hcHBpbmcgQWdlbmN5LCBIeWRyb2dyYXBoaWMvVG9wb2dyYXBoaWMg
+ Q2VudGVyLCAxOTk0LiIsInN1YmplY3QiOlsiTmV3IFdhdGVyd2F5IChOZXRo
+ ZXJsYW5kcynigJROYXZpZ2F0aW9uIiwiRXVyb3Bvb3J0IChSb3R0ZXJkYW0s
+ IE5ldGhlcmxhbmRzKeKAlE1hcHMiLCJOb3J0aCBTZWHigJROYXZpZ2F0aW9u
+ Il0sImNvdmVyYWdlIjoibm9ydGhsaW1pdD01Mi4wMjQxNjc7IGVhc3RsaW1p
+ dD0wMDQuMzQxNjY3OyBzb3V0aGxpbWl0PTUxLjkyMDAwMDsgd2VzdGxpbWl0
+ PTAwMy45NjY2Njc7IHVuaXRzPWRlZ3JlZXM7IHByb2plY3Rpb249RVBTRzo0
+ MzI2IiwiY2FydG9ncmFwaGVyIjoiVW5pdGVkIFN0YXRlcy4gRGVmZW5zZSBN
+ YXBwaW5nIEFnZW5jeS4gSHlkcm9ncmFwaGljL1RvcG9ncmFwaGljIENlbnRl
+ ciIsImNyZWF0ZWQiOiIxOTk0LTAxLTAxVDAwOjAwOjAwWiIsImRhdGUiOiIx
+ OTk0In0=
+ http_version:
+ recorded_at: Thu, 23 Feb 2017 18:32:41 GMT
+- request:
+ method: get
+ uri: http://bibdata.princeton.edu/context.json
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - application/ld+json, application/json
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 302
+ message: Found
+ headers:
+ Date:
+ - Thu, 23 Feb 2017 18:32:41 GMT
+ Server:
+ - Apache/2.4.7 (Ubuntu)
+ Location:
+ - https://bibdata.princeton.edu/context.json
+ Content-Length:
+ - '312'
+ Content-Type:
+ - text/html; charset=iso-8859-1
+ body:
+ encoding: UTF-8
+ string: |
+
+
+ 302 Found
+
+ Found
+ The document has moved here.
+
+ Apache/2.4.7 (Ubuntu) Server at bibdata.princeton.edu Port 80
+
+ http_version:
+ recorded_at: Thu, 23 Feb 2017 18:32:41 GMT
+- request:
+ method: get
+ uri: https://bibdata.princeton.edu/context.json
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - application/ld+json, application/json
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Thu, 23 Feb 2017 18:32:42 GMT
+ Server:
+ - Apache/2.4.7 (Ubuntu)
+ Last-Modified:
+ - Thu, 23 Feb 2017 17:53:44 GMT
+ Etag:
+ - '"73ba-549364b4dba00"'
+ Accept-Ranges:
+ - bytes
+ Content-Length:
+ - '29626'
+ Content-Type:
+ - application/json
+ body:
+ encoding: UTF-8
+ string: |
+ {
+ "@context": {
+ "id" : "@id",
+ "bf": "http://id.loc.gov/ontologies/bibframe/",
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "dcterms": "http://purl.org/dc/terms/",
+ "mrel": "http://id.loc.gov/vocabulary/relators/",
+ "pulterms": "http://library.princeton.edu/terms/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+
+ "contributor": {"@id": "dc:contributor"},
+ "coverage": {"@id": "dc:coverage"},
+ "creator": {"@id": "dc:creator"},
+ "date": {"@id": "dc:date"},
+ "description": {"@id": "dc:description"},
+ "format": {"@id": "dc:format"},
+ "identifier": {"@id": "dc:identifier"},
+ "language": {"@id": "dc:language"},
+ "publisher": {"@id": "dc:publisher"},
+ "relation": {"@id": "dc:relation"},
+ "rights": {"@id": "dc:rights"},
+ "source": {"@id": "dc:source"},
+ "subject": {"@id": "dc:subject"},
+ "type": {"@id": "dc:type"},
+
+ "created": {"@id": "dcterms:created"},
+ "extent": {"@id": "dcterms:extent"},
+ "modified": {"@id": "dcterms:modified"},
+ "title": {"@id": "dcterms:title"},
+
+ "edition": {"@id": "bf:editionStatement"},
+ "call_number": {"@id": "pulterms:call_number"},
+
+ "abridger": {
+ "@id": "mrel:abr"
+ },
+ "actor": {
+ "@id": "mrel:act"
+ },
+ "adapter": {
+ "@id": "mrel:adp"
+ },
+ "addressee": {
+ "@id": "mrel:rcp"
+ },
+ "analyst": {
+ "@id": "mrel:anl"
+ },
+ "animator": {
+ "@id": "mrel:anm"
+ },
+ "annotator": {
+ "@id": "mrel:ann"
+ },
+ "appellant": {
+ "@id": "mrel:apl"
+ },
+ "appellee": {
+ "@id": "mrel:ape"
+ },
+ "applicant": {
+ "@id": "mrel:app"
+ },
+ "architect": {
+ "@id": "mrel:arc"
+ },
+ "arranger": {
+ "@id": "mrel:arr"
+ },
+ "art_copyist": {
+ "@id": "mrel:acp"
+ },
+ "art_director": {
+ "@id": "mrel:adi"
+ },
+ "artist": {
+ "@id": "mrel:art"
+ },
+ "artistic_director": {
+ "@id": "mrel:ard"
+ },
+ "assignee": {
+ "@id": "mrel:asg"
+ },
+ "associated_name": {
+ "@id": "mrel:asn"
+ },
+ "attributed_name": {
+ "@id": "mrel:att"
+ },
+ "auctioneer": {
+ "@id": "mrel:auc"
+ },
+ "author": {
+ "@id": "mrel:aut"
+ },
+ "author_in_quotations_or_text_abstracts": {
+ "@id": "mrel:aqt"
+ },
+ "author_of_afterword_colophon_etc": {
+ "@id": "mrel:aft"
+ },
+ "author_of_dialog": {
+ "@id": "mrel:aud"
+ },
+ "author_of_introduction_etc": {
+ "@id": "mrel:aui"
+ },
+ "autographer": {
+ "@id": "mrel:ato"
+ },
+ "bibliographic_antecedent": {
+ "@id": "mrel:ant"
+ },
+ "binder": {
+ "@id": "mrel:bnd"
+ },
+ "binding_designer": {
+ "@id": "mrel:bdd"
+ },
+ "blurb_writer": {
+ "@id": "mrel:blw"
+ },
+ "book_designer": {
+ "@id": "mrel:bkd"
+ },
+ "book_producer": {
+ "@id": "mrel:bkp"
+ },
+ "bookjacket_designer": {
+ "@id": "mrel:bjd"
+ },
+ "bookplate_designer": {
+ "@id": "mrel:bpd"
+ },
+ "bookseller": {
+ "@id": "mrel:bsl"
+ },
+ "braille_embosser": {
+ "@id": "mrel:brl"
+ },
+ "broadcaster": {
+ "@id": "mrel:brd"
+ },
+ "calligrapher": {
+ "@id": "mrel:cll"
+ },
+ "cartographer": {
+ "@id": "mrel:ctg"
+ },
+ "caster": {
+ "@id": "mrel:cas"
+ },
+ "censor": {
+ "@id": "mrel:cns"
+ },
+ "choreographer": {
+ "@id": "mrel:chr"
+ },
+ "cinematographer": {
+ "@id": "mrel:cng"
+ },
+ "client": {
+ "@id": "mrel:cli"
+ },
+ "collection_registrar": {
+ "@id": "mrel:cor"
+ },
+ "collector": {
+ "@id": "mrel:col"
+ },
+ "collotyper": {
+ "@id": "mrel:clt"
+ },
+ "colorist": {
+ "@id": "mrel:clr"
+ },
+ "commentator": {
+ "@id": "mrel:cmm"
+ },
+ "commentator_for_written_text": {
+ "@id": "mrel:cwt"
+ },
+ "compiler": {
+ "@id": "mrel:com"
+ },
+ "complainant": {
+ "@id": "mrel:cpl"
+ },
+ "complainant_appellant": {
+ "@id": "mrel:cpt"
+ },
+ "complainant_appellee": {
+ "@id": "mrel:cpe"
+ },
+ "composer": {
+ "@id": "mrel:cmp"
+ },
+ "compositor": {
+ "@id": "mrel:cmt"
+ },
+ "conceptor": {
+ "@id": "mrel:ccp"
+ },
+ "conductor": {
+ "@id": "mrel:cnd"
+ },
+ "conservator": {
+ "@id": "mrel:con"
+ },
+ "consultant": {
+ "@id": "mrel:csl"
+ },
+ "consultant_to_a_project": {
+ "@id": "mrel:csp"
+ },
+ "contestant": {
+ "@id": "mrel:cos"
+ },
+ "contestant_appellant": {
+ "@id": "mrel:cot"
+ },
+ "contestant_appellee": {
+ "@id": "mrel:coe"
+ },
+ "contestee": {
+ "@id": "mrel:cts"
+ },
+ "contestee_appellant": {
+ "@id": "mrel:ctt"
+ },
+ "contestee_appellee": {
+ "@id": "mrel:cte"
+ },
+ "contractor": {
+ "@id": "mrel:ctr"
+ },
+ "copyright_claimant": {
+ "@id": "mrel:cpc"
+ },
+ "copyright_holder": {
+ "@id": "mrel:cph"
+ },
+ "corrector": {
+ "@id": "mrel:crr"
+ },
+ "correspondent": {
+ "@id": "mrel:crp"
+ },
+ "costume_designer": {
+ "@id": "mrel:cst"
+ },
+ "court_governed": {
+ "@id": "mrel:cou"
+ },
+ "court_reporter": {
+ "@id": "mrel:crt"
+ },
+ "cover_designer": {
+ "@id": "mrel:cov"
+ },
+ "curator": {
+ "@id": "mrel:cur"
+ },
+ "dancer": {
+ "@id": "mrel:dnc"
+ },
+ "data_contributor": {
+ "@id": "mrel:dtc"
+ },
+ "data_manager": {
+ "@id": "mrel:dtm"
+ },
+ "dedicatee": {
+ "@id": "mrel:dte"
+ },
+ "dedicator": {
+ "@id": "mrel:dto"
+ },
+ "defendant": {
+ "@id": "mrel:dfd"
+ },
+ "defendant_appellant": {
+ "@id": "mrel:dft"
+ },
+ "defendant_appellee": {
+ "@id": "mrel:dfe"
+ },
+ "degree_granting_institution": {
+ "@id": "mrel:dgg"
+ },
+ "degree_supervisor": {
+ "@id": "mrel:dgs"
+ },
+ "delineator": {
+ "@id": "mrel:dln"
+ },
+ "depicted": {
+ "@id": "mrel:dpc"
+ },
+ "depositor": {
+ "@id": "mrel:dpt"
+ },
+ "designer": {
+ "@id": "mrel:dsr"
+ },
+ "director": {
+ "@id": "mrel:drt"
+ },
+ "dissertant": {
+ "@id": "mrel:dis"
+ },
+ "distribution_place": {
+ "@id": "mrel:dbp"
+ },
+ "distributor": {
+ "@id": "mrel:dst"
+ },
+ "donor": {
+ "@id": "mrel:dnr"
+ },
+ "draftsman": {
+ "@id": "mrel:drm"
+ },
+ "dubious_author": {
+ "@id": "mrel:dub"
+ },
+ "editor": {
+ "@id": "mrel:edt"
+ },
+ "editor_of_compilation": {
+ "@id": "mrel:edc"
+ },
+ "editor_of_moving_image_work": {
+ "@id": "mrel:edm"
+ },
+ "electrician": {
+ "@id": "mrel:elg"
+ },
+ "electrotyper": {
+ "@id": "mrel:elt"
+ },
+ "enacting_jurisdiction": {
+ "@id": "mrel:enj"
+ },
+ "engineer": {
+ "@id": "mrel:eng"
+ },
+ "engraver": {
+ "@id": "mrel:egr"
+ },
+ "etcher": {
+ "@id": "mrel:etr"
+ },
+ "event_place": {
+ "@id": "mrel:evp"
+ },
+ "expert": {
+ "@id": "mrel:exp"
+ },
+ "facsimilist": {
+ "@id": "mrel:fac"
+ },
+ "field_director": {
+ "@id": "mrel:fld"
+ },
+ "film_distributor": {
+ "@id": "mrel:fds"
+ },
+ "film_director": {
+ "@id": "mrel:fmd"
+ },
+ "film_editor": {
+ "@id": "mrel:flm"
+ },
+ "film_producer": {
+ "@id": "mrel:fmp"
+ },
+ "filmmaker": {
+ "@id": "mrel:fmk"
+ },
+ "first_party": {
+ "@id": "mrel:fpy"
+ },
+ "forger": {
+ "@id": "mrel:frg"
+ },
+ "former_owner": {
+ "@id": "mrel:fmo"
+ },
+ "funder": {
+ "@id": "mrel:fnd"
+ },
+ "geographic_information_specialist": {
+ "@id": "mrel:gis"
+ },
+ "honoree": {
+ "@id": "mrel:hnr"
+ },
+ "host": {
+ "@id": "mrel:hst"
+ },
+ "host_institution": {
+ "@id": "mrel:his"
+ },
+ "illuminator": {
+ "@id": "mrel:ilu"
+ },
+ "illustrator": {
+ "@id": "mrel:ill"
+ },
+ "inscriber": {
+ "@id": "mrel:ins"
+ },
+ "instrumentalist": {
+ "@id": "mrel:itr"
+ },
+ "interviewee": {
+ "@id": "mrel:ive"
+ },
+ "interviewer": {
+ "@id": "mrel:ivr"
+ },
+ "inventor": {
+ "@id": "mrel:inv"
+ },
+ "issuing_body": {
+ "@id": "mrel:isb"
+ },
+ "judge": {
+ "@id": "mrel:jud"
+ },
+ "jurisdiction_governed": {
+ "@id": "mrel:jug"
+ },
+ "laboratory": {
+ "@id": "mrel:lbr"
+ },
+ "laboratory_director": {
+ "@id": "mrel:ldr"
+ },
+ "landscape_architect": {
+ "@id": "mrel:lsa"
+ },
+ "lead": {
+ "@id": "mrel:led"
+ },
+ "lender": {
+ "@id": "mrel:len"
+ },
+ "libelant": {
+ "@id": "mrel:lil"
+ },
+ "libelant_appellant": {
+ "@id": "mrel:lit"
+ },
+ "libelant_appellee": {
+ "@id": "mrel:lie"
+ },
+ "libelee": {
+ "@id": "mrel:lel"
+ },
+ "libelee_appellant": {
+ "@id": "mrel:let"
+ },
+ "libelee_appellee": {
+ "@id": "mrel:lee"
+ },
+ "librettist": {
+ "@id": "mrel:lbt"
+ },
+ "licensee": {
+ "@id": "mrel:lse"
+ },
+ "licensor": {
+ "@id": "mrel:lso"
+ },
+ "lighting_designer": {
+ "@id": "mrel:lgd"
+ },
+ "lithographer": {
+ "@id": "mrel:ltg"
+ },
+ "lyricist": {
+ "@id": "mrel:lyr"
+ },
+ "manufacture_place": {
+ "@id": "mrel:mfp"
+ },
+ "manufacturer": {
+ "@id": "mrel:mfr"
+ },
+ "marbler": {
+ "@id": "mrel:mrb"
+ },
+ "markup_editor": {
+ "@id": "mrel:mrk"
+ },
+ "medium": {
+ "@id": "mrel:med"
+ },
+ "metadata_contact": {
+ "@id": "mrel:mdc"
+ },
+ "metal_engraver": {
+ "@id": "mrel:mte"
+ },
+ "minute_taker": {
+ "@id": "mrel:mtk"
+ },
+ "moderator": {
+ "@id": "mrel:mod"
+ },
+ "monitor": {
+ "@id": "mrel:mon"
+ },
+ "music_copyist": {
+ "@id": "mrel:mcp"
+ },
+ "musical_director": {
+ "@id": "mrel:msd"
+ },
+ "musician": {
+ "@id": "mrel:mus"
+ },
+ "narrator": {
+ "@id": "mrel:nrt"
+ },
+ "onscreen_presenter": {
+ "@id": "mrel:osp"
+ },
+ "opponent": {
+ "@id": "mrel:opn"
+ },
+ "organizer": {
+ "@id": "mrel:orm"
+ },
+ "originator": {
+ "@id": "mrel:org"
+ },
+ "other": {
+ "@id": "mrel:oth"
+ },
+ "owner": {
+ "@id": "mrel:own"
+ },
+ "panelist": {
+ "@id": "mrel:pan"
+ },
+ "papermaker": {
+ "@id": "mrel:ppm"
+ },
+ "patent_applicant": {
+ "@id": "mrel:pta"
+ },
+ "patent_holder": {
+ "@id": "mrel:pth"
+ },
+ "patron": {
+ "@id": "mrel:pat"
+ },
+ "performer": {
+ "@id": "mrel:prf"
+ },
+ "permitting_agency": {
+ "@id": "mrel:pma"
+ },
+ "photographer": {
+ "@id": "mrel:pht"
+ },
+ "plaintiff": {
+ "@id": "mrel:ptf"
+ },
+ "plaintiff_appellant": {
+ "@id": "mrel:ptt"
+ },
+ "plaintiff_appellee": {
+ "@id": "mrel:pte"
+ },
+ "platemaker": {
+ "@id": "mrel:plt"
+ },
+ "praeses": {
+ "@id": "mrel:pra"
+ },
+ "presenter": {
+ "@id": "mrel:pre"
+ },
+ "printer": {
+ "@id": "mrel:prt"
+ },
+ "printer_of_plates": {
+ "@id": "mrel:pop"
+ },
+ "printmaker": {
+ "@id": "mrel:prm"
+ },
+ "process_contact": {
+ "@id": "mrel:prc"
+ },
+ "producer": {
+ "@id": "mrel:pro"
+ },
+ "production_company": {
+ "@id": "mrel:prn"
+ },
+ "production_designer": {
+ "@id": "mrel:prs"
+ },
+ "production_manager": {
+ "@id": "mrel:pmn"
+ },
+ "production_personnel": {
+ "@id": "mrel:prd"
+ },
+ "production_place": {
+ "@id": "mrel:prp"
+ },
+ "programmer": {
+ "@id": "mrel:prg"
+ },
+ "project_director": {
+ "@id": "mrel:pdr"
+ },
+ "proofreader": {
+ "@id": "mrel:pfr"
+ },
+ "provider": {
+ "@id": "mrel:prv"
+ },
+ "publication_place": {
+ "@id": "mrel:pup"
+ },
+ "publishing_director": {
+ "@id": "mrel:pbd"
+ },
+ "puppeteer": {
+ "@id": "mrel:ppt"
+ },
+ "radio_director": {
+ "@id": "mrel:rdd"
+ },
+ "radio_producer": {
+ "@id": "mrel:rpc"
+ },
+ "recording_engineer": {
+ "@id": "mrel:rce"
+ },
+ "recordist": {
+ "@id": "mrel:rcd"
+ },
+ "redaktor": {
+ "@id": "mrel:red"
+ },
+ "renderer": {
+ "@id": "mrel:ren"
+ },
+ "reporter": {
+ "@id": "mrel:rpt"
+ },
+ "repository": {
+ "@id": "mrel:rps"
+ },
+ "research_team_head": {
+ "@id": "mrel:rth"
+ },
+ "research_team_member": {
+ "@id": "mrel:rtm"
+ },
+ "researcher": {
+ "@id": "mrel:res"
+ },
+ "respondent": {
+ "@id": "mrel:rsp"
+ },
+ "respondent_appellant": {
+ "@id": "mrel:rst"
+ },
+ "respondent_appellee": {
+ "@id": "mrel:rse"
+ },
+ "responsible_party": {
+ "@id": "mrel:rpy"
+ },
+ "restager": {
+ "@id": "mrel:rsg"
+ },
+ "restorationist": {
+ "@id": "mrel:rsr"
+ },
+ "reviewer": {
+ "@id": "mrel:rev"
+ },
+ "rubricator": {
+ "@id": "mrel:rbr"
+ },
+ "scenarist": {
+ "@id": "mrel:sce"
+ },
+ "scientific_advisor": {
+ "@id": "mrel:sad"
+ },
+ "screenwriter": {
+ "@id": "mrel:aus"
+ },
+ "scribe": {
+ "@id": "mrel:scr"
+ },
+ "sculptor": {
+ "@id": "mrel:scl"
+ },
+ "second_party": {
+ "@id": "mrel:spy"
+ },
+ "secretary": {
+ "@id": "mrel:sec"
+ },
+ "seller": {
+ "@id": "mrel:sll"
+ },
+ "set_designer": {
+ "@id": "mrel:std"
+ },
+ "setting": {
+ "@id": "mrel:stg"
+ },
+ "signer": {
+ "@id": "mrel:sgn"
+ },
+ "singer": {
+ "@id": "mrel:sng"
+ },
+ "sound_designer": {
+ "@id": "mrel:sds"
+ },
+ "speaker": {
+ "@id": "mrel:spk"
+ },
+ "sponsor": {
+ "@id": "mrel:spn"
+ },
+ "stage_director": {
+ "@id": "mrel:sgd"
+ },
+ "stage_manager": {
+ "@id": "mrel:stm"
+ },
+ "standards_body": {
+ "@id": "mrel:stn"
+ },
+ "stereotyper": {
+ "@id": "mrel:str"
+ },
+ "storyteller": {
+ "@id": "mrel:stl"
+ },
+ "supporting_host": {
+ "@id": "mrel:sht"
+ },
+ "surveyor": {
+ "@id": "mrel:srv"
+ },
+ "teacher": {
+ "@id": "mrel:tch"
+ },
+ "technical_director": {
+ "@id": "mrel:tcd"
+ },
+ "television_director": {
+ "@id": "mrel:tld"
+ },
+ "television_producer": {
+ "@id": "mrel:tlp"
+ },
+ "thesis_advisor": {
+ "@id": "mrel:ths"
+ },
+ "transcriber": {
+ "@id": "mrel:trc"
+ },
+ "translator": {
+ "@id": "mrel:trl"
+ },
+ "type_designer": {
+ "@id": "mrel:tyd"
+ },
+ "typographer": {
+ "@id": "mrel:tyg"
+ },
+ "university_place": {
+ "@id": "mrel:uvp"
+ },
+ "videographer": {
+ "@id": "mrel:vdg"
+ },
+ "voice_actor": {
+ "@id": "mrel:vac"
+ },
+ "witness": {
+ "@id": "mrel:wit"
+ },
+ "wood_engraver": {
+ "@id": "mrel:wde"
+ },
+ "woodcutter": {
+ "@id": "mrel:wdc"
+ },
+ "writer_of_accompanying_material": {
+ "@id": "mrel:wam"
+ },
+ "writer_of_added_commentary": {
+ "@id": "mrel:wac"
+ },
+ "writer_of_added_text": {
+ "@id": "mrel:wat"
+ },
+ "writer_of_added_lyrics": {
+ "@id": "mrel:wal"
+ },
+ "writer_of_supplementary_textual_content": {
+ "@id": "mrel:wst"
+ },
+ "writer_of_introduction": {
+ "@id": "mrel:win"
+ },
+ "writer_of_preface": {
+ "@id": "mrel:wpr"
+ },
+ "abridger": {
+ "@id": "mrel:abr"
+ },
+ "actor": {
+ "@id": "mrel:act"
+ },
+ "adapter": {
+ "@id": "mrel:adp"
+ },
+ "addressee": {
+ "@id": "mrel:rcp"
+ },
+ "analyst": {
+ "@id": "mrel:anl"
+ },
+ "animator": {
+ "@id": "mrel:anm"
+ },
+ "annotator": {
+ "@id": "mrel:ann"
+ },
+ "appellant": {
+ "@id": "mrel:apl"
+ },
+ "appellee": {
+ "@id": "mrel:ape"
+ },
+ "applicant": {
+ "@id": "mrel:app"
+ },
+ "architect": {
+ "@id": "mrel:arc"
+ },
+ "arranger": {
+ "@id": "mrel:arr"
+ },
+ "art_copyist": {
+ "@id": "mrel:acp"
+ },
+ "art_director": {
+ "@id": "mrel:adi"
+ },
+ "artist": {
+ "@id": "mrel:art"
+ },
+ "artistic_director": {
+ "@id": "mrel:ard"
+ },
+ "assignee": {
+ "@id": "mrel:asg"
+ },
+ "associated_name": {
+ "@id": "mrel:asn"
+ },
+ "attributed_name": {
+ "@id": "mrel:att"
+ },
+ "auctioneer": {
+ "@id": "mrel:auc"
+ },
+ "author": {
+ "@id": "mrel:aut"
+ },
+ "author_in_quotations_or_text_abstracts": {
+ "@id": "mrel:aqt"
+ },
+ "author_of_afterword_colophon_etc": {
+ "@id": "mrel:aft"
+ },
+ "author_of_dialog": {
+ "@id": "mrel:aud"
+ },
+ "author_of_introduction_etc": {
+ "@id": "mrel:aui"
+ },
+ "autographer": {
+ "@id": "mrel:ato"
+ },
+ "bibliographic_antecedent": {
+ "@id": "mrel:ant"
+ },
+ "binder": {
+ "@id": "mrel:bnd"
+ },
+ "binding_designer": {
+ "@id": "mrel:bdd"
+ },
+ "blurb_writer": {
+ "@id": "mrel:blw"
+ },
+ "book_designer": {
+ "@id": "mrel:bkd"
+ },
+ "book_producer": {
+ "@id": "mrel:bkp"
+ },
+ "bookjacket_designer": {
+ "@id": "mrel:bjd"
+ },
+ "bookplate_designer": {
+ "@id": "mrel:bpd"
+ },
+ "bookseller": {
+ "@id": "mrel:bsl"
+ },
+ "braille_embosser": {
+ "@id": "mrel:brl"
+ },
+ "broadcaster": {
+ "@id": "mrel:brd"
+ },
+ "calligrapher": {
+ "@id": "mrel:cll"
+ },
+ "cartographer": {
+ "@id": "mrel:ctg"
+ },
+ "caster": {
+ "@id": "mrel:cas"
+ },
+ "censor": {
+ "@id": "mrel:cns"
+ },
+ "choreographer": {
+ "@id": "mrel:chr"
+ },
+ "cinematographer": {
+ "@id": "mrel:cng"
+ },
+ "client": {
+ "@id": "mrel:cli"
+ },
+ "collection_registrar": {
+ "@id": "mrel:cor"
+ },
+ "collector": {
+ "@id": "mrel:col"
+ },
+ "collotyper": {
+ "@id": "mrel:clt"
+ },
+ "colorist": {
+ "@id": "mrel:clr"
+ },
+ "commentator": {
+ "@id": "mrel:cmm"
+ },
+ "commentator_for_written_text": {
+ "@id": "mrel:cwt"
+ },
+ "compiler": {
+ "@id": "mrel:com"
+ },
+ "complainant": {
+ "@id": "mrel:cpl"
+ },
+ "complainant_appellant": {
+ "@id": "mrel:cpt"
+ },
+ "complainant_appellee": {
+ "@id": "mrel:cpe"
+ },
+ "composer": {
+ "@id": "mrel:cmp"
+ },
+ "compositor": {
+ "@id": "mrel:cmt"
+ },
+ "conceptor": {
+ "@id": "mrel:ccp"
+ },
+ "conductor": {
+ "@id": "mrel:cnd"
+ },
+ "conservator": {
+ "@id": "mrel:con"
+ },
+ "consultant": {
+ "@id": "mrel:csl"
+ },
+ "consultant_to_a_project": {
+ "@id": "mrel:csp"
+ },
+ "contestant": {
+ "@id": "mrel:cos"
+ },
+ "contestant_appellant": {
+ "@id": "mrel:cot"
+ },
+ "contestant_appellee": {
+ "@id": "mrel:coe"
+ },
+ "contestee": {
+ "@id": "mrel:cts"
+ },
+ "contestee_appellant": {
+ "@id": "mrel:ctt"
+ },
+ "contestee_appellee": {
+ "@id": "mrel:cte"
+ },
+ "contractor": {
+ "@id": "mrel:ctr"
+ },
+ "copyright_claimant": {
+ "@id": "mrel:cpc"
+ },
+ "copyright_holder": {
+ "@id": "mrel:cph"
+ },
+ "corrector": {
+ "@id": "mrel:crr"
+ },
+ "correspondent": {
+ "@id": "mrel:crp"
+ },
+ "costume_designer": {
+ "@id": "mrel:cst"
+ },
+ "court_governed": {
+ "@id": "mrel:cou"
+ },
+ "court_reporter": {
+ "@id": "mrel:crt"
+ },
+ "cover_designer": {
+ "@id": "mrel:cov"
+ },
+ "curator": {
+ "@id": "mrel:cur"
+ },
+ "dancer": {
+ "@id": "mrel:dnc"
+ },
+ "data_contributor": {
+ "@id": "mrel:dtc"
+ },
+ "data_manager": {
+ "@id": "mrel:dtm"
+ },
+ "dedicatee": {
+ "@id": "mrel:dte"
+ },
+ "dedicator": {
+ "@id": "mrel:dto"
+ },
+ "defendant": {
+ "@id": "mrel:dfd"
+ },
+ "defendant_appellant": {
+ "@id": "mrel:dft"
+ },
+ "defendant_appellee": {
+ "@id": "mrel:dfe"
+ },
+ "degree_granting_institution": {
+ "@id": "mrel:dgg"
+ },
+ "degree_supervisor": {
+ "@id": "mrel:dgs"
+ },
+ "delineator": {
+ "@id": "mrel:dln"
+ },
+ "depicted": {
+ "@id": "mrel:dpc"
+ },
+ "depositor": {
+ "@id": "mrel:dpt"
+ },
+ "designer": {
+ "@id": "mrel:dsr"
+ },
+ "director": {
+ "@id": "mrel:drt"
+ },
+ "dissertant": {
+ "@id": "mrel:dis"
+ },
+ "distribution_place": {
+ "@id": "mrel:dbp"
+ },
+ "distributor": {
+ "@id": "mrel:dst"
+ },
+ "donor": {
+ "@id": "mrel:dnr"
+ },
+ "draftsman": {
+ "@id": "mrel:drm"
+ },
+ "dubious_author": {
+ "@id": "mrel:dub"
+ },
+ "editor": {
+ "@id": "mrel:edt"
+ },
+ "editor_of_compilation": {
+ "@id": "mrel:edc"
+ },
+ "editor_of_moving_image_work": {
+ "@id": "mrel:edm"
+ },
+ "electrician": {
+ "@id": "mrel:elg"
+ },
+ "electrotyper": {
+ "@id": "mrel:elt"
+ },
+ "enacting_jurisdiction": {
+ "@id": "mrel:enj"
+ },
+ "engineer": {
+ "@id": "mrel:eng"
+ },
+ "engraver": {
+ "@id": "mrel:egr"
+ },
+ "etcher": {
+ "@id": "mrel:etr"
+ },
+ "event_place": {
+ "@id": "mrel:evp"
+ },
+ "expert": {
+ "@id": "mrel:exp"
+ },
+ "facsimilist": {
+ "@id": "mrel:fac"
+ },
+ "field_director": {
+ "@id": "mrel:fld"
+ },
+ "film_distributor": {
+ "@id": "mrel:fds"
+ },
+ "film_director": {
+ "@id": "mrel:fmd"
+ },
+ "film_editor": {
+ "@id": "mrel:flm"
+ },
+ "film_producer": {
+ "@id": "mrel:fmp"
+ },
+ "filmmaker": {
+ "@id": "mrel:fmk"
+ },
+ "first_party": {
+ "@id": "mrel:fpy"
+ },
+ "forger": {
+ "@id": "mrel:frg"
+ },
+ "former_owner": {
+ "@id": "mrel:fmo"
+ },
+ "funder": {
+ "@id": "mrel:fnd"
+ },
+ "geographic_information_specialist": {
+ "@id": "mrel:gis"
+ },
+ "honoree": {
+ "@id": "mrel:hnr"
+ },
+ "host": {
+ "@id": "mrel:hst"
+ },
+ "host_institution": {
+ "@id": "mrel:his"
+ },
+ "illuminator": {
+ "@id": "mrel:ilu"
+ },
+ "illustrator": {
+ "@id": "mrel:ill"
+ },
+ "inscriber": {
+ "@id": "mrel:ins"
+ },
+ "instrumentalist": {
+ "@id": "mrel:itr"
+ },
+ "interviewee": {
+ "@id": "mrel:ive"
+ },
+ "interviewer": {
+ "@id": "mrel:ivr"
+ },
+ "inventor": {
+ "@id": "mrel:inv"
+ },
+ "issuing_body": {
+ "@id": "mrel:isb"
+ },
+ "judge": {
+ "@id": "mrel:jud"
+ },
+ "jurisdiction_governed": {
+ "@id": "mrel:jug"
+ },
+ "laboratory": {
+ "@id": "mrel:lbr"
+ },
+ "laboratory_director": {
+ "@id": "mrel:ldr"
+ },
+ "landscape_architect": {
+ "@id": "mrel:lsa"
+ },
+ "lead": {
+ "@id": "mrel:led"
+ },
+ "lender": {
+ "@id": "mrel:len"
+ },
+ "libelant": {
+ "@id": "mrel:lil"
+ },
+ "libelant_appellant": {
+ "@id": "mrel:lit"
+ },
+ "libelant_appellee": {
+ "@id": "mrel:lie"
+ },
+ "libelee": {
+ "@id": "mrel:lel"
+ },
+ "libelee_appellant": {
+ "@id": "mrel:let"
+ },
+ "libelee_appellee": {
+ "@id": "mrel:lee"
+ },
+ "librettist": {
+ "@id": "mrel:lbt"
+ },
+ "licensee": {
+ "@id": "mrel:lse"
+ },
+ "licensor": {
+ "@id": "mrel:lso"
+ },
+ "lighting_designer": {
+ "@id": "mrel:lgd"
+ },
+ "lithographer": {
+ "@id": "mrel:ltg"
+ },
+ "lyricist": {
+ "@id": "mrel:lyr"
+ },
+ "manufacture_place": {
+ "@id": "mrel:mfp"
+ },
+ "manufacturer": {
+ "@id": "mrel:mfr"
+ },
+ "marbler": {
+ "@id": "mrel:mrb"
+ },
+ "markup_editor": {
+ "@id": "mrel:mrk"
+ },
+ "medium": {
+ "@id": "mrel:med"
+ },
+ "metadata_contact": {
+ "@id": "mrel:mdc"
+ },
+ "metal_engraver": {
+ "@id": "mrel:mte"
+ },
+ "minute_taker": {
+ "@id": "mrel:mtk"
+ },
+ "moderator": {
+ "@id": "mrel:mod"
+ },
+ "monitor": {
+ "@id": "mrel:mon"
+ },
+ "music_copyist": {
+ "@id": "mrel:mcp"
+ },
+ "musical_director": {
+ "@id": "mrel:msd"
+ },
+ "musician": {
+ "@id": "mrel:mus"
+ },
+ "narrator": {
+ "@id": "mrel:nrt"
+ },
+ "onscreen_presenter": {
+ "@id": "mrel:osp"
+ },
+ "opponent": {
+ "@id": "mrel:opn"
+ },
+ "organizer": {
+ "@id": "mrel:orm"
+ },
+ "originator": {
+ "@id": "mrel:org"
+ },
+ "other": {
+ "@id": "mrel:oth"
+ },
+ "owner": {
+ "@id": "mrel:own"
+ },
+ "panelist": {
+ "@id": "mrel:pan"
+ },
+ "papermaker": {
+ "@id": "mrel:ppm"
+ },
+ "patent_applicant": {
+ "@id": "mrel:pta"
+ },
+ "patent_holder": {
+ "@id": "mrel:pth"
+ },
+ "patron": {
+ "@id": "mrel:pat"
+ },
+ "performer": {
+ "@id": "mrel:prf"
+ },
+ "permitting_agency": {
+ "@id": "mrel:pma"
+ },
+ "photographer": {
+ "@id": "mrel:pht"
+ },
+ "plaintiff": {
+ "@id": "mrel:ptf"
+ },
+ "plaintiff_appellant": {
+ "@id": "mrel:ptt"
+ },
+ "plaintiff_appellee": {
+ "@id": "mrel:pte"
+ },
+ "platemaker": {
+ "@id": "mrel:plt"
+ },
+ "praeses": {
+ "@id": "mrel:pra"
+ },
+ "presenter": {
+ "@id": "mrel:pre"
+ },
+ "printer": {
+ "@id": "mrel:prt"
+ },
+ "printer_of_plates": {
+ "@id": "mrel:pop"
+ },
+ "printmaker": {
+ "@id": "mrel:prm"
+ },
+ "process_contact": {
+ "@id": "mrel:prc"
+ },
+ "producer": {
+ "@id": "mrel:pro"
+ },
+ "production_company": {
+ "@id": "mrel:prn"
+ },
+ "production_designer": {
+ "@id": "mrel:prs"
+ },
+ "production_manager": {
+ "@id": "mrel:pmn"
+ },
+ "production_personnel": {
+ "@id": "mrel:prd"
+ },
+ "production_place": {
+ "@id": "mrel:prp"
+ },
+ "programmer": {
+ "@id": "mrel:prg"
+ },
+ "project_director": {
+ "@id": "mrel:pdr"
+ },
+ "proofreader": {
+ "@id": "mrel:pfr"
+ },
+ "provider": {
+ "@id": "mrel:prv"
+ },
+ "publication_place": {
+ "@id": "mrel:pup"
+ },
+ "publishing_director": {
+ "@id": "mrel:pbd"
+ },
+ "puppeteer": {
+ "@id": "mrel:ppt"
+ },
+ "radio_director": {
+ "@id": "mrel:rdd"
+ },
+ "radio_producer": {
+ "@id": "mrel:rpc"
+ },
+ "recording_engineer": {
+ "@id": "mrel:rce"
+ },
+ "recordist": {
+ "@id": "mrel:rcd"
+ },
+ "redaktor": {
+ "@id": "mrel:red"
+ },
+ "renderer": {
+ "@id": "mrel:ren"
+ },
+ "reporter": {
+ "@id": "mrel:rpt"
+ },
+ "repository": {
+ "@id": "mrel:rps"
+ },
+ "research_team_head": {
+ "@id": "mrel:rth"
+ },
+ "research_team_member": {
+ "@id": "mrel:rtm"
+ },
+ "researcher": {
+ "@id": "mrel:res"
+ },
+ "respondent": {
+ "@id": "mrel:rsp"
+ },
+ "respondent_appellant": {
+ "@id": "mrel:rst"
+ },
+ "respondent_appellee": {
+ "@id": "mrel:rse"
+ },
+ "responsible_party": {
+ "@id": "mrel:rpy"
+ },
+ "restager": {
+ "@id": "mrel:rsg"
+ },
+ "restorationist": {
+ "@id": "mrel:rsr"
+ },
+ "reviewer": {
+ "@id": "mrel:rev"
+ },
+ "rubricator": {
+ "@id": "mrel:rbr"
+ },
+ "scenarist": {
+ "@id": "mrel:sce"
+ },
+ "scientific_advisor": {
+ "@id": "mrel:sad"
+ },
+ "screenwriter": {
+ "@id": "mrel:aus"
+ },
+ "scribe": {
+ "@id": "mrel:scr"
+ },
+ "sculptor": {
+ "@id": "mrel:scl"
+ },
+ "second_party": {
+ "@id": "mrel:spy"
+ },
+ "secretary": {
+ "@id": "mrel:sec"
+ },
+ "seller": {
+ "@id": "mrel:sll"
+ },
+ "set_designer": {
+ "@id": "mrel:std"
+ },
+ "setting": {
+ "@id": "mrel:stg"
+ },
+ "signer": {
+ "@id": "mrel:sgn"
+ },
+ "singer": {
+ "@id": "mrel:sng"
+ },
+ "sound_designer": {
+ "@id": "mrel:sds"
+ },
+ "speaker": {
+ "@id": "mrel:spk"
+ },
+ "sponsor": {
+ "@id": "mrel:spn"
+ },
+ "stage_director": {
+ "@id": "mrel:sgd"
+ },
+ "stage_manager": {
+ "@id": "mrel:stm"
+ },
+ "standards_body": {
+ "@id": "mrel:stn"
+ },
+ "stereotyper": {
+ "@id": "mrel:str"
+ },
+ "storyteller": {
+ "@id": "mrel:stl"
+ },
+ "supporting_host": {
+ "@id": "mrel:sht"
+ },
+ "surveyor": {
+ "@id": "mrel:srv"
+ },
+ "teacher": {
+ "@id": "mrel:tch"
+ },
+ "technical_director": {
+ "@id": "mrel:tcd"
+ },
+ "television_director": {
+ "@id": "mrel:tld"
+ },
+ "television_producer": {
+ "@id": "mrel:tlp"
+ },
+ "thesis_advisor": {
+ "@id": "mrel:ths"
+ },
+ "transcriber": {
+ "@id": "mrel:trc"
+ },
+ "translator": {
+ "@id": "mrel:trl"
+ },
+ "type_designer": {
+ "@id": "mrel:tyd"
+ },
+ "typographer": {
+ "@id": "mrel:tyg"
+ },
+ "university_place": {
+ "@id": "mrel:uvp"
+ },
+ "videographer": {
+ "@id": "mrel:vdg"
+ },
+ "voice_actor": {
+ "@id": "mrel:vac"
+ },
+ "witness": {
+ "@id": "mrel:wit"
+ },
+ "wood_engraver": {
+ "@id": "mrel:wde"
+ },
+ "woodcutter": {
+ "@id": "mrel:wdc"
+ },
+ "writer_of_accompanying_material": {
+ "@id": "mrel:wam"
+ },
+ "writer_of_added_commentary": {
+ "@id": "mrel:wac"
+ },
+ "writer_of_added_text": {
+ "@id": "mrel:wat"
+ },
+ "writer_of_added_lyrics": {
+ "@id": "mrel:wal"
+ },
+ "writer_of_supplementary_textual_content": {
+ "@id": "mrel:wst"
+ },
+ "writer_of_introduction": {
+ "@id": "mrel:win"
+ },
+ "writer_of_preface": {
+ "@id": "mrel:wpr"
+ }
+ }
+ }
+ http_version:
+ recorded_at: Thu, 23 Feb 2017 18:32:42 GMT
+- request:
+ method: get
+ uri: http://bibdata.princeton.edu/context.json
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - application/ld+json, application/json
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 302
+ message: Found
+ headers:
+ Date:
+ - Thu, 23 Feb 2017 18:32:42 GMT
+ Server:
+ - Apache/2.4.7 (Ubuntu)
+ Location:
+ - https://bibdata.princeton.edu/context.json
+ Content-Length:
+ - '312'
+ Content-Type:
+ - text/html; charset=iso-8859-1
+ body:
+ encoding: UTF-8
+ string: |
+
+
+ 302 Found
+
+ Found
+ The document has moved here.
+
+ Apache/2.4.7 (Ubuntu) Server at bibdata.princeton.edu Port 80
+
+ http_version:
+ recorded_at: Thu, 23 Feb 2017 18:32:42 GMT
+- request:
+ method: get
+ uri: https://bibdata.princeton.edu/context.json
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - application/ld+json, application/json
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Thu, 23 Feb 2017 18:32:43 GMT
+ Server:
+ - Apache/2.4.7 (Ubuntu)
+ Last-Modified:
+ - Thu, 23 Feb 2017 17:53:44 GMT
+ Etag:
+ - '"73ba-549364b4dba00"'
+ Accept-Ranges:
+ - bytes
+ Content-Length:
+ - '29626'
+ Content-Type:
+ - application/json
+ body:
+ encoding: UTF-8
+ string: |
+ {
+ "@context": {
+ "id" : "@id",
+ "bf": "http://id.loc.gov/ontologies/bibframe/",
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "dcterms": "http://purl.org/dc/terms/",
+ "mrel": "http://id.loc.gov/vocabulary/relators/",
+ "pulterms": "http://library.princeton.edu/terms/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+
+ "contributor": {"@id": "dc:contributor"},
+ "coverage": {"@id": "dc:coverage"},
+ "creator": {"@id": "dc:creator"},
+ "date": {"@id": "dc:date"},
+ "description": {"@id": "dc:description"},
+ "format": {"@id": "dc:format"},
+ "identifier": {"@id": "dc:identifier"},
+ "language": {"@id": "dc:language"},
+ "publisher": {"@id": "dc:publisher"},
+ "relation": {"@id": "dc:relation"},
+ "rights": {"@id": "dc:rights"},
+ "source": {"@id": "dc:source"},
+ "subject": {"@id": "dc:subject"},
+ "type": {"@id": "dc:type"},
+
+ "created": {"@id": "dcterms:created"},
+ "extent": {"@id": "dcterms:extent"},
+ "modified": {"@id": "dcterms:modified"},
+ "title": {"@id": "dcterms:title"},
+
+ "edition": {"@id": "bf:editionStatement"},
+ "call_number": {"@id": "pulterms:call_number"},
+
+ "abridger": {
+ "@id": "mrel:abr"
+ },
+ "actor": {
+ "@id": "mrel:act"
+ },
+ "adapter": {
+ "@id": "mrel:adp"
+ },
+ "addressee": {
+ "@id": "mrel:rcp"
+ },
+ "analyst": {
+ "@id": "mrel:anl"
+ },
+ "animator": {
+ "@id": "mrel:anm"
+ },
+ "annotator": {
+ "@id": "mrel:ann"
+ },
+ "appellant": {
+ "@id": "mrel:apl"
+ },
+ "appellee": {
+ "@id": "mrel:ape"
+ },
+ "applicant": {
+ "@id": "mrel:app"
+ },
+ "architect": {
+ "@id": "mrel:arc"
+ },
+ "arranger": {
+ "@id": "mrel:arr"
+ },
+ "art_copyist": {
+ "@id": "mrel:acp"
+ },
+ "art_director": {
+ "@id": "mrel:adi"
+ },
+ "artist": {
+ "@id": "mrel:art"
+ },
+ "artistic_director": {
+ "@id": "mrel:ard"
+ },
+ "assignee": {
+ "@id": "mrel:asg"
+ },
+ "associated_name": {
+ "@id": "mrel:asn"
+ },
+ "attributed_name": {
+ "@id": "mrel:att"
+ },
+ "auctioneer": {
+ "@id": "mrel:auc"
+ },
+ "author": {
+ "@id": "mrel:aut"
+ },
+ "author_in_quotations_or_text_abstracts": {
+ "@id": "mrel:aqt"
+ },
+ "author_of_afterword_colophon_etc": {
+ "@id": "mrel:aft"
+ },
+ "author_of_dialog": {
+ "@id": "mrel:aud"
+ },
+ "author_of_introduction_etc": {
+ "@id": "mrel:aui"
+ },
+ "autographer": {
+ "@id": "mrel:ato"
+ },
+ "bibliographic_antecedent": {
+ "@id": "mrel:ant"
+ },
+ "binder": {
+ "@id": "mrel:bnd"
+ },
+ "binding_designer": {
+ "@id": "mrel:bdd"
+ },
+ "blurb_writer": {
+ "@id": "mrel:blw"
+ },
+ "book_designer": {
+ "@id": "mrel:bkd"
+ },
+ "book_producer": {
+ "@id": "mrel:bkp"
+ },
+ "bookjacket_designer": {
+ "@id": "mrel:bjd"
+ },
+ "bookplate_designer": {
+ "@id": "mrel:bpd"
+ },
+ "bookseller": {
+ "@id": "mrel:bsl"
+ },
+ "braille_embosser": {
+ "@id": "mrel:brl"
+ },
+ "broadcaster": {
+ "@id": "mrel:brd"
+ },
+ "calligrapher": {
+ "@id": "mrel:cll"
+ },
+ "cartographer": {
+ "@id": "mrel:ctg"
+ },
+ "caster": {
+ "@id": "mrel:cas"
+ },
+ "censor": {
+ "@id": "mrel:cns"
+ },
+ "choreographer": {
+ "@id": "mrel:chr"
+ },
+ "cinematographer": {
+ "@id": "mrel:cng"
+ },
+ "client": {
+ "@id": "mrel:cli"
+ },
+ "collection_registrar": {
+ "@id": "mrel:cor"
+ },
+ "collector": {
+ "@id": "mrel:col"
+ },
+ "collotyper": {
+ "@id": "mrel:clt"
+ },
+ "colorist": {
+ "@id": "mrel:clr"
+ },
+ "commentator": {
+ "@id": "mrel:cmm"
+ },
+ "commentator_for_written_text": {
+ "@id": "mrel:cwt"
+ },
+ "compiler": {
+ "@id": "mrel:com"
+ },
+ "complainant": {
+ "@id": "mrel:cpl"
+ },
+ "complainant_appellant": {
+ "@id": "mrel:cpt"
+ },
+ "complainant_appellee": {
+ "@id": "mrel:cpe"
+ },
+ "composer": {
+ "@id": "mrel:cmp"
+ },
+ "compositor": {
+ "@id": "mrel:cmt"
+ },
+ "conceptor": {
+ "@id": "mrel:ccp"
+ },
+ "conductor": {
+ "@id": "mrel:cnd"
+ },
+ "conservator": {
+ "@id": "mrel:con"
+ },
+ "consultant": {
+ "@id": "mrel:csl"
+ },
+ "consultant_to_a_project": {
+ "@id": "mrel:csp"
+ },
+ "contestant": {
+ "@id": "mrel:cos"
+ },
+ "contestant_appellant": {
+ "@id": "mrel:cot"
+ },
+ "contestant_appellee": {
+ "@id": "mrel:coe"
+ },
+ "contestee": {
+ "@id": "mrel:cts"
+ },
+ "contestee_appellant": {
+ "@id": "mrel:ctt"
+ },
+ "contestee_appellee": {
+ "@id": "mrel:cte"
+ },
+ "contractor": {
+ "@id": "mrel:ctr"
+ },
+ "copyright_claimant": {
+ "@id": "mrel:cpc"
+ },
+ "copyright_holder": {
+ "@id": "mrel:cph"
+ },
+ "corrector": {
+ "@id": "mrel:crr"
+ },
+ "correspondent": {
+ "@id": "mrel:crp"
+ },
+ "costume_designer": {
+ "@id": "mrel:cst"
+ },
+ "court_governed": {
+ "@id": "mrel:cou"
+ },
+ "court_reporter": {
+ "@id": "mrel:crt"
+ },
+ "cover_designer": {
+ "@id": "mrel:cov"
+ },
+ "curator": {
+ "@id": "mrel:cur"
+ },
+ "dancer": {
+ "@id": "mrel:dnc"
+ },
+ "data_contributor": {
+ "@id": "mrel:dtc"
+ },
+ "data_manager": {
+ "@id": "mrel:dtm"
+ },
+ "dedicatee": {
+ "@id": "mrel:dte"
+ },
+ "dedicator": {
+ "@id": "mrel:dto"
+ },
+ "defendant": {
+ "@id": "mrel:dfd"
+ },
+ "defendant_appellant": {
+ "@id": "mrel:dft"
+ },
+ "defendant_appellee": {
+ "@id": "mrel:dfe"
+ },
+ "degree_granting_institution": {
+ "@id": "mrel:dgg"
+ },
+ "degree_supervisor": {
+ "@id": "mrel:dgs"
+ },
+ "delineator": {
+ "@id": "mrel:dln"
+ },
+ "depicted": {
+ "@id": "mrel:dpc"
+ },
+ "depositor": {
+ "@id": "mrel:dpt"
+ },
+ "designer": {
+ "@id": "mrel:dsr"
+ },
+ "director": {
+ "@id": "mrel:drt"
+ },
+ "dissertant": {
+ "@id": "mrel:dis"
+ },
+ "distribution_place": {
+ "@id": "mrel:dbp"
+ },
+ "distributor": {
+ "@id": "mrel:dst"
+ },
+ "donor": {
+ "@id": "mrel:dnr"
+ },
+ "draftsman": {
+ "@id": "mrel:drm"
+ },
+ "dubious_author": {
+ "@id": "mrel:dub"
+ },
+ "editor": {
+ "@id": "mrel:edt"
+ },
+ "editor_of_compilation": {
+ "@id": "mrel:edc"
+ },
+ "editor_of_moving_image_work": {
+ "@id": "mrel:edm"
+ },
+ "electrician": {
+ "@id": "mrel:elg"
+ },
+ "electrotyper": {
+ "@id": "mrel:elt"
+ },
+ "enacting_jurisdiction": {
+ "@id": "mrel:enj"
+ },
+ "engineer": {
+ "@id": "mrel:eng"
+ },
+ "engraver": {
+ "@id": "mrel:egr"
+ },
+ "etcher": {
+ "@id": "mrel:etr"
+ },
+ "event_place": {
+ "@id": "mrel:evp"
+ },
+ "expert": {
+ "@id": "mrel:exp"
+ },
+ "facsimilist": {
+ "@id": "mrel:fac"
+ },
+ "field_director": {
+ "@id": "mrel:fld"
+ },
+ "film_distributor": {
+ "@id": "mrel:fds"
+ },
+ "film_director": {
+ "@id": "mrel:fmd"
+ },
+ "film_editor": {
+ "@id": "mrel:flm"
+ },
+ "film_producer": {
+ "@id": "mrel:fmp"
+ },
+ "filmmaker": {
+ "@id": "mrel:fmk"
+ },
+ "first_party": {
+ "@id": "mrel:fpy"
+ },
+ "forger": {
+ "@id": "mrel:frg"
+ },
+ "former_owner": {
+ "@id": "mrel:fmo"
+ },
+ "funder": {
+ "@id": "mrel:fnd"
+ },
+ "geographic_information_specialist": {
+ "@id": "mrel:gis"
+ },
+ "honoree": {
+ "@id": "mrel:hnr"
+ },
+ "host": {
+ "@id": "mrel:hst"
+ },
+ "host_institution": {
+ "@id": "mrel:his"
+ },
+ "illuminator": {
+ "@id": "mrel:ilu"
+ },
+ "illustrator": {
+ "@id": "mrel:ill"
+ },
+ "inscriber": {
+ "@id": "mrel:ins"
+ },
+ "instrumentalist": {
+ "@id": "mrel:itr"
+ },
+ "interviewee": {
+ "@id": "mrel:ive"
+ },
+ "interviewer": {
+ "@id": "mrel:ivr"
+ },
+ "inventor": {
+ "@id": "mrel:inv"
+ },
+ "issuing_body": {
+ "@id": "mrel:isb"
+ },
+ "judge": {
+ "@id": "mrel:jud"
+ },
+ "jurisdiction_governed": {
+ "@id": "mrel:jug"
+ },
+ "laboratory": {
+ "@id": "mrel:lbr"
+ },
+ "laboratory_director": {
+ "@id": "mrel:ldr"
+ },
+ "landscape_architect": {
+ "@id": "mrel:lsa"
+ },
+ "lead": {
+ "@id": "mrel:led"
+ },
+ "lender": {
+ "@id": "mrel:len"
+ },
+ "libelant": {
+ "@id": "mrel:lil"
+ },
+ "libelant_appellant": {
+ "@id": "mrel:lit"
+ },
+ "libelant_appellee": {
+ "@id": "mrel:lie"
+ },
+ "libelee": {
+ "@id": "mrel:lel"
+ },
+ "libelee_appellant": {
+ "@id": "mrel:let"
+ },
+ "libelee_appellee": {
+ "@id": "mrel:lee"
+ },
+ "librettist": {
+ "@id": "mrel:lbt"
+ },
+ "licensee": {
+ "@id": "mrel:lse"
+ },
+ "licensor": {
+ "@id": "mrel:lso"
+ },
+ "lighting_designer": {
+ "@id": "mrel:lgd"
+ },
+ "lithographer": {
+ "@id": "mrel:ltg"
+ },
+ "lyricist": {
+ "@id": "mrel:lyr"
+ },
+ "manufacture_place": {
+ "@id": "mrel:mfp"
+ },
+ "manufacturer": {
+ "@id": "mrel:mfr"
+ },
+ "marbler": {
+ "@id": "mrel:mrb"
+ },
+ "markup_editor": {
+ "@id": "mrel:mrk"
+ },
+ "medium": {
+ "@id": "mrel:med"
+ },
+ "metadata_contact": {
+ "@id": "mrel:mdc"
+ },
+ "metal_engraver": {
+ "@id": "mrel:mte"
+ },
+ "minute_taker": {
+ "@id": "mrel:mtk"
+ },
+ "moderator": {
+ "@id": "mrel:mod"
+ },
+ "monitor": {
+ "@id": "mrel:mon"
+ },
+ "music_copyist": {
+ "@id": "mrel:mcp"
+ },
+ "musical_director": {
+ "@id": "mrel:msd"
+ },
+ "musician": {
+ "@id": "mrel:mus"
+ },
+ "narrator": {
+ "@id": "mrel:nrt"
+ },
+ "onscreen_presenter": {
+ "@id": "mrel:osp"
+ },
+ "opponent": {
+ "@id": "mrel:opn"
+ },
+ "organizer": {
+ "@id": "mrel:orm"
+ },
+ "originator": {
+ "@id": "mrel:org"
+ },
+ "other": {
+ "@id": "mrel:oth"
+ },
+ "owner": {
+ "@id": "mrel:own"
+ },
+ "panelist": {
+ "@id": "mrel:pan"
+ },
+ "papermaker": {
+ "@id": "mrel:ppm"
+ },
+ "patent_applicant": {
+ "@id": "mrel:pta"
+ },
+ "patent_holder": {
+ "@id": "mrel:pth"
+ },
+ "patron": {
+ "@id": "mrel:pat"
+ },
+ "performer": {
+ "@id": "mrel:prf"
+ },
+ "permitting_agency": {
+ "@id": "mrel:pma"
+ },
+ "photographer": {
+ "@id": "mrel:pht"
+ },
+ "plaintiff": {
+ "@id": "mrel:ptf"
+ },
+ "plaintiff_appellant": {
+ "@id": "mrel:ptt"
+ },
+ "plaintiff_appellee": {
+ "@id": "mrel:pte"
+ },
+ "platemaker": {
+ "@id": "mrel:plt"
+ },
+ "praeses": {
+ "@id": "mrel:pra"
+ },
+ "presenter": {
+ "@id": "mrel:pre"
+ },
+ "printer": {
+ "@id": "mrel:prt"
+ },
+ "printer_of_plates": {
+ "@id": "mrel:pop"
+ },
+ "printmaker": {
+ "@id": "mrel:prm"
+ },
+ "process_contact": {
+ "@id": "mrel:prc"
+ },
+ "producer": {
+ "@id": "mrel:pro"
+ },
+ "production_company": {
+ "@id": "mrel:prn"
+ },
+ "production_designer": {
+ "@id": "mrel:prs"
+ },
+ "production_manager": {
+ "@id": "mrel:pmn"
+ },
+ "production_personnel": {
+ "@id": "mrel:prd"
+ },
+ "production_place": {
+ "@id": "mrel:prp"
+ },
+ "programmer": {
+ "@id": "mrel:prg"
+ },
+ "project_director": {
+ "@id": "mrel:pdr"
+ },
+ "proofreader": {
+ "@id": "mrel:pfr"
+ },
+ "provider": {
+ "@id": "mrel:prv"
+ },
+ "publication_place": {
+ "@id": "mrel:pup"
+ },
+ "publishing_director": {
+ "@id": "mrel:pbd"
+ },
+ "puppeteer": {
+ "@id": "mrel:ppt"
+ },
+ "radio_director": {
+ "@id": "mrel:rdd"
+ },
+ "radio_producer": {
+ "@id": "mrel:rpc"
+ },
+ "recording_engineer": {
+ "@id": "mrel:rce"
+ },
+ "recordist": {
+ "@id": "mrel:rcd"
+ },
+ "redaktor": {
+ "@id": "mrel:red"
+ },
+ "renderer": {
+ "@id": "mrel:ren"
+ },
+ "reporter": {
+ "@id": "mrel:rpt"
+ },
+ "repository": {
+ "@id": "mrel:rps"
+ },
+ "research_team_head": {
+ "@id": "mrel:rth"
+ },
+ "research_team_member": {
+ "@id": "mrel:rtm"
+ },
+ "researcher": {
+ "@id": "mrel:res"
+ },
+ "respondent": {
+ "@id": "mrel:rsp"
+ },
+ "respondent_appellant": {
+ "@id": "mrel:rst"
+ },
+ "respondent_appellee": {
+ "@id": "mrel:rse"
+ },
+ "responsible_party": {
+ "@id": "mrel:rpy"
+ },
+ "restager": {
+ "@id": "mrel:rsg"
+ },
+ "restorationist": {
+ "@id": "mrel:rsr"
+ },
+ "reviewer": {
+ "@id": "mrel:rev"
+ },
+ "rubricator": {
+ "@id": "mrel:rbr"
+ },
+ "scenarist": {
+ "@id": "mrel:sce"
+ },
+ "scientific_advisor": {
+ "@id": "mrel:sad"
+ },
+ "screenwriter": {
+ "@id": "mrel:aus"
+ },
+ "scribe": {
+ "@id": "mrel:scr"
+ },
+ "sculptor": {
+ "@id": "mrel:scl"
+ },
+ "second_party": {
+ "@id": "mrel:spy"
+ },
+ "secretary": {
+ "@id": "mrel:sec"
+ },
+ "seller": {
+ "@id": "mrel:sll"
+ },
+ "set_designer": {
+ "@id": "mrel:std"
+ },
+ "setting": {
+ "@id": "mrel:stg"
+ },
+ "signer": {
+ "@id": "mrel:sgn"
+ },
+ "singer": {
+ "@id": "mrel:sng"
+ },
+ "sound_designer": {
+ "@id": "mrel:sds"
+ },
+ "speaker": {
+ "@id": "mrel:spk"
+ },
+ "sponsor": {
+ "@id": "mrel:spn"
+ },
+ "stage_director": {
+ "@id": "mrel:sgd"
+ },
+ "stage_manager": {
+ "@id": "mrel:stm"
+ },
+ "standards_body": {
+ "@id": "mrel:stn"
+ },
+ "stereotyper": {
+ "@id": "mrel:str"
+ },
+ "storyteller": {
+ "@id": "mrel:stl"
+ },
+ "supporting_host": {
+ "@id": "mrel:sht"
+ },
+ "surveyor": {
+ "@id": "mrel:srv"
+ },
+ "teacher": {
+ "@id": "mrel:tch"
+ },
+ "technical_director": {
+ "@id": "mrel:tcd"
+ },
+ "television_director": {
+ "@id": "mrel:tld"
+ },
+ "television_producer": {
+ "@id": "mrel:tlp"
+ },
+ "thesis_advisor": {
+ "@id": "mrel:ths"
+ },
+ "transcriber": {
+ "@id": "mrel:trc"
+ },
+ "translator": {
+ "@id": "mrel:trl"
+ },
+ "type_designer": {
+ "@id": "mrel:tyd"
+ },
+ "typographer": {
+ "@id": "mrel:tyg"
+ },
+ "university_place": {
+ "@id": "mrel:uvp"
+ },
+ "videographer": {
+ "@id": "mrel:vdg"
+ },
+ "voice_actor": {
+ "@id": "mrel:vac"
+ },
+ "witness": {
+ "@id": "mrel:wit"
+ },
+ "wood_engraver": {
+ "@id": "mrel:wde"
+ },
+ "woodcutter": {
+ "@id": "mrel:wdc"
+ },
+ "writer_of_accompanying_material": {
+ "@id": "mrel:wam"
+ },
+ "writer_of_added_commentary": {
+ "@id": "mrel:wac"
+ },
+ "writer_of_added_text": {
+ "@id": "mrel:wat"
+ },
+ "writer_of_added_lyrics": {
+ "@id": "mrel:wal"
+ },
+ "writer_of_supplementary_textual_content": {
+ "@id": "mrel:wst"
+ },
+ "writer_of_introduction": {
+ "@id": "mrel:win"
+ },
+ "writer_of_preface": {
+ "@id": "mrel:wpr"
+ },
+ "abridger": {
+ "@id": "mrel:abr"
+ },
+ "actor": {
+ "@id": "mrel:act"
+ },
+ "adapter": {
+ "@id": "mrel:adp"
+ },
+ "addressee": {
+ "@id": "mrel:rcp"
+ },
+ "analyst": {
+ "@id": "mrel:anl"
+ },
+ "animator": {
+ "@id": "mrel:anm"
+ },
+ "annotator": {
+ "@id": "mrel:ann"
+ },
+ "appellant": {
+ "@id": "mrel:apl"
+ },
+ "appellee": {
+ "@id": "mrel:ape"
+ },
+ "applicant": {
+ "@id": "mrel:app"
+ },
+ "architect": {
+ "@id": "mrel:arc"
+ },
+ "arranger": {
+ "@id": "mrel:arr"
+ },
+ "art_copyist": {
+ "@id": "mrel:acp"
+ },
+ "art_director": {
+ "@id": "mrel:adi"
+ },
+ "artist": {
+ "@id": "mrel:art"
+ },
+ "artistic_director": {
+ "@id": "mrel:ard"
+ },
+ "assignee": {
+ "@id": "mrel:asg"
+ },
+ "associated_name": {
+ "@id": "mrel:asn"
+ },
+ "attributed_name": {
+ "@id": "mrel:att"
+ },
+ "auctioneer": {
+ "@id": "mrel:auc"
+ },
+ "author": {
+ "@id": "mrel:aut"
+ },
+ "author_in_quotations_or_text_abstracts": {
+ "@id": "mrel:aqt"
+ },
+ "author_of_afterword_colophon_etc": {
+ "@id": "mrel:aft"
+ },
+ "author_of_dialog": {
+ "@id": "mrel:aud"
+ },
+ "author_of_introduction_etc": {
+ "@id": "mrel:aui"
+ },
+ "autographer": {
+ "@id": "mrel:ato"
+ },
+ "bibliographic_antecedent": {
+ "@id": "mrel:ant"
+ },
+ "binder": {
+ "@id": "mrel:bnd"
+ },
+ "binding_designer": {
+ "@id": "mrel:bdd"
+ },
+ "blurb_writer": {
+ "@id": "mrel:blw"
+ },
+ "book_designer": {
+ "@id": "mrel:bkd"
+ },
+ "book_producer": {
+ "@id": "mrel:bkp"
+ },
+ "bookjacket_designer": {
+ "@id": "mrel:bjd"
+ },
+ "bookplate_designer": {
+ "@id": "mrel:bpd"
+ },
+ "bookseller": {
+ "@id": "mrel:bsl"
+ },
+ "braille_embosser": {
+ "@id": "mrel:brl"
+ },
+ "broadcaster": {
+ "@id": "mrel:brd"
+ },
+ "calligrapher": {
+ "@id": "mrel:cll"
+ },
+ "cartographer": {
+ "@id": "mrel:ctg"
+ },
+ "caster": {
+ "@id": "mrel:cas"
+ },
+ "censor": {
+ "@id": "mrel:cns"
+ },
+ "choreographer": {
+ "@id": "mrel:chr"
+ },
+ "cinematographer": {
+ "@id": "mrel:cng"
+ },
+ "client": {
+ "@id": "mrel:cli"
+ },
+ "collection_registrar": {
+ "@id": "mrel:cor"
+ },
+ "collector": {
+ "@id": "mrel:col"
+ },
+ "collotyper": {
+ "@id": "mrel:clt"
+ },
+ "colorist": {
+ "@id": "mrel:clr"
+ },
+ "commentator": {
+ "@id": "mrel:cmm"
+ },
+ "commentator_for_written_text": {
+ "@id": "mrel:cwt"
+ },
+ "compiler": {
+ "@id": "mrel:com"
+ },
+ "complainant": {
+ "@id": "mrel:cpl"
+ },
+ "complainant_appellant": {
+ "@id": "mrel:cpt"
+ },
+ "complainant_appellee": {
+ "@id": "mrel:cpe"
+ },
+ "composer": {
+ "@id": "mrel:cmp"
+ },
+ "compositor": {
+ "@id": "mrel:cmt"
+ },
+ "conceptor": {
+ "@id": "mrel:ccp"
+ },
+ "conductor": {
+ "@id": "mrel:cnd"
+ },
+ "conservator": {
+ "@id": "mrel:con"
+ },
+ "consultant": {
+ "@id": "mrel:csl"
+ },
+ "consultant_to_a_project": {
+ "@id": "mrel:csp"
+ },
+ "contestant": {
+ "@id": "mrel:cos"
+ },
+ "contestant_appellant": {
+ "@id": "mrel:cot"
+ },
+ "contestant_appellee": {
+ "@id": "mrel:coe"
+ },
+ "contestee": {
+ "@id": "mrel:cts"
+ },
+ "contestee_appellant": {
+ "@id": "mrel:ctt"
+ },
+ "contestee_appellee": {
+ "@id": "mrel:cte"
+ },
+ "contractor": {
+ "@id": "mrel:ctr"
+ },
+ "copyright_claimant": {
+ "@id": "mrel:cpc"
+ },
+ "copyright_holder": {
+ "@id": "mrel:cph"
+ },
+ "corrector": {
+ "@id": "mrel:crr"
+ },
+ "correspondent": {
+ "@id": "mrel:crp"
+ },
+ "costume_designer": {
+ "@id": "mrel:cst"
+ },
+ "court_governed": {
+ "@id": "mrel:cou"
+ },
+ "court_reporter": {
+ "@id": "mrel:crt"
+ },
+ "cover_designer": {
+ "@id": "mrel:cov"
+ },
+ "curator": {
+ "@id": "mrel:cur"
+ },
+ "dancer": {
+ "@id": "mrel:dnc"
+ },
+ "data_contributor": {
+ "@id": "mrel:dtc"
+ },
+ "data_manager": {
+ "@id": "mrel:dtm"
+ },
+ "dedicatee": {
+ "@id": "mrel:dte"
+ },
+ "dedicator": {
+ "@id": "mrel:dto"
+ },
+ "defendant": {
+ "@id": "mrel:dfd"
+ },
+ "defendant_appellant": {
+ "@id": "mrel:dft"
+ },
+ "defendant_appellee": {
+ "@id": "mrel:dfe"
+ },
+ "degree_granting_institution": {
+ "@id": "mrel:dgg"
+ },
+ "degree_supervisor": {
+ "@id": "mrel:dgs"
+ },
+ "delineator": {
+ "@id": "mrel:dln"
+ },
+ "depicted": {
+ "@id": "mrel:dpc"
+ },
+ "depositor": {
+ "@id": "mrel:dpt"
+ },
+ "designer": {
+ "@id": "mrel:dsr"
+ },
+ "director": {
+ "@id": "mrel:drt"
+ },
+ "dissertant": {
+ "@id": "mrel:dis"
+ },
+ "distribution_place": {
+ "@id": "mrel:dbp"
+ },
+ "distributor": {
+ "@id": "mrel:dst"
+ },
+ "donor": {
+ "@id": "mrel:dnr"
+ },
+ "draftsman": {
+ "@id": "mrel:drm"
+ },
+ "dubious_author": {
+ "@id": "mrel:dub"
+ },
+ "editor": {
+ "@id": "mrel:edt"
+ },
+ "editor_of_compilation": {
+ "@id": "mrel:edc"
+ },
+ "editor_of_moving_image_work": {
+ "@id": "mrel:edm"
+ },
+ "electrician": {
+ "@id": "mrel:elg"
+ },
+ "electrotyper": {
+ "@id": "mrel:elt"
+ },
+ "enacting_jurisdiction": {
+ "@id": "mrel:enj"
+ },
+ "engineer": {
+ "@id": "mrel:eng"
+ },
+ "engraver": {
+ "@id": "mrel:egr"
+ },
+ "etcher": {
+ "@id": "mrel:etr"
+ },
+ "event_place": {
+ "@id": "mrel:evp"
+ },
+ "expert": {
+ "@id": "mrel:exp"
+ },
+ "facsimilist": {
+ "@id": "mrel:fac"
+ },
+ "field_director": {
+ "@id": "mrel:fld"
+ },
+ "film_distributor": {
+ "@id": "mrel:fds"
+ },
+ "film_director": {
+ "@id": "mrel:fmd"
+ },
+ "film_editor": {
+ "@id": "mrel:flm"
+ },
+ "film_producer": {
+ "@id": "mrel:fmp"
+ },
+ "filmmaker": {
+ "@id": "mrel:fmk"
+ },
+ "first_party": {
+ "@id": "mrel:fpy"
+ },
+ "forger": {
+ "@id": "mrel:frg"
+ },
+ "former_owner": {
+ "@id": "mrel:fmo"
+ },
+ "funder": {
+ "@id": "mrel:fnd"
+ },
+ "geographic_information_specialist": {
+ "@id": "mrel:gis"
+ },
+ "honoree": {
+ "@id": "mrel:hnr"
+ },
+ "host": {
+ "@id": "mrel:hst"
+ },
+ "host_institution": {
+ "@id": "mrel:his"
+ },
+ "illuminator": {
+ "@id": "mrel:ilu"
+ },
+ "illustrator": {
+ "@id": "mrel:ill"
+ },
+ "inscriber": {
+ "@id": "mrel:ins"
+ },
+ "instrumentalist": {
+ "@id": "mrel:itr"
+ },
+ "interviewee": {
+ "@id": "mrel:ive"
+ },
+ "interviewer": {
+ "@id": "mrel:ivr"
+ },
+ "inventor": {
+ "@id": "mrel:inv"
+ },
+ "issuing_body": {
+ "@id": "mrel:isb"
+ },
+ "judge": {
+ "@id": "mrel:jud"
+ },
+ "jurisdiction_governed": {
+ "@id": "mrel:jug"
+ },
+ "laboratory": {
+ "@id": "mrel:lbr"
+ },
+ "laboratory_director": {
+ "@id": "mrel:ldr"
+ },
+ "landscape_architect": {
+ "@id": "mrel:lsa"
+ },
+ "lead": {
+ "@id": "mrel:led"
+ },
+ "lender": {
+ "@id": "mrel:len"
+ },
+ "libelant": {
+ "@id": "mrel:lil"
+ },
+ "libelant_appellant": {
+ "@id": "mrel:lit"
+ },
+ "libelant_appellee": {
+ "@id": "mrel:lie"
+ },
+ "libelee": {
+ "@id": "mrel:lel"
+ },
+ "libelee_appellant": {
+ "@id": "mrel:let"
+ },
+ "libelee_appellee": {
+ "@id": "mrel:lee"
+ },
+ "librettist": {
+ "@id": "mrel:lbt"
+ },
+ "licensee": {
+ "@id": "mrel:lse"
+ },
+ "licensor": {
+ "@id": "mrel:lso"
+ },
+ "lighting_designer": {
+ "@id": "mrel:lgd"
+ },
+ "lithographer": {
+ "@id": "mrel:ltg"
+ },
+ "lyricist": {
+ "@id": "mrel:lyr"
+ },
+ "manufacture_place": {
+ "@id": "mrel:mfp"
+ },
+ "manufacturer": {
+ "@id": "mrel:mfr"
+ },
+ "marbler": {
+ "@id": "mrel:mrb"
+ },
+ "markup_editor": {
+ "@id": "mrel:mrk"
+ },
+ "medium": {
+ "@id": "mrel:med"
+ },
+ "metadata_contact": {
+ "@id": "mrel:mdc"
+ },
+ "metal_engraver": {
+ "@id": "mrel:mte"
+ },
+ "minute_taker": {
+ "@id": "mrel:mtk"
+ },
+ "moderator": {
+ "@id": "mrel:mod"
+ },
+ "monitor": {
+ "@id": "mrel:mon"
+ },
+ "music_copyist": {
+ "@id": "mrel:mcp"
+ },
+ "musical_director": {
+ "@id": "mrel:msd"
+ },
+ "musician": {
+ "@id": "mrel:mus"
+ },
+ "narrator": {
+ "@id": "mrel:nrt"
+ },
+ "onscreen_presenter": {
+ "@id": "mrel:osp"
+ },
+ "opponent": {
+ "@id": "mrel:opn"
+ },
+ "organizer": {
+ "@id": "mrel:orm"
+ },
+ "originator": {
+ "@id": "mrel:org"
+ },
+ "other": {
+ "@id": "mrel:oth"
+ },
+ "owner": {
+ "@id": "mrel:own"
+ },
+ "panelist": {
+ "@id": "mrel:pan"
+ },
+ "papermaker": {
+ "@id": "mrel:ppm"
+ },
+ "patent_applicant": {
+ "@id": "mrel:pta"
+ },
+ "patent_holder": {
+ "@id": "mrel:pth"
+ },
+ "patron": {
+ "@id": "mrel:pat"
+ },
+ "performer": {
+ "@id": "mrel:prf"
+ },
+ "permitting_agency": {
+ "@id": "mrel:pma"
+ },
+ "photographer": {
+ "@id": "mrel:pht"
+ },
+ "plaintiff": {
+ "@id": "mrel:ptf"
+ },
+ "plaintiff_appellant": {
+ "@id": "mrel:ptt"
+ },
+ "plaintiff_appellee": {
+ "@id": "mrel:pte"
+ },
+ "platemaker": {
+ "@id": "mrel:plt"
+ },
+ "praeses": {
+ "@id": "mrel:pra"
+ },
+ "presenter": {
+ "@id": "mrel:pre"
+ },
+ "printer": {
+ "@id": "mrel:prt"
+ },
+ "printer_of_plates": {
+ "@id": "mrel:pop"
+ },
+ "printmaker": {
+ "@id": "mrel:prm"
+ },
+ "process_contact": {
+ "@id": "mrel:prc"
+ },
+ "producer": {
+ "@id": "mrel:pro"
+ },
+ "production_company": {
+ "@id": "mrel:prn"
+ },
+ "production_designer": {
+ "@id": "mrel:prs"
+ },
+ "production_manager": {
+ "@id": "mrel:pmn"
+ },
+ "production_personnel": {
+ "@id": "mrel:prd"
+ },
+ "production_place": {
+ "@id": "mrel:prp"
+ },
+ "programmer": {
+ "@id": "mrel:prg"
+ },
+ "project_director": {
+ "@id": "mrel:pdr"
+ },
+ "proofreader": {
+ "@id": "mrel:pfr"
+ },
+ "provider": {
+ "@id": "mrel:prv"
+ },
+ "publication_place": {
+ "@id": "mrel:pup"
+ },
+ "publishing_director": {
+ "@id": "mrel:pbd"
+ },
+ "puppeteer": {
+ "@id": "mrel:ppt"
+ },
+ "radio_director": {
+ "@id": "mrel:rdd"
+ },
+ "radio_producer": {
+ "@id": "mrel:rpc"
+ },
+ "recording_engineer": {
+ "@id": "mrel:rce"
+ },
+ "recordist": {
+ "@id": "mrel:rcd"
+ },
+ "redaktor": {
+ "@id": "mrel:red"
+ },
+ "renderer": {
+ "@id": "mrel:ren"
+ },
+ "reporter": {
+ "@id": "mrel:rpt"
+ },
+ "repository": {
+ "@id": "mrel:rps"
+ },
+ "research_team_head": {
+ "@id": "mrel:rth"
+ },
+ "research_team_member": {
+ "@id": "mrel:rtm"
+ },
+ "researcher": {
+ "@id": "mrel:res"
+ },
+ "respondent": {
+ "@id": "mrel:rsp"
+ },
+ "respondent_appellant": {
+ "@id": "mrel:rst"
+ },
+ "respondent_appellee": {
+ "@id": "mrel:rse"
+ },
+ "responsible_party": {
+ "@id": "mrel:rpy"
+ },
+ "restager": {
+ "@id": "mrel:rsg"
+ },
+ "restorationist": {
+ "@id": "mrel:rsr"
+ },
+ "reviewer": {
+ "@id": "mrel:rev"
+ },
+ "rubricator": {
+ "@id": "mrel:rbr"
+ },
+ "scenarist": {
+ "@id": "mrel:sce"
+ },
+ "scientific_advisor": {
+ "@id": "mrel:sad"
+ },
+ "screenwriter": {
+ "@id": "mrel:aus"
+ },
+ "scribe": {
+ "@id": "mrel:scr"
+ },
+ "sculptor": {
+ "@id": "mrel:scl"
+ },
+ "second_party": {
+ "@id": "mrel:spy"
+ },
+ "secretary": {
+ "@id": "mrel:sec"
+ },
+ "seller": {
+ "@id": "mrel:sll"
+ },
+ "set_designer": {
+ "@id": "mrel:std"
+ },
+ "setting": {
+ "@id": "mrel:stg"
+ },
+ "signer": {
+ "@id": "mrel:sgn"
+ },
+ "singer": {
+ "@id": "mrel:sng"
+ },
+ "sound_designer": {
+ "@id": "mrel:sds"
+ },
+ "speaker": {
+ "@id": "mrel:spk"
+ },
+ "sponsor": {
+ "@id": "mrel:spn"
+ },
+ "stage_director": {
+ "@id": "mrel:sgd"
+ },
+ "stage_manager": {
+ "@id": "mrel:stm"
+ },
+ "standards_body": {
+ "@id": "mrel:stn"
+ },
+ "stereotyper": {
+ "@id": "mrel:str"
+ },
+ "storyteller": {
+ "@id": "mrel:stl"
+ },
+ "supporting_host": {
+ "@id": "mrel:sht"
+ },
+ "surveyor": {
+ "@id": "mrel:srv"
+ },
+ "teacher": {
+ "@id": "mrel:tch"
+ },
+ "technical_director": {
+ "@id": "mrel:tcd"
+ },
+ "television_director": {
+ "@id": "mrel:tld"
+ },
+ "television_producer": {
+ "@id": "mrel:tlp"
+ },
+ "thesis_advisor": {
+ "@id": "mrel:ths"
+ },
+ "transcriber": {
+ "@id": "mrel:trc"
+ },
+ "translator": {
+ "@id": "mrel:trl"
+ },
+ "type_designer": {
+ "@id": "mrel:tyd"
+ },
+ "typographer": {
+ "@id": "mrel:tyg"
+ },
+ "university_place": {
+ "@id": "mrel:uvp"
+ },
+ "videographer": {
+ "@id": "mrel:vdg"
+ },
+ "voice_actor": {
+ "@id": "mrel:vac"
+ },
+ "witness": {
+ "@id": "mrel:wit"
+ },
+ "wood_engraver": {
+ "@id": "mrel:wde"
+ },
+ "woodcutter": {
+ "@id": "mrel:wdc"
+ },
+ "writer_of_accompanying_material": {
+ "@id": "mrel:wam"
+ },
+ "writer_of_added_commentary": {
+ "@id": "mrel:wac"
+ },
+ "writer_of_added_text": {
+ "@id": "mrel:wat"
+ },
+ "writer_of_added_lyrics": {
+ "@id": "mrel:wal"
+ },
+ "writer_of_supplementary_textual_content": {
+ "@id": "mrel:wst"
+ },
+ "writer_of_introduction": {
+ "@id": "mrel:win"
+ },
+ "writer_of_preface": {
+ "@id": "mrel:wpr"
+ }
+ }
+ }
+ http_version:
+ recorded_at: Thu, 23 Feb 2017 18:32:43 GMT
+recorded_with: VCR 2.9.3
diff --git a/spec/factories/image_works.rb b/spec/factories/image_works.rb
new file mode 100644
index 000000000..392cdf563
--- /dev/null
+++ b/spec/factories/image_works.rb
@@ -0,0 +1,30 @@
+FactoryGirl.define do
+ factory :image_work do
+ title ["Test title"]
+ rights_statement "http://rightsstatements.org/vocab/NKC/1.0/"
+ visibility Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC
+ state Vocab::FedoraResourceStatus.active
+
+ transient do
+ user { FactoryGirl.create(:user) }
+ end
+
+ after(:build) do |work, evaluator|
+ work.apply_depositor_metadata(evaluator.user.user_key)
+ end
+
+ factory :complete_image_work do
+ after(:create) do |work, evaluator|
+ FactoryGirl.create(:complete_sipity_entity, proxy_for_global_id: work.to_global_id.to_s)
+ work.save
+ end
+ end
+
+ factory :pending_image_work do
+ after(:create) do |work, evaluator|
+ FactoryGirl.create(:pending_sipity_entity, proxy_for_global_id: work.to_global_id.to_s)
+ work.save
+ end
+ end
+ end
+end
diff --git a/spec/models/image_work_spec.rb b/spec/models/image_work_spec.rb
index 7f60b8305..b099fd52b 100644
--- a/spec/models/image_work_spec.rb
+++ b/spec/models/image_work_spec.rb
@@ -1,7 +1,41 @@
-# Generated via
-# `rails generate geo_concerns:install`
require 'rails_helper'
describe ImageWork do
- it { is_expected.to be_kind_of(GeoWorks::ImageWorkBehavior) }
+ let(:image_work) { FactoryGirl.build(:image_work, rights_statement: 'http://rightsstatements.org/vocab/NKC/1.0/') }
+ subject { image_work }
+
+ describe 'apply_remote_metadata' do
+ context 'when source_metadata_identifier is not set' do
+ before { subject.source_metadata_identifier = nil }
+ it 'does nothing' do
+ original_attributes = subject.attributes
+ expect(subject.send(:remote_metadata_factory)).to_not receive(:new)
+ subject.apply_remote_metadata
+ expect(subject.attributes).to eq(original_attributes)
+ end
+ end
+
+ context 'With a Voyager ID', vcr: { cassette_name: "bibdata-maps" } do
+ before do
+ subject.source_metadata_identifier = '9284317'
+ end
+
+ it 'Extracts Voyager Metadata' do
+ subject.apply_remote_metadata
+ expect(subject.title.first.to_s).to eq('Netherlands, Nieuwe Waterweg and Europoort : Hoek Van Holland to Vlaardingen')
+ expect(subject.resource.get_values(:title, literal: true)).to eq([RDF::Literal.new('Netherlands, Nieuwe Waterweg and Europoort : Hoek Van Holland to Vlaardingen', language: :eng)])
+ expect(subject.creator).to eq(['United States. Defense Mapping Agency. Hydrographic/Topographic Center'])
+ expect(subject.date_created).to eq(['1994-01-01T00:00:00Z'])
+ expect(subject.publisher).to eq(['Bethesda, Md. : Defense Mapping Agency, Hydrographic/Topographic Center, 1994.'])
+ expect(subject.coverage).to eq('northlimit=52.024167; eastlimit=004.341667; southlimit=51.920000; westlimit=003.966667; units=degrees; projection=EPSG:4326')
+ end
+
+ it 'Saves a record with extacted Voyager metadata' do
+ subject.apply_remote_metadata
+ subject.save
+ expect { subject.save }.to_not raise_error
+ expect(subject.id).to be_truthy
+ end
+ end
+ end
end
diff --git a/spec/services/plum_derivative_service_spec.rb b/spec/services/plum_derivative_service_spec.rb
index 1a3b37d10..bb345d423 100644
--- a/spec/services/plum_derivative_service_spec.rb
+++ b/spec/services/plum_derivative_service_spec.rb
@@ -27,4 +27,22 @@
end
end
end
+
+ describe "#recipe" do
+ context "with a non-map tiff" do
+ it "uses the default recipe" do
+ expect(subject.send(:recipe)).to eq(:default)
+ end
+ end
+
+ context "with a map tiff" do
+ before do
+ allow(file_set).to receive(:geo_mime_type).and_return "image/tiff"
+ end
+
+ it "uses the geo recipe" do
+ expect(subject.send(:recipe)).to eq(:geo)
+ end
+ end
+ end
end