Class: DigitalScriptorium::DateClaimTransformer

Inherits:
QualifiedClaimTransformer show all
Includes:
PropertyId
Defined in:
lib/digital_scriptorium/transformers/date_claim_transformer.rb

Overview

Transformer for production date (P23) claims.

Constant Summary

Constants included from PropertyId

PropertyId::ACKNOWLEDGEMENTS, PropertyId::ASSOCIATED_NAME_AS_RECORDED, PropertyId::CENTURY, PropertyId::DATED, PropertyId::DATE_ADDED, PropertyId::DATE_LAST_UPDATED, PropertyId::DESCRIBED_MANUSCRIPT, PropertyId::DS_ID, PropertyId::EARLIEST_DATE, PropertyId::END_TIME, PropertyId::EQUIVALENT_PROPERTY, PropertyId::EXTERNAL_IDENTIFIER, PropertyId::EXTERNAL_URI, PropertyId::FORMATTER_URL, PropertyId::GENRE_AS_RECORDED, PropertyId::HOLDING_INSTITUTION_AS_RECORDED, PropertyId::HOLDING_INSTITUTION_IN_AUTHORITY_FILE, PropertyId::HOLDING_STATUS, PropertyId::IIIF_MANIFEST, PropertyId::INSTANCE_OF, PropertyId::INSTITUTIONAL_ID, PropertyId::IN_ORIGINAL_SCRIPT, PropertyId::LANGUAGE_AS_RECORDED, PropertyId::LANGUAGE_IN_AUTHORITY_FILE, PropertyId::LATEST_DATE, PropertyId::LINK_TO_INSTITUTIONAL_RECORD, PropertyId::MANUSCRIPT_HOLDING, PropertyId::MATERIAL_AS_RECORDED, PropertyId::MATERIAL_IN_AUTHORITY_FILE, PropertyId::NAME_IN_AUTHORITY_FILE, PropertyId::NOTE, PropertyId::PHYSICAL_DESCRIPTION, PropertyId::PLACE_IN_AUTHORITY_FILE, PropertyId::PRODUCTION_CENTURY_IN_AUTHORITY_FILE, PropertyId::PRODUCTION_DATE_AS_RECORDED, PropertyId::PRODUCTION_PLACE_AS_RECORDED, PropertyId::ROLE_IN_AUTHORITY_FILE, PropertyId::SHELFMARK, PropertyId::STANDARD_TITLE, PropertyId::START_TIME, PropertyId::SUBCLASS_OF, PropertyId::SUBJECT_AS_RECORDED, PropertyId::TERM_IN_AUTHORITY_FILE, PropertyId::TITLE_AS_RECORDED, PropertyId::UNIFORM_TITLE_AS_RECORDED, PropertyId::VIAF_ID, PropertyId::WIKIDATA_QID

Instance Attribute Summary

Attributes inherited from QualifiedClaimTransformer

#authority_id, #export_hash

Attributes inherited from BaseClaimTransformer

#claim, #prefix

Instance Method Summary collapse

Methods inherited from QualifiedClaimTransformer

#display_values, #external_uri, #facet_values, #in_original_script, #initialize, #linked_term_labels, #linked_terms, #main_snak_value, #search_values, #wikidata_id, #wikidata_uri

Methods inherited from BaseClaimTransformer

#display_value, #display_values, #facet_values, #initialize, #search_values

Constructor Details

This class inherits a constructor from DigitalScriptorium::QualifiedClaimTransformer

Instance Method Details

#century_intObject



37
38
39
# File 'lib/digital_scriptorium/transformers/date_claim_transformer.rb', line 37

def century_int
  parse_year(time_value_from_qualifier(CENTURY))
end

#int_propsObject



20
21
22
23
24
25
26
# File 'lib/digital_scriptorium/transformers/date_claim_transformer.rb', line 20

def int_props
  return {} unless claim.qualifiers_by_property_id? CENTURY

  {
    'century_int' => [century_int]
  }
end

#linked_term_for(authority) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/digital_scriptorium/transformers/date_claim_transformer.rb', line 28

def linked_term_for(authority)
  {
    'label' => authority.label('en'),
    'facet_field' => 'century_int',
    'facet_value' => century_int,
    'source_url' => external_uri(authority) || wikidata_uri(authority)
  }.compact
end

#meta_propsObject



14
15
16
17
18
# File 'lib/digital_scriptorium/transformers/date_claim_transformer.rb', line 14

def meta_props
  {
    'date_meta' => [claim.data_value]
  }
end

#parse_year(date) ⇒ Object

Wikibase date format “resembling ISO 8601”: +YYYY-MM-DDT00:00:00Z www.wikidata.org/wiki/Help:Dates#Time_datatype



47
48
49
# File 'lib/digital_scriptorium/transformers/date_claim_transformer.rb', line 47

def parse_year(date)
  Time.iso8601(date[1..]).year
end

#solr_propsObject



10
11
12
# File 'lib/digital_scriptorium/transformers/date_claim_transformer.rb', line 10

def solr_props
  super.merge(meta_props).merge(int_props)
end

#time_value_from_qualifier(property_id) ⇒ Object



41
42
43
# File 'lib/digital_scriptorium/transformers/date_claim_transformer.rb', line 41

def time_value_from_qualifier(property_id)
  claim.qualifiers_by_property_id(property_id)&.first&.time_value
end